package OpenGL::Sandbox::V1::Quadric; require OpenGL::Sandbox::V1; # automatically loads Quadric via XS # ABSTRACT: Rendering parameters for various geometric shapes our $VERSION = '0.042'; # VERSION __END__ =pod =encoding UTF-8 =head1 NAME OpenGL::Sandbox::V1::Quadric - Rendering parameters for various geometric shapes =head1 VERSION version 0.042 =head1 SYNOPSIS default_quadric->normals(GLU_SMOOTH)->texture(1)->sphere(100, 42, 42); =head1 DESCRIPTION GLU Quadrics are a funny name for a small object that holds a few rendering parameters for another few geometry-plotting functions. They provide a quick/convenient way to render some simple polygon surfaces without messing with a bunch of trigonometry and loops. =head1 CONFIGURATION Each of these is write-only. They return the object for convenient chaining. =head2 draw_style $q->draw_style($x) # GLU_FILL, GLU_LINE, GLU_SILHOUETTE, GL_POINT You can also use aliases of: =over =item C =item C =item C =item C =back =head2 normals $q->normals($x) # GLU_NONE, GLU_FLAT, GLU_SMOOTH You can also use aliases of: =over =item C, or normals(0) =item C =item C =back =head2 orientation $q->orientation($x) # GLU_OUTSIDE, GLU_INSIDE You can also use aliases of =over =item C =item C =back =head2 texture $q->texture($bool) # GL_TRUE, GL_FALSE =head1 GEOMETRY PLOTTING =head2 sphere $q->sphere($radius, $slices, $stacks); Plot a sphere around the origin with specified dimensions. =head2 cylinder $q->cyliner($base_rad, $top_rad, $height, $slices, $stacks); Plot a hollow cylinder (without ends) along the Z axis with the specified dimensions. =head2 disk $q->disk($inner_rad, $outer_rad, $slices, $loops); Plot a flat circle around the Z axis along the XY plane. Nonzero inner radius "subtracts" a circle from the center. =head2 partial_disk $q->partial_disk($inner, $outer, $slices, $loops, $start, $sweep); Plot a wedge of a disk around the Z axis. =head1 AUTHOR Michael Conrad =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2019 by Michael Conrad. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut