# FreeBSD Manual Pages

```vpRotate(3)		   Library Functions Manual		   vpRotate(3)

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

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 rota-
tion 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  ma-
trix 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 de-
fault, 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 op-
tion 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: