diff options
Diffstat (limited to 'PerlQt/examples/opengl/box/GLBox.pm')
-rw-r--r-- | PerlQt/examples/opengl/box/GLBox.pm | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/PerlQt/examples/opengl/box/GLBox.pm b/PerlQt/examples/opengl/box/GLBox.pm deleted file mode 100644 index 1c6ceb8..0000000 --- a/PerlQt/examples/opengl/box/GLBox.pm +++ /dev/null @@ -1,149 +0,0 @@ -package GLBox; - -use OpenGL qw(:all); - -use strict; - -use TQt; -use TQt::isa qw(TQt::GLWidget); -use TQt::slots - setXRotation => ['int'], - setYRotation => ['int'], - setZRotation => ['int']; -use TQt::attributes qw( - xRot - yRot - zRot - scale - object - list -); - -sub NEW { - shift->SUPER::NEW(@_); - xRot = yRot = zRot = 0.0; - scale = 1.25; - object = undef; -} - -sub paintGL -{ - glClear( GL_COLOR_BUFFER_BIT ); - glClear( GL_DEPTH_BUFFER_BIT ); - - glLoadIdentity(); - glTranslatef( 0.0, 0.0, -10.0 ); - glScalef( scale, scale, scale ); - - glRotatef( xRot, 1.0, 0.0, 0.0 ); - glRotatef( yRot, 0.0, 1.0, 0.0 ); - glRotatef( zRot, 0.0, 0.0, 1.0 ); - - glCallList( object ); -} - -sub initializeGL -{ - qglClearColor( &black ); # Let OpenGL clear to black - object = makeObject(); # Generate an OpenGL display list - glShadeModel( GL_FLAT ); - glEnable( GL_DEPTH_TEST ); -} - -# Set up the OpenGL view port, matrix mode, etc. - -sub resizeGL -{ - my $w = shift; - my $h = shift; - glViewport( 0, 0, $w, $h ); - glMatrixMode( GL_PROJECTION ); - glLoadIdentity(); - glFrustum( -1.0, 1.0, -1.0, 1.0, 5.0, 15.0 ); - glMatrixMode( GL_MODELVIEW ); -} - -# Generate an OpenGL display list for the object to be shown, i.e. the box - -sub makeObject -{ - my $list = glGenLists( 1 ); - - glNewList( $list, GL_COMPILE ); - - qglColor( &darkGreen ); # Shorthand for glColor3f or glIndex - - glLineWidth( 2.0 ); - - glBegin( GL_TQUADS ); - glVertex3f( 1.0, 0.5, -0.4 ); - glVertex3f( 1.0, -0.5, -0.4 ); - glVertex3f( -1.0, -0.5, -0.4 ); - glVertex3f( -1.0, 0.5, -0.4 ); - glEnd(); - - qglColor( &blue ); - - glBegin( GL_TQUADS ); - glVertex3f( 1.0, 0.5, 0.4 ); - glVertex3f( 1.0, -0.5, 0.4 ); - glVertex3f( -1.0, -0.5, 0.4 ); - glVertex3f( -1.0, 0.5, 0.4 ); - glEnd(); - - qglColor( &darkRed ); - - glBegin( GL_TQUAD_STRIP ); - glVertex3f( 1.0, 0.5, -0.4 ); glVertex3f( 1.0, 0.5, 0.4 ); - glVertex3f( 1.0, -0.5, -0.4 ); glVertex3f( 1.0, -0.5, 0.4 ); - qglColor( &yellow ); - glVertex3f( -1.0, -0.5, -0.4 ); glVertex3f( -1.0, -0.5, 0.4 ); - qglColor( &green ); - glVertex3f( -1.0, 0.5, -0.4 ); glVertex3f( -1.0, 0.5, 0.4 ); - qglColor( &lightGray ); - glVertex3f( 1.0, 0.5, -0.4 ); glVertex3f( 1.0, 0.5, 0.4 ); - glEnd(); - - glEndList(); - - return $list; -} - - - -# Set the rotation angle of the object to \e degrees around the X axis. - -sub setXRotation -{ - my $deg = shift; - xRot = $deg % 360; - updateGL(); -} - - -# Set the rotation angle of the object to \e degrees around the Y axis. - -sub setYRotation -{ - my $deg = shift; - yRot = $deg % 360; - updateGL(); -} - - -# Set the rotation angle of the object to \e degrees around the Z axis. - -sub setZRotation -{ - my $deg = shift; - zRot = $deg % 360; - updateGL(); -} - -sub DESTROY -{ -# makeCurrent(); - glDeleteLists( object, 1 ); -} - -1; |