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:
- codes: VP_X_AXIS X axis
- 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)