In file include/csgeom/transfrm.h:

class csReversibleTransform : public csTransform

A class which defines a reversible transformation from one coordinate system to another by maintaining an inverse transformation matrix

Inheritance:


Public Methods

csReversibleTransform(const csTransform& t)
Initialize with the given transformation
csReversibleTransform()
Initialize with the identity transformation
csReversibleTransform(const csMatrix3& o2t, const csVector3& pos)
Initialize with the given transformation
csReversibleTransform GetInverse()
Get the inverse of this transform
inline const csMatrix3& GetT2O()
Get 'this' to 'other' transformation matrix
inline csVector3 GetT2OTranslation()
Get 'this' to 'other' translation
friend csReversibleTransform operator* (const csReversibleTransform& t1, const csReversibleTransform& t2)
Combine two transforms, with the rightmost being applied first.
friend csTransform operator* (const csTransform& t1, const csReversibleTransform& t2)
Combine two transforms, with the rightmost being applied first.
friend csReversibleTransform& operator*= (csReversibleTransform& t1, const csReversibleTransform& t2)
Combine two transforms, with the rightmost being applied first.
friend csPlane operator/ (const csPlane& p, const csReversibleTransform& t)
Reverse a transformation on a Plane.
friend csVector3 operator/ (const csVector3& v, const csReversibleTransform& t)
Reverse a transformation on a 3D vector.
friend csReversibleTransform operator/ (const csReversibleTransform& t1, const csReversibleTransform& t2)
Combine two transforms, reversing t2 then applying t1.
friend csVector3& operator/= (csVector3& v, const csReversibleTransform& t)
Reverse a transformation on a 3D vector.
friend csReversibleTransform& operator/= (csReversibleTransform& t1, const csReversibleTransform& t2)
Combine two transforms, reversing t2 then applying t1.
friend csPlane& operator/= (csPlane& p, const csReversibleTransform& t)
Reverse a transformation on a Plane.
virtual void SetO2T(const csMatrix3& m)
Set 'other' to 'this' transformation matrix
virtual void SetT2O(const csMatrix3& m)
Set 'this' to 'other' transformation matrix
csVector3 This2Other(const csVector3& v)
Convert vector v in 'this' space to 'other' space
void This2Other(const csPlane& p, const csVector3& point, csPlane& result)
Convert a plane in 'this' space to 'other' space
csPlane This2Other(const csPlane& p)
Convert a plane in 'this' space to 'other' space
inline csVector3 This2OtherRelative(const csVector3& v)
Convert vector v in 'this' space to a vector in 'other' space, relative to local origin

Protected Fields

csMatrix3 m_t2o
Inverse transformation matrix ('this' to 'other' space).

Protected Methods

csReversibleTransform(const csMatrix3& o2t, const csMatrix3& t2o, const csVector3& pos)
Initialize transform with both transform matrix and inverse tranform

Inherited from csTransform:

Public Methods

inline const csMatrix3& GetO2T()
inline const csVector3& GetO2TTranslation()
inline const csVector3& GetOrigin()
static csTransform GetReflect(const csPlane& pl)
csPlane Other2This(const csPlane& p)
inline csVector3 Other2This(const csVector3& v)
void Other2This(const csPlane& p, const csVector3& point, csPlane& result)
csVector3 Other2ThisRelative(const csVector3& v)
inline void SetO2TTranslation(const csVector3& v)
inline void SetOrigin(const csVector3& v)
inline void Translate(const csVector3& v)

Protected Fields

csMatrix3 m_o2t
csVector3 v_o2t

Documentation

A class which defines a reversible transformation from one coordinate system to another by maintaining an inverse transformation matrix. This version is similar to csTransform (in fact, it is a sub-class) but it is more efficient if you plan to do inverse transformations often.
csMatrix3 m_t2o
Inverse transformation matrix ('this' to 'other' space).

csReversibleTransform(const csMatrix3& o2t, const csMatrix3& t2o, const csVector3& pos)
Initialize transform with both transform matrix and inverse tranform

csReversibleTransform()
Initialize with the identity transformation

csReversibleTransform(const csMatrix3& o2t, const csVector3& pos)
Initialize with the given transformation. The transformation is given as a 3x3 matrix and a vector. The transformation is defined to mean T=M*(O-V) with T the vector in 'this' space, O the vector in 'other' space, M the transformation matrix and V the transformation vector.

csReversibleTransform(const csTransform& t)
Initialize with the given transformation

inline const csMatrix3& GetT2O()
Get 'this' to 'other' transformation matrix

inline csVector3 GetT2OTranslation()
Get 'this' to 'other' translation

csReversibleTransform GetInverse()
Get the inverse of this transform

virtual void SetO2T(const csMatrix3& m)
Set 'other' to 'this' transformation matrix

virtual void SetT2O(const csMatrix3& m)
Set 'this' to 'other' transformation matrix

csVector3 This2Other(const csVector3& v)
Convert vector v in 'this' space to 'other' space. This is the basic inverse transform operation.

inline csVector3 This2OtherRelative(const csVector3& v)
Convert vector v in 'this' space to a vector in 'other' space, relative to local origin

csPlane This2Other(const csPlane& p)
Convert a plane in 'this' space to 'other' space

void This2Other(const csPlane& p, const csVector3& point, csPlane& result)
Convert a plane in 'this' space to 'other' space. This is an optimized version for which a point on the new plane is known (point). The result is stored in 'result'.

friend csVector3 operator/ (const csVector3& v, const csReversibleTransform& t)
Reverse a transformation on a 3D vector.

friend csVector3& operator/= (csVector3& v, const csReversibleTransform& t)
Reverse a transformation on a 3D vector.

friend csPlane operator/ (const csPlane& p, const csReversibleTransform& t)
Reverse a transformation on a Plane.

friend csPlane& operator/= (csPlane& p, const csReversibleTransform& t)
Reverse a transformation on a Plane.

friend csReversibleTransform& operator*= (csReversibleTransform& t1, const csReversibleTransform& t2)
Combine two transforms, with the rightmost being applied first.

friend csReversibleTransform operator* (const csReversibleTransform& t1, const csReversibleTransform& t2)
Combine two transforms, with the rightmost being applied first.

friend csTransform operator* (const csTransform& t1, const csReversibleTransform& t2)
Combine two transforms, with the rightmost being applied first.

friend csReversibleTransform& operator/= (csReversibleTransform& t1, const csReversibleTransform& t2)
Combine two transforms, reversing t2 then applying t1.

friend csReversibleTransform operator/ (const csReversibleTransform& t1, const csReversibleTransform& t2)
Combine two transforms, reversing t2 then applying t1.


Direct child classes:
csOrthoTransform

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de