|void||DSet_Modelling_Matrix (double float *matrix)|
|void||Set_Modelling_Matrix (const float *matrix)|
|Allows direct manipulation of the transformation that is applied against all the picture elements in a segment. More...|
|Removes all settings established by a previous call to Set_Modelling_Matrix(). More...|
|void Set_Modelling_Matrix||(||const float *||matrix||)|
Allows direct manipulation of the transformation that is applied against all the picture elements in a segment.
matrix - Transformation matrix provided by the user. Passed by reference in all languages. May need to be transposed in languages other than C.
On the way out to the screen, each (x, y, z) coordinate triplet can be thought of as encountering the following:
First, the modelling transformation (there may a stack of them).
Second, the camera or viewing transformation (only one).
Third, any window (a stack, again).
And lastly, the particular device's coordinate system.
(Of course, the system combines these in advance to give one net transformation.)
Set_Modelling_Matrix() allows you to manipulate the first stage, but it is more common to accumulate a net modelling transformation by calling the utility routines Rotate, Translate, or Scale Object one or more times. If your program has a special need to compute and track geometric transformations, you can load the matrix directly.
Modelling matrices are cumulative—if another modelling matrix specification is encountered higher or lower in the segment tree, the matrices are combined (multiplied together) to give the logical effect.
The array should be stored so the column varies faster than the row as you proceed through consecutive memory locations. In C and Pascal, this usually means the first index of the array is the row index and the second index is the column.
The first, second, and third rows of the fourth column of array must be zero—no "perspective" transformation is allowed. The fourth row of the fourth column is usually 1.0 (it must not be zero.)