vpRotate(3)

NAME
vpRotate - multiply the current transformation matrix by a rotation matrix

SYNOPSIS
#include <volpack.h>

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.

SEE ALSO
VolPack(3), vpCreateContext(3), vpCurrentMatrix(3)