Module #06.02.01 : Viewing utilities

All PVT documentation can be found under PHIGS Validation Tests - Overview. You may also return to the hierarchical table of topics covered by the PVT. For an explanation of the format of the individual module documentation, please see section 2.5 of the User's Guide.


DESCRIPTION: This module tests the functions provided by PHIGS
to support viewing transformations.  These functions do not
depend on the state of PHIGS data structures, nor do they affect
them; their behavior interacts only with their input and output
parameters.

SEMANTIC REQUIREMENTS:


SR1. Viewing transformations are represented as 4x4 (for 3D) or 3x3 (2D) homogeneous coordinate transformation matrices which pre-multiply points to be transformed.
#F 107 108 109 110
#D 5.4.2.3.1 5.4.2.3.2 5.4.2.4.1 5.4.2.4.2
#S 4.7.4/82/1 4.7.5/84/7 4.7.5/84/8 4.7.2/77/3
#T P01/1 P01/2 P02/1 P02/2 P02/3 P02/4 P02/5 P02/6 P02/7 P02/8 P03/1

SR2. WC points to be transformed are represented internally as column vectors with homogeneous coordinates, i.e. the coordinates x,y,z,w represent the three dimensional point (x/w, y/w, z/w).
#F 107 108 109 110
#D 5.4.2.3.1 5.4.2.3.2 5.4.2.4.1 5.4.2.4.2
#S 4.7.2/77/3
#T P01/1 P01/2 P02/1 P02/2 P02/3 P02/4 P02/5 P02/6 P02/7 P02/8 P03/1
*** *** *** *** ***   3D View orientation   *** *** *** *** ***


SR3. <Evaluate view orientation matrix 3> generates a 3D homogeneous 4x4 matrix which performs a shift and rotate such that points specified within the WC (x-y-z) system are re-labeled according to VRC (u-v-n) system.
#F 107
#D
#S 4.7.5/84/9
#T P01/1

SR4. The transformation established by <evaluate view orientation matrix 3> is determined as follows: a) the "view reference point" in WC defines the origin of the VRC, b) the "view plane normal" is a WC vector relative to the "view reference point" and defines the N (third) axis of the VRC system in the positive direction, c) the V (2nd) axis is defined by projecting the "view up vector" parallel to the "view plane normal" onto the plane perpendicular to the "view plane normal", and d) the U (1st) axis is perpendicular to both the V and N axes and forms a right-handed system with them.
#F 107
#D
#S 4.7.5/84/10ff
#T P01/1
*** *** *** *** ***   2D View orientation   *** *** *** *** ***


SR5. <Evaluate view orientation matrix> generates a 2D homogeneous 3x3 matrix which performs a shift and rotate such that points specified within the 2D WC (x-y) system are re-labeled according to 2D VRC (u-v) system.
#F 108
#D
#S 4.7.5/85/3
#T P01/2

SR6. The transformation established by <evaluate view orientation matrix> is determined as follows: a) the "view reference point" in WC defines the origin of the VRC, b) the positive direction of the V (2nd) axis is defined by the "view up vector", and c) the U (1st) axis is perpendicular to the V axis and forms a right-handed system with it.
#F 108
#D
#S 4.7.5/85/4ff
#T P01/2
*** *** *** *** ***   3D View mapping   *** *** *** *** ***


SR7. <Evaluate view mapping matrix 3> generates a 3D homogeneous matrix which performs a transformation of points specified within the VRC (u-v-n) system to the NPC (px-py-pz) system, such that the surfaces (left, right, etc.) of the view volume are mapped to the corresponding surfaces of the projection viewport.
#F 109
#D
#S 4.7.5/86/4
#T P02/1 P02/3 P02/5 P02/7 #C Note that the constraints on view mapping do not determine a
unique transformation; in particular it is not required that the
transformation from the VRC n-dimension to the NPC z-dimension be
linear.

SR8. The view volume established by <evaluate view mapping matrix 3> is determined as follows: a) The view window is a rectangle lying in plane n=VPD, with left, right, bottom, and top edges defined respectively by the lines (within the view plane) u=UMIN, u=UMAX, v=VMIN, v=VMAX. b) For PARALLEL projection, the projectors are all parallel to the line containing the PRP and the center of the view window. c) For PERSPECTIVE projection, the projectors all contain the PRP. d) The left, right, bottom, and top planes of the view volume are defined by the constraint that they contain all the projectors intersecting the left, right, bottom, and top edges of the view window. e) The front and back planes of the view volume are defined by n=FPD and n=BPD, respectively.
#F 109
#D
#S 4.7.5/86/6ff
#T P02/1 P02/3 P02/5 P02/7

SR9. The projection viewport established by <evaluate view mapping matrix 3> is the rectangular parallelpiped, whose left, right, bottom, top, back, and front planes are defined by, respectively, px=XMIN, px=XMAX, py=YMIN, py=YMAX, pz=ZMIN, and pz=ZMAX.
#F 109
#D
#S 4.7.5/86/5
#T P02/1 P02/3 P02/5 P02/7

SR10. All 3D VRC projectors are mapped to 3D NPC lines of the form: (px = constant1, py = constant2, pz = arbitrary).
#F 109
#D
#S 4.7.5/86/9
#T P02/2 P02/4 P02/6 P02/8
*** *** *** *** ***   2D View mapping   *** *** *** *** ***


SR11. <Evaluate view mapping matrix> generates a 2D homogeneous matrix which performs a transformation of points specified within the 2D VRC (u-v) system to the 2D NPC (px-py) system, such that the edges (left, right, etc.) of the view window are mapped to the corresponding edges of the projection viewport.
#F 110
#D
#S 4.7.5/89/1
#T P03/1

SR12. The view window established by <evaluate view mapping matrix> is the rectangle whose left, right, bottom, and top edges are defined by, respectively, u=UMIN, u=UMAX, v=VMIN, and v=VMAX.
#F 110
#D
#S 4.7.5/89/3
#T P03/1

SR13. The projection viewport established by <evaluate view mapping matrix> is the rectangle whose left, right, bottom, and top edges are defined by, respectively, px=XMIN, px=XMAX, py=YMIN, and py=YMAX.
#F 110
#D
#S 4.7.5/89/2
#T P03/1

LOCAL DICTIONARY:

  Functions ---
  107: pevom3  <evaluate view orientation matrix 3>
  108: pevom   <evaluate view orientation matrix>
  109: pevmm3  <evaluate view mapping matrix 3>
  110: pevmm   <evaluate view mapping matrix>
 
  Data Structures ---
  5  ...  workstation_state_list
  5.4  ...  view_table
  5.4.2  ...  view_table_ordered_by_input_priority
  5.4.2.3  ...  current_view
  5.4.2.3.1  ...  current_view_orientation_matrix
  5.4.2.3.2  ...  current_view_mapping_matrix
  5.4.2.4  ...  requested_view
  5.4.2.4.1  ...  requested_view_orientation_matrix
  5.4.2.4.2  ...  requested_view_mapping_matrix
 
LOCAL SUBROUTINES: These tests use the transformation subroutine
library and 06.02.01 level subroutines to check mapping.  See
those libraries for documentation of the routines.



PROGRAM 1: Behavior of orientation utilities

You may inspect either the design or code for this program.


PROGRAM 2: Behavior of 3D mapping

You may inspect either the design or code for this program.


PROGRAM 3: Behavior of 2D mapping

You may inspect either the design or code for this program.

End of documentation for 06.02.01