The SEDRIS Data Representation Model
APPENDIX A - Classes
Local 4x4
|
Class Name: Local 4x4
Subclasses
This DRM class is concrete and has no subclasses.
Definition
An instance of this DRM class specifies a sixteen element matrix that is
used to scale, orient, and position objects in the scope of its aggregate
<LSR Transformation>.
The direction of rotation is determined by the
right-hand rule. The translation parameters are always in the rightmost
column of the matrix.
Since a <Local 4x4> only appears as part of an
<LSR Transformation>, and an
<LSR Transformation> only appears in
the scope of an LSR spatial reference frame, the objects to which a
<Local 4x4> is applied are always defined in
an LSR spatial reference frame. (Since LSR spatial reference frames are
usually used to specify <Model> rather than
<Environment Root> instances,
<Local 4x4> is usually considered to be 'local'.
However, an <Environment Root> may be
specified in an LSR spatial reference frame, in which case
<LSR Transformation> instances
would be legal within its scope.)
The matrix multiplication order is defined by w = M * v, where M is the
<Local 4x4> matrix, v is the original location
vector, and w is the resulting location vector.
Primary Page in DRM Diagram:
Secondary Pages in DRM Diagram:
This class appears on only one page of the DRM class diagram.
Example
- The position and orientation of the control tower in a
<Model> of
an airport is specified by the <Local 4x4>.
See <Transformation> for more examples.
FAQs
- How is the transformation matrix stored?
- SEDRIS stores matrices in row major order; that is, the
first four elements correspond to the first row of the matrix, the
following four elements correspond to the second row of the matrix,
and so on (just as a float[4][4] in C is organized). Hence, if
mat[][] is the matrix being used, then mat[i][j] is the element in
row i and column j of the matrix.
- What is the multiplication order for <
Local 4x4> matrices?
- If M is a <Local 4x4> transformation
matrix and v is a column location vector, then the SEDRIS Level
0 API transforms v to a column location vector w by setting w = Mv.
- Is a matrix in SEDRIS the same as a matrix in OpenGL?
- No. A matrix in SEDRIS is stored in row major order, while in OpenGL,
matrices are specified in column major order (as in the glMultMatrix
function). Consequently, to correctly apply SEDRIS transformations in
OpenGL programs, each matrix shall be reordered.
Constraints
None.
Component of (two-way)
Inherited Field Elements
This class has no inherited field elements.
Notes
Fields Notes
A standard 4 x 4 transformation matrix
Prev: Lobe Data.
Next: Location.
Up:Index.
Last updated: October 1, 2002
|
Copyright © 2002 SEDRIS
|
|