Extracted from Pike v7.3 release 18 at 2002-03-27.
pike.roxen.com
[Top]
GL

Method GL.glRotate()


Method glRotate

void GL.glRotate(float|int|array(float|int) angle, float|int|void x, float|int|void y, float|int|void z)

Description

GL.glRotate produces a rotation of angle degrees around the vector ("x", "y", "z"). The current matrix (see GL.glMatrixMode) is multiplied by a rotation matrix with the product replacing the current matrix, as if GL.glMultMatrix were called with the following matrix as its argument:

.ce .EQ left ( ~ down 20 matrix { ccol { "x" "x" (1 - c)+ c above "y" "x" (1 - c)+ "z" s above "x" "z" (1 - c)-"y" s above ~0 } ccol {"x" "y" (1 - c)-"z" s above "y" "y" (1 - c)+ c above "y" "z" (1 - c)+ "x" s above ~0 } ccol { "x" "z" (1 - c)+ "y" s above "y" "z" (1 - c)- "x" s above "z" "z" (1 - c) + c above ~0 } ccol { ~0 above ~0 above ~0 above ~1} } ~~ right ) .EN

.sp Where c ~=~ cos("angle"), s ~=~ sine("angle"), and ||(~"x", "y", "z"~)|| ~=~ 1 (if not, the GL will normalize this vector). .sp .sp

If the matrix mode is either GL_MODELVIEW or GL_PROJECTION, all objects drawn after GL.glRotate is called are rotated. Use GL.glPushMatrix and GL.glPopMatrix to save and restore the unrotated coordinate system.

Parameter angle

Specifies the angle of rotation, in degrees.

Parameter x

Specify the x, y, and z coordinates of a vector, respectively.

Throws

GL_INVALID_OPERATION is generated if GL.glRotate is executed between the execution of GL.glBegin and the corresponding execution of GL.glEnd.