GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
vpWindow(3) FreeBSD Library Functions Manual vpWindow(3)

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 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.

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)
VolPack

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.