vprotate(3) - Linux man page

Name

vpRotate - multiply the current transformation matrix by a rotation matrix

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.

See Also

volpack(3), vpcreatecontext(3), vpcurrentmatrix(3)