Man Linux: Main Page and Category List

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)