Man page - window(3)
Packages contains this manual
Manual
vpWindow
NAMESYNOPSIS
ARGUMENTS
DESCRIPTION
STATE VARIABLES
ERRORS
SEE ALSO
NAME
vpWindow - multiply the projection matrix by a perspective or orthographic matrix
SYNOPSIS
#include <volpack.h>
vpResult
|
vpWindow( vpc, type, left, right, bottom, top, near, far ) |
vpContext * vpc;
|
int type; |
||
|
double left, right; |
||
|
double bottom, top; |
||
|
double near, far; |
ARGUMENTS
|
vpc |
VolPack context from vpCreateContext. |
|||
|
type |
Projection type code. Currently, must be VP_PARALLEL. |
|||
|
left |
Coordinate of the left vertical clipping plane. |
|||
|
right |
Coordinate of the right vertical clipping plane. |
|||
|
bottom |
Coordinate of the bottom horizontal clipping plane. |
|||
|
top |
Coordinate of the top horizontal clipping plane. |
|||
|
near |
Coordinate of the near depth clipping plane. |
|||
|
far |
Coordinate of the far depth clipping plane. |
DESCRIPTION
vpWindow is used to multiply the current projection matrix by a perspective or orthographic projection matrix. The new projection matrix is defined by the coordinates of six clipping planes in the eye coordinate system (see vpCurrentMatrix(3)). The matrix maps the points (left, bottom, near) and (right, top, near) to the lower left and upper right corners of the clipping window. For an alternative means of specifying the projection matrix, see vpWindowPHIGS(3).
Currently, only orthographic projections are supported. Perspective projections will be added in a future release.
The matrix for
parallel projections is: A 0 0 D
0 B 0 E
0 0 C F
0 0 0 1
A = 2 /
(right - left)
B = 2 /
(top - bottom)
C = 2 /
(far - near)
D =
(left + right) / (left - right)
E =
(bottom + top) / (bottom - top)
F =
(near + far) / (near - far)
The matrix is
multiplied into the projection matrix, even if the
projection matrix is not the current matrix. By default, the
matrix is post-multiplied (N = N*
m
where N is the
current matrix and
m
is the argument to
vpMultMatrix
). The VP_CONCAT_MODE option to
vpSeti
can be used to select pre-multiplication. The
default window is a parallel projection with left = bottom =
near = -0.5, and right = top = far = 0.5.
STATE VARIABLES
The current matrix concatenation parameters can be retrieved with the following state variable codes (see vpGeti(3)): VP_CONCAT_MODE.
ERRORS
The normal
return value is VP_OK. The following error return values are
possible:
VPERROR_BAD_VALUE
The clipping plane coordinates are invalid ( left >= right , etc.).
VPERROR_BAD_OPTION
The type argument is invalid.
SEE ALSO
VolPack(3), vpCreateContext(3), vpCurrentMatrix(3), vpWindowPHIGS(3)