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