Provided by: libvolpack1-dev_1.0b3-9_amd64 bug

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)