KrisLibrary  1.0.0
Public Member Functions | Public Attributes | List of all members
Math3D::RigidTransform Class Reference

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 RigidTransformoperator= (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
 

Detailed Description

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) $ R^{-1} = R^t $
2) $ R*T(t) = T(R*t)*R $.

Therefore, many operations are more efficient than representing the transformation as a 4x4 homogeneous matrix.


The documentation for this class was generated from the following files: