vpWindow  multiply the projection matrix by a perspective or orthographic
matrix
#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;
 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.
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 postmultiplied (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 premultiplication. The default window is a parallel projection with
left = bottom = near = 0.5, and right = top = far = 0.5.
The current matrix concatenation parameters can be retrieved with the following
state variable codes (see vpGeti(3)): VP_CONCAT_MODE.
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.
VolPack(3), vpCreateContext(3), vpCurrentMatrix(3), vpWindowPHIGS(3)