KrisLibrary
1.0.0
|
A rigid-body transformation. More...
#include <primitives.h>
Public Member Functions | |
RigidTransform (const RigidTransform &) | |
RigidTransform (const Matrix3 &, const Vector3 &) | |
RigidTransform (const Vector3 &, const Vector3 &, const Vector3 &, const Vector3 &) | |
RigidTransform (const Matrix4 &) | |
bool | operator== (const RigidTransform &) const |
bool | operator!= (const RigidTransform &) const |
const RigidTransform & | operator= (const RigidTransform &) |
void | operator*= (const RigidTransform &) |
void | operator*= (const Matrix3 &) |
void | operator+= (const Vector3 &) |
void | operator-= (const Vector3 &) |
operator Matrix4 () const | |
void | compose (const RigidTransform &a, const RigidTransform &b) |
this(v) = a(b(v)) | |
void | composeInverseA (const RigidTransform &a, const RigidTransform &b) |
this(v) = a^-1(b(v)) | |
void | composeInverseB (const RigidTransform &a, const RigidTransform &b) |
void | mul (const RigidTransform &a, const RigidTransform &b) |
mul = compose | |
void | mulInverseA (const RigidTransform &a, const RigidTransform &b) |
void | mulInverseB (const RigidTransform &a, const RigidTransform &b) |
void | setIdentity () |
void | set (const RigidTransform &) |
void | set (const Matrix3 &, const Vector3 &) |
void | set (const Vector3 &x, const Vector3 &y, const Vector3 &z, const Vector3 &trans) |
void | set (const Matrix4 &) |
void | setRotate (const Matrix3 &) |
sets the xform to just rotate | |
void | setTranslate (const Vector3 &) |
sets the xform to just translate | |
void | setRotation (const Matrix3 &) |
void | setTranslation (const Vector3 &) |
void | setInverse (const RigidTransform &) |
void | setRotated (const RigidTransform &a, const Matrix3 &r) |
void | setShifted (const RigidTransform &a, const Vector3 &v) |
void | get (RigidTransform &) const |
void | get (Matrix3 &, Vector3 &) const |
void | get (Vector3 &x, Vector3 &y, Vector3 &z, Vector3 &trans) const |
void | get (Matrix4 &) const |
void | getRotation (Matrix3 &) const |
void | getTranslation (Vector3 &) const |
void | getInverse (RigidTransform &) |
void | inplaceInverse () |
void | inplaceRotate (const Matrix3 &) |
void | inplaceShift (const Vector3 &) |
bool | isIdentity (Real eps=Zero) const |
bool | isValid (Real eps=Epsilon) const |
true if the matrix is orthogonal | |
bool | Read (File &) |
bool | Write (File &) const |
vector operators | |
void | mul (const Vector3 &a, Vector3 &out) const |
= mulPoint | |
void | mul (const Vector4 &a, Vector3 &out) const |
void | mulPoint (const Vector3 &a, Vector3 &out) const |
void | mulVector (const Vector3 &a, Vector3 &out) const |
void | mulInverse (const Vector3 &a, Vector3 &out) const |
= mulPointInverse | |
void | mulInverse (const Vector4 &a, Vector3 &out) const |
void | mulPointInverse (const Vector3 &a, Vector3 &out) const |
void | mulVectorInverse (const Vector3 &a, Vector3 &out) const |
Public Attributes | |
Matrix3 | R |
Vector3 | t |
A rigid-body transformation.
A linear transformation of the form T(t)*R where R is an orthogonal (rotation) matrix, and T(t) is a translation by the vector t.
The property that R is orthogonal is assumed to be user-maintained.
This representation has the following properties:
1)
2) .
Therefore, many operations are more efficient than representing the transformation as a 4x4 homogeneous matrix.