vpRotate(3) multiply the current transformation matrix by a

SYNOPSIS

#include <volpack.h>

vpResult

vpRotate(vpc, axis, degrees)
vpContext *vpc;
int axis;
double degrees;

ARGUMENTS

vpc
VolPack context from vpCreateContext.
axis
Rotation axis code (VP_X_AXIS, VP_Y_AXIS or VP_Z_AXIS).
degrees
Number of degrees to rotate.

DESCRIPTION

vpRotate is used to multiply the current transformation matrix by a 4-by-4 rotation matrix. The rotation axis must be one of the three principal viewing axes and is specified with one of the following codes: VP_X_AXIS      X axis

VP_Y_AXIS     Y axis

VP_Z_AXIS     Z axis

The rotation angle is specified in degrees. A positive angle indicates a clockwise rotation when looking towards the positive direction along the axis. For an X-axis rotation, the rotation matrix is:

    1       0       0       0

   0       cos(d)  sin(d)  0

   0       -sin(d) cos(d)  0

   0       0       0       1

where d stands for the degrees argument. For a Y-axis rotation, the rotation matrix is:

    cos(d)  0       -sin(d) 0

   0       1       0       0

   sin(d)  0       cos(d)  0

   0       0       0       1

For a Z-axis rotation, the rotation matrix is:

    cos(d)  sin(d)  0       0

   -sin(d) cos(d)  0       0

   0       0       1       0

   0       0       0       1

Use vpCurrentMatrix to set the current transformation matrix. By default, the rotation matrix is post-multiplied (M = M*R where M is the current matrix and R is the rotation matrix). The VP_CONCAT_MODE option to vpSeti can be used to select pre-multiplication.

STATE VARIABLES

The current matrix concatenation parameters can be retrieved with the following state variable codes (see vpGeti(3)): VP_CURRENT_MATRIX, VP_CONCAT_MODE.

ERRORS

The normal return value is VP_OK. The following error return value is possible:
VPERROR_BAD_OPTION
The axis argument is invalid.