csTransform Class Reference
[Geometry utilities]
A class which defines a transformation from one coordinate system to another.
More...
#include <transfrm.h>
Inheritance diagram for csTransform:

Public Methods | |
csTransform () | |
Initialize with the identity transformation. | |
csTransform (const csMatrix3 &other2this, const csVector3 &origin_pos) | |
Initialize with the given transformation. | |
void | Identity () |
Reset this transform to the identity transform. | |
bool | IsIdentity () const |
Returns true if this transform is an identity transform. | |
const csMatrix3 & | GetO2T () const |
Get 'other' to 'this' transformation matrix. | |
const csVector3 & | GetO2TTranslation () const |
Get 'world' to 'this' translation. | |
const csVector3 & | GetOrigin () const |
Get origin of transformed coordinate system. | |
virtual void | SetO2T (const csMatrix3 &m) |
Set 'other' to 'this' transformation matrix. | |
virtual void | SetO2TTranslation (const csVector3 &v) |
Set 'world' to 'this' translation. | |
void | SetOrigin (const csVector3 &v) |
Set origin of transformed coordinate system. | |
void | Translate (const csVector3 &v) |
Move the 'other' to 'this' translation by a specified amount. | |
csVector3 | Other2This (const csVector3 &v) const |
Transform vector in 'other' space v to a vector in 'this' space. | |
csVector3 | Other2ThisRelative (const csVector3 &v) const |
Convert vector v in 'other' space to a vector in 'this' space. | |
csPlane3 | Other2This (const csPlane3 &p) const |
Convert a plane in 'other' space to 'this' space. | |
csPlane3 | Other2ThisRelative (const csPlane3 &p) const |
Convert a plane in 'other' space to 'this' space. | |
void | Other2This (const csPlane3 &p, const csVector3 &point, csPlane3 &result) const |
Convert a plane in 'other' space to 'this' space. | |
csSphere | Other2This (const csSphere &s) const |
Convert a sphere in 'other' space to 'this' space. | |
Static Public Methods | |
csTransform | GetReflect (const csPlane3 &pl) |
Return a transform that represents a mirroring across a plane. | |
Protected Attributes | |
csMatrix3 | m_o2t |
Transformation matrix from 'other' space to 'this' space. | |
csVector3 | v_o2t |
Location of the origin for 'this' space. | |
Friends | |
csVector3 | operator * (const csVector3 &v, const csTransform &t) |
Apply a transformation to a 3D vector. | |
csVector3 | operator * (const csTransform &t, const csVector3 &v) |
Apply a transformation to a 3D vector. | |
csVector3 & | operator *= (csVector3 &v, const csTransform &t) |
Apply a transformation to a 3D vector. | |
csPlane3 | operator * (const csPlane3 &p, const csTransform &t) |
Apply a transformation to a Plane. | |
csPlane3 | operator * (const csTransform &t, const csPlane3 &p) |
Apply a transformation to a Plane. | |
csPlane3 & | operator *= (csPlane3 &p, const csTransform &t) |
Apply a transformation to a Plane. | |
csSphere | operator * (const csSphere &p, const csTransform &t) |
Apply a transformation to a sphere. | |
csSphere | operator * (const csTransform &t, const csSphere &p) |
Apply a transformation to a sphere. | |
csSphere & | operator *= (csSphere &p, const csTransform &t) |
Apply a transformation to a sphere. | |
csMatrix3 | operator * (const csMatrix3 &m, const csTransform &t) |
Multiply a matrix with the transformation matrix. | |
csMatrix3 | operator * (const csTransform &t, const csMatrix3 &m) |
Multiply a matrix with the transformation matrix. | |
csMatrix3 & | operator *= (csMatrix3 &m, const csTransform &t) |
Multiply a matrix with the transformation matrix. | |
csTransform | operator * (const csTransform &t1, const csReversibleTransform &t2) |
Combine two transforms, rightmost first. |
Detailed Description
A class which defines a transformation from one coordinate system to another.The two coordinate systems are refered to as 'other' and 'this'. The transform defines a transformation from 'other' to 'this'.
Definition at line 43 of file transfrm.h.
Constructor & Destructor Documentation
|
Initialize with the identity transformation.
Definition at line 55 of file transfrm.h. |
|
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. Definition at line 64 of file transfrm.h. |
Member Function Documentation
|
Get 'other' to 'this' transformation matrix. This is the 3x3 matrix M from the transform equation T=M*(O-V). Definition at line 101 of file transfrm.h. Referenced by csOrthoTransform::csOrthoTransform(). |
|
Get 'world' to 'this' translation. This is the vector V from the transform equation T=M*(O-V). This is equivalent to calling GetOrigin(). Definition at line 108 of file transfrm.h. Referenced by csOrthoTransform::csOrthoTransform(). |
|
Get origin of transformed coordinate system. This is equivalent to calling GetO2TTranslation(). Definition at line 114 of file transfrm.h. |
|
Return a transform that represents a mirroring across a plane. This function will return a csTransform which represents a reflection across the plane pl. |
|
Reset this transform to the identity transform.
Definition at line 70 of file transfrm.h. |
|
Returns true if this transform is an identity transform. This tests all fields so don't call this before every operation. Definition at line 80 of file transfrm.h. References csMatrix3::m11, csMatrix3::m12, csMatrix3::m13, csMatrix3::m21, csMatrix3::m22, csMatrix3::m23, csMatrix3::m31, csMatrix3::m32, csMatrix3::m33, csVector3::x, csVector3::y, and csVector3::z. |
|
Convert a sphere in 'other' space to 'this' space.
|
|
Convert a plane in 'other' space to 'this' space. This is an optimized version for which a point on the new plane is known (point). The result is stored in 'result'. If 'p' is expressed as (N,D) (with N a vector for the A,B,C components of 'p') then this will return a new plane in 'result' which looks like (M*N,-(M*N)*point). |
|
Convert a plane in 'other' space to 'this' space. If 'p' is expressed as (N,D) (with N a vector for the A,B,C components of 'p') then this will return a new plane which looks like (M*N,D+(M*N)*(M*V)). |
|
Transform vector in 'other' space v to a vector in 'this' space. This is the basic transform function. This will calculate and return M*(v-V). Definition at line 147 of file transfrm.h. |
|
Convert a plane in 'other' space to 'this' space. This version ignores translation. If 'p' is expressed as (N,D) (with N a vector for the A,B,C components of 'p') then this will return a new plane which looks like (M*N,D). |
|
Convert vector v in 'other' space to a vector in 'this' space. Use the origin of 'other' space. This will calculate and return M*v (so the translation or V of this transform is ignored). Definition at line 157 of file transfrm.h. |
|
Set 'other' to 'this' transformation matrix. This is the 3x3 matrix M from the transform equation T=M*(O-V). Reimplemented in csReversibleTransform, and csOrthoTransform. Definition at line 120 of file transfrm.h. |
|
Set 'world' to 'this' translation. This is the vector V from the transform equation T=M*(O-V). This is equivalent to calling SetOrigin(). Definition at line 127 of file transfrm.h. |
|
Set origin of transformed coordinate system. This is equivalent to calling SetO2TTranslation(). Definition at line 133 of file transfrm.h. |
|
Move the 'other' to 'this' translation by a specified amount. Basically this will add 'v' to the origin or translation of this transform so that the new transform looks like T=M*(O-(V+v)). Definition at line 140 of file transfrm.h. |
Friends And Related Function Documentation
|
Combine two transforms, rightmost first. Given the following definitions:
Reimplemented in csReversibleTransform. |
|
Multiply a matrix with the transformation matrix. This will calculate and return M*m. |
|
Multiply a matrix with the transformation matrix. This will calculate and return m*M. |
|
Apply a transformation to a sphere. This corresponds exactly to calling t.Other2This(p). |
|
Apply a transformation to a sphere. This corresponds exactly to calling t.Other2This(p). |
|
Apply a transformation to a Plane. This corresponds exactly to calling t.Other2This(p). |
|
Apply a transformation to a Plane. This corresponds exactly to calling t.Other2This(p). |
|
Apply a transformation to a 3D vector. This corresponds exactly to calling t.Other2This (v). |
|
Apply a transformation to a 3D vector. This corresponds exactly to calling t.Other2This (v). |
|
Multiply a matrix with the transformation matrix. This corresponds exactly to m*=M. |
|
Apply a transformation to a sphere. This corresponds exactly to calling p = t.Other2This(p). |
|
Apply a transformation to a Plane. This corresponds exactly to calling p = t.Other2This(p). |
|
Apply a transformation to a 3D vector. This corresponds exactly to calling v = t.Other2This(v). |
Member Data Documentation
|
Transformation matrix from 'other' space to 'this' space.
Definition at line 47 of file transfrm.h. Referenced by csOrthoTransform::SetO2T(), and csOrthoTransform::SetT2O(). |
|
Location of the origin for 'this' space.
Definition at line 49 of file transfrm.h. |
The documentation for this class was generated from the following file:
- csgeom/transfrm.h
Generated for Crystal Space by doxygen 1.2.18