Module #06.01.01 : Modelling 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 modelling 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. Modelling transformations are represented as 4x4 (for 3D) or 3x3 (2D) matrices which pre-multiply points to be transformed.
#F 91-106
#D 7.3.3.1 7.3.3.2 7.3.3.3 7.3.3.4
#S 4.7.2/77/3
#T P01/1 P01/2 P01/3 P01/4 P02/1 P02/2 P02/3 P02/4 P03/1 P03/2 P03/3
#T P03/4 P04/1 P04/2 P05/1 P05/2 P06/1 P06/2 P07/1 P07/2

SR2. Points are represented 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 91-106
#D 7.3.3.1 7.3.3.2 7.3.3.3 7.3.3.4
#S 4.7.2/77/3
#T P01/1 P01/2 P01/3 P01/4 P02/1 P02/2 P02/3 P02/4 P03/1 P03/2 P03/3
#T P03/4 P04/1 P04/2 P05/1 P05/2 P06/1 P06/2 P07/1 P07/2

SR3. <Translate 3> generates a 3D homogeneous transformation matrix to translate a point from (x,y,z) to (x+dx, y+dy, z+dz).
#F 91
#D
#S 4.7.3/79/4
#T P01/1 P01/2

SR4. <Translate> generates a 2D homogeneous transformation matrix to translate a point from (x,y) to (x+dx, y+dy).
#F 92
#D
#S 4.7.3/79/4
#T P01/3 P01/4

SR5. <Scale 3> generates a 3D homogeneous transformation matrix to scale a point from (x,y,z) to (x*sx, y*sy, z*sz).
#F 93
#D
#S 4.7.3/79/4
#T P02/1 P02/2

SR6. <Scale> generates a 2D homogeneous transformation matrix to scale a point from (x,y) to (x*sx, y*sy).
#F 94
#D
#S 4.7.3/79/4
#T P02/3 P02/4

SR7. <Rotate x> generates a 3D homogeneous transformation matrix to rotate a point counterclockwise around the X axis by the specified rotation angle.
#F 95
#D
#S 4.7.3/79/4
#T P03/1

SR8. <Rotate y> generates a 3D homogeneous transformation matrix to rotate a point counterclockwise around the Y axis by the specified rotation angle.
#F 96
#D
#S 4.7.3/79/4
#T P03/2

SR9. <Rotate z> generates a 3D homogeneous transformation matrix to rotate a point counterclockwise around the Z axis by the specified rotation angle.
#F 97
#D
#S 4.7.3/79/4
#T P03/3

SR10. <Rotate> generates a 2D homogeneous transformation matrix to rotate a point counterclockwise around the origin by the specified rotation angle.
#F 98
#D
#S 4.7.3/79/4
#T P03/4

SR11. <Compose matrix 3> generates a 3D homogeneous transformation matrix which performs the same transformation as that resulting from the multiplication of the two specified matrices.
#F 99
#D
#S 4.7.3/79/4
#T P04/1

SR12. <Compose matrix> generates a 2D homogeneous transformation matrix which performs the same transformation as that resulting from the multiplication of the two specified matrices.
#F 100
#D
#S 4.7.3/79/4
#T P04/2

SR13. <Transform point 3> returns the 3D point resulting from applying the specified transformation matrix to the specified point.
#F 101
#D
#S 4.7.3/79/4
#T P05/1

SR14. <Transform point> returns the 2D point resulting from applying the specified transformation matrix to the specified point.
#F 102
#D
#S 4.7.3/79/4
#T P05/2

SR15. <Build transformation matrix 3> generates a 3D homogeneous transformation matrix to perform the specified transformation. This transformation performs the following operations in order, relative to the fixed point: scale, rotate x, rotate y, rotate z, and shift.
#F 103
#D
#S 4.7.3/79/4
#T P06/1

SR16. <Build transformation matrix> generates a 2D homogeneous transformation matrix to perform the specified transformation. This transformation performs the following operations in order, relative to the fixed point: scale, rotate, and shift.
#F 104
#D
#S 4.7.3/79/4
#T P06/2

SR17. <Compose transformation matrix 3> generates a 3D homogeneous transformation matrix to perform the specified transformation. This transformation performs the following operations in order, relative to the fixed point: scale, rotate x, rotate y, rotate z, and shift, and then apply the specified matrix.
#F 105
#D
#S 4.7.3/79/4
#T P07/1 #C Note that the specified matrix is applied last, not first.

SR18. <Compose transformation matrix> generates a 2D homogeneous transformation matrix to perform the specified transformation. This transformation performs the following operations in order, relative to the fixed point: scale, rotate, and shift, and then apply the specified matrix.
#F 106
#D
#S 4.7.3/79/4
#T P07/2 #C Note that the specified matrix is applied last, not first.

LOCAL DICTIONARY:

  Functions ---
  091: ptr3    <translate 3>
  092: ptr     <translate>
  093: psc3    <scale 3>
  094: psc     <scale>
  095: prox    <rotate x>
  096: proy    <rotate y>
  097: proz    <rotate z>
  098: pro     <rotate>
  099: pcom3   <compose matrix 3>
  100: pcom    <compose matrix>
  101: ptp3    <transform point 3>
  102: ptp     <transform point>
  103: pbltm3  <build transformation matrix 3>
  104: pbltm   <build transformation matrix>
  105: pcotm3  <compose transformation matrix 3>
  106: pcotm   <compose transformation matrix>
 
  Data Structures ---
  7  ...  structure_state_list
  7.3  ...  list_of_structure_elements
  7.3.3  ...  modelling_transformation_elements
  7.3.3.1  ...  local_transformation_3
  7.3.3.2  ...  local_transformation
  7.3.3.3  ...  global_transformation_3
  7.3.3.4  ...  global_transformation
 
LOCAL SUBROUTINES: These tests use the transformation subroutine
library.  See that library for documentation of the routines.



PROGRAM 1: Behavior of translations

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


PROGRAM 2: Behavior of scaling

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


PROGRAM 3: Behavior of rotations

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


PROGRAM 4: Behavior of matrix composition

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


PROGRAM 5: Behavior of transformation of points

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


PROGRAM 6: Building transformations

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


PROGRAM 7: Composition of a matrix with a transformation

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

End of documentation for 06.01.01