This represents the <Transform> entry of a group or texture node: a list of component transform operations, applied in order, that describe a net transform matrix. More...
Public Types | |
enum | ComponentType { CTInvalid = 0, CTTranslate2d = 1, CTTranslate3d = 2, CTRotate2d = 3, CTRotx = 4, CTRoty = 5, CTRotz = 6, CTRotate3d = 7, CTScale2d = 8, CTScale3d = 9, CTUniformScale = 10, CTMatrix3 = 11, CTMatrix4 = 12 } |
Public Member Functions | |
EggTransform () | |
EggTransform (EggTransform const copy) | |
addMatrix3 (Mat3D const mat) | |
Appends an arbitrary 3x3 matrix to the current transform. | |
addMatrix4 (Mat4D const mat) | |
Appends an arbitrary 4x4 matrix to the current transform. | |
addRotate2d (double angle) | |
Appends a 2-d rotation to the current transform. | |
addRotate3d (QuatD const quat) | |
Appends an arbitrary 3-d rotation to the current transform, expressed as a quaternion. | |
addRotate3d (double angle, Vec3D const axis) | |
Appends a 3-d rotation about an arbitrary axis to the current transform. | |
addRotx (double angle) | |
Appends a rotation about the X axis to the current transform. | |
addRoty (double angle) | |
Appends a rotation about the Y axis to the current transform. | |
addRotz (double angle) | |
Appends a rotation about the Z axis to the current transform. | |
addScale2d (VBase2D const scale) | |
Appends a possibly non-uniform scale to the current transform. | |
addScale3d (VBase3D const scale) | |
Appends a possibly non-uniform scale to the current transform. | |
addTranslate2d (Vec2D const translate) | |
Appends a 2-d translation operation to the current transform. | |
addTranslate3d (Vec3D const translate) | |
Appends a 3-d translation operation to the current transform. | |
addUniformScale (double scale) | |
Appends a uniform scale to the current transform. | |
clearTransform () | |
Resets the transform to empty, identity. | |
Mat3D const | getComponentMat3 (int n) |
Returns the 3x3 matrix associated with the nth component. | |
Mat4D const | getComponentMat4 (int n) |
Returns the 4x4 matrix associated with the nth component. | |
double | getComponentNumber (int n) |
Returns the solitary number associated with the nth component. | |
ComponentType | getComponentType (int n) |
Returns the type of the nth component. | |
VBase2D const | getComponentVec2 (int n) |
Returns the 2-component vector associated with the nth component. | |
VBase3D const | getComponentVec3 (int n) |
Returns the 3-component vector associated with the nth component. | |
int | getNumComponents () |
Returns the number of components that make up the transform. | |
Mat3D | getTransform2d () |
Returns the overall transform as a 3x3 matrix. | |
Mat4D const | getTransform3d () |
Returns the overall transform as a 4x4 matrix. | |
bool | hasTransform () |
Returns true if the transform is nonempty, false if it is empty (no transform components have been added). | |
bool | hasTransform2d () |
Returns true if the transform is specified as a 2-d transform, e.g. | |
bool | hasTransform3d () |
Returns true if the transform is specified as a 3-d transform, e.g. | |
EggTransform | operator= (EggTransform const copy) |
setTransform2d (Mat3D const mat) | |
Sets the overall transform as a 3x3 matrix. | |
setTransform3d (Mat4D const mat) | |
Sets the overall transform as a 4x4 matrix. | |
bool | transformIsIdentity () |
Returns true if the described transform is identity, false otherwise. | |
write (ostream out, int indent_level, string label) | |
Writes the transform to the indicated stream in Egg format. |
This represents the <Transform> entry of a group or texture node: a list of component transform operations, applied in order, that describe a net transform matrix.
This may be either a 3-d transform, and therefore described by a 4x4 matrix, or a 2-d transform, described by a 3x3 matrix.
enum ComponentType |
EggTransform | ( | ) |
EggTransform | ( | EggTransform const | copy | ) |
addMatrix3 | ( | Mat3D const | mat | ) |
Appends an arbitrary 3x3 matrix to the current transform.
addMatrix4 | ( | Mat4D const | mat | ) |
Appends an arbitrary 4x4 matrix to the current transform.
addRotate2d | ( | double | angle | ) |
Appends a 2-d rotation to the current transform.
The rotation angle is specified in degrees counterclockwise about the origin.
addRotate3d | ( | QuatD const | quat | ) |
Appends an arbitrary 3-d rotation to the current transform, expressed as a quaternion.
This is converted to axis-angle notation for the egg file.
addRotate3d | ( | double | angle, |
Vec3D const | axis | ||
) |
Appends a 3-d rotation about an arbitrary axis to the current transform.
The rotation angle is specified in degrees counterclockwise about the axis.
addRotx | ( | double | angle | ) |
Appends a rotation about the X axis to the current transform.
The rotation angle is specified in degrees counterclockwise about the axis.
addRoty | ( | double | angle | ) |
Appends a rotation about the Y axis to the current transform.
The rotation angle is specified in degrees counterclockwise about the axis.
addRotz | ( | double | angle | ) |
Appends a rotation about the Z axis to the current transform.
The rotation angle is specified in degrees counterclockwise about the axis.
addScale2d | ( | VBase2D const | scale | ) |
Appends a possibly non-uniform scale to the current transform.
addScale3d | ( | VBase3D const | scale | ) |
Appends a possibly non-uniform scale to the current transform.
addTranslate2d | ( | Vec2D const | translate | ) |
Appends a 2-d translation operation to the current transform.
addTranslate3d | ( | Vec3D const | translate | ) |
Appends a 3-d translation operation to the current transform.
addUniformScale | ( | double | scale | ) |
Appends a uniform scale to the current transform.
clearTransform | ( | ) |
Resets the transform to empty, identity.
Mat3D const getComponentMat3 | ( | int | n | ) |
Returns the 3x3 matrix associated with the nth component.
It is an error to call this if the component type is not CT_matrix3.
Mat4D const getComponentMat4 | ( | int | n | ) |
Returns the 4x4 matrix associated with the nth component.
It is an error to call this if the component type is not CT_matrix4.
double getComponentNumber | ( | int | n | ) |
Returns the solitary number associated with the nth component.
In the case of a rotation, this is the angle in degrees to rotate; in the case of uniform scale, this is the amount of the scale. Other types do not use this property.
ComponentType getComponentType | ( | int | n | ) |
Returns the type of the nth component.
VBase2D const getComponentVec2 | ( | int | n | ) |
Returns the 2-component vector associated with the nth component.
This may be the translate vector, rotate axis, or non-uniform scale. It is an error to call this if the component type does not use a 2-d vector property.
VBase3D const getComponentVec3 | ( | int | n | ) |
Returns the 3-component vector associated with the nth component.
This may be the translate vector, rotate axis, or non-uniform scale. It is an error to call this if the component type does not use a 3-d vector property.
int getNumComponents | ( | ) |
Returns the number of components that make up the transform.
Mat3D getTransform2d | ( | ) |
Returns the overall transform as a 3x3 matrix.
It is an error to call this if has_transform3d() is true.
Mat4D const getTransform3d | ( | ) |
Returns the overall transform as a 4x4 matrix.
It is valid to call this even if has_transform2d() is true; in this case, the 3x3 transform will be expanded to a 4x4 matrix.
bool hasTransform | ( | ) |
Returns true if the transform is nonempty, false if it is empty (no transform components have been added).
This is true for either a 2-d or a 3-d transform.
bool hasTransform2d | ( | ) |
Returns true if the transform is specified as a 2-d transform, e.g.
with a 3x3 matrix, or false if it is specified as a 3-d transform (with a 4x4 matrix), or not specified at all.
Normally, EggTextures have a 2-d matrix (but occasionally they use a 3-d matrix), and EggGroups always have a 3-d matrix.
bool hasTransform3d | ( | ) |
Returns true if the transform is specified as a 3-d transform, e.g.
with a 4x4 matrix, or false if it is specified as a 2-d transform (with a 2x2 matrix), or not specified at all.
Normally, EggTextures have a 3-d matrix (but occasionally they use a 3-d matrix), and EggGroups always have a 3-d matrix.
EggTransform operator= | ( | EggTransform const | copy | ) |
setTransform2d | ( | Mat3D const | mat | ) |
Sets the overall transform as a 3x3 matrix.
This completely replaces whatever componentwise transform may have been defined.
setTransform3d | ( | Mat4D const | mat | ) |
Sets the overall transform as a 4x4 matrix.
This completely replaces whatever componentwise transform may have been defined.
bool transformIsIdentity | ( | ) |
Returns true if the described transform is identity, false otherwise.