Man page - windowphigs(3)
Packages contains this manual
Manual
vpWindowPHIGS
NAMESYNOPSIS
ARGUMENTS
DESCRIPTION
STATE VARIABLES
ERRORS
SEE ALSO
NAME
vpWindowPHIGS - multiply the projection matrix by a PHIGS viewing matrix
SYNOPSIS
#include <volpack.h>
vpResult
|
vpWindowPHIGS( vpc, vrp, vpn, vup, prp, umin, umax, vmin, vmax, front, back, projection_type ) |
vpContext * vpc;
|
vpVector3 vrp, vpn, vup; |
||
|
vpVector3 prp; |
||
|
double umin, umax, vmin, vmax, front, back; |
||
|
int projection_type; |
ARGUMENTS
|
vpc |
VolPack context from vpCreateContext. |
||
|
vrp |
Point specifying the view reference point. |
||
|
vpn |
Vector specifying the view plane normal. |
||
|
vup |
Vector specifying the view up vector. |
||
|
prp |
Point specifying the projection reference point (in view reference coordinates). |
||
|
umin |
Left coordinate of clipping window (in view reference coordinates). |
||
|
umax |
Right coordinate of clipping window (in view reference coordinates). |
||
|
vmin |
Bottom coordinate of clipping window (in view reference coordinates). |
||
|
vmax |
Top coordinate of clipping window (in view reference coordinates). |
||
|
front |
Coordinate of the near depth clipping plane (in view reference coordinates). |
||
|
back |
Coordinate of the far depth clipping plane (in view reference coordinates). |
projection_type
Projection type code. Currently, must be VP_PARALLEL.
DESCRIPTION
vpWindowPHIGS is used to multiply the current projection matrix by a viewing and projection matrix specified by means of the PHIGS viewing model. This model combines specification of the viewpoint, projection and clipping parameters. The resulting matrix is stored in the projection transformation matrix. Since both the view and the projection are specified in this one matrix, normally the view transformation matrix is not used in conjunction with vpWindowPHIGS (it should be set to the identity). Currently, only parallel projections may be specified. For an alternative view specification model, see vpWindow(3).
Assuming that
the view transformation matrix is the identity, the matrix
produced by
vpWindowPHIGS
should transform world
coordinates into clip coordinates. This transformation is
specified as follows. First, the projection plane (called
the view plane) is defined by a point on the plane (the view
reference point,
vrp
) and a vector normal to the
plane (the view plane normal,
vpn
). Next, a
coordinate system called the view reference coordinate (VRC)
system is specified by means of the view plane normal and
the view up vector,
vup.
The origin of VRC
coordinates is the view reference point. The basis vectors
of VRC coordinates are:
u
= v cross n
v
= the projection of
vup
parallel to
vpn
onto the view plane
n
=
vpn
This coordinate system is used to specify
the direction of projection and the clipping window. The
clipping window bounds in the projection plane are given by
umin, umax, vmin
and
vmax.
The direction of
projection is the vector from the center of the clipping
window to the projection reference point
(prp),
which
is also specified in VRC coordinates. Finally, the front and
back clipping planes are given by n=
front
and
n=
back
in VRC coordinates.
For a more detailed explanation of this view specification model, see Computer Graphics: Principles and Practice by Foley, vanDam, Feiner and Hughes.
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 ( umin >= umax , etc.).
VPERROR_BAD_OPTION
The type argument is invalid.
VPERROR_SINGULAR
The vectors defining view reference coordinates are not mutually orthogonal, or the projection reference point lies in the view plane.
SEE ALSO
VolPack(3), vpCreateContext(3), vpCurrentMatrix(3), vpWindow(3)