Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
vpWindowPHIGS(3)	   Library Functions Manual	      vpWindowPHIGS(3)

NAME
       vpWindowPHIGS  -	 multiply the projection matrix	by a PHIGS viewing ma-
       trix

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	refer-
	      ence coordinates).

       umin   Left coordinate of clipping window (in  view  reference  coordi-
	      nates).

       umax   Right  coordinate	 of clipping window (in	view reference coordi-
	      nates).

       vmin   Bottom coordinate	of clipping window (in view reference  coordi-
	      nates).

       vmax   Top  coordinate  of  clipping  window (in	view reference coordi-
	      nates).

       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 projec-
       tion 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  ma-
       trix  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 coor-
       dinates is the view reference point.  The basis vectors of VRC  coordi-
       nates 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 pro-
       jection 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)

VolPack							      vpWindowPHIGS(3)

NAME | SYNOPSIS | ARGUMENTS | DESCRIPTION | STATE VARIABLES | ERRORS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=volpack-WindowPHIGS&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help