|
Developer Documentation |
|
Centre for Vision, Speech & Signal Processing |
|
PUBLIC |
HomtmC::HomtmC(void)
HomtmC::HomtmC(RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT)
HomtmC::HomtmC(JointT,const Vector3dC &,BooleanT)
HomtmC::HomtmC(HtmOperT,double)
HomtmC::HomtmC(HtmOperT,HtmOperT,HtmOperT,const Vector3dC &,BooleanT)
HomtmC::HomtmC(Vector3dC,double)
HomtmC::HomtmC(double,double,double)
HomtmC::HomtmC(const Vector3dC &)
HomtmC::HomtmC(const Matrix4d4C &)
HomtmC::HomtmC(const Matrix3d3C &)
HomtmC::HomtmC(const QuarternC &)
HomtmC::HomtmC(const HomtmC &)
HomtmC::~HomtmC(void)
HomtmC::Transform(Vector3dC &)
HomtmC::Dump(void) const
HomtmC::DumpLong(void) const
HomtmC::Inv(void)
HomtmC::RotMat(void) const
HomtmC::Pos(void) const
HomtmC::SetPos(const Vector3dC &)
HomtmC::SetPos(RealT,RealT,RealT)
HomtmC::ExportQuartern(void) const
HomtmC::ExportRotVector(void) const
HomtmC::ExportRotAngle(void) const
HomtmC::ExportRotation(void) const
HomtmC::ImportQuartern(const QuarternC &)
HomtmC::ImportRotation(const Matrix3d3C &)
HomtmC::ImportRotation(Vector3dC &)
HomtmC::operator=(const HomtmC &)
HomtmC::operator=(const Matrix4d4C &)
HomtmC::operator*(const HomtmC &) const
HomtmC::ExportEuler(JointT,BooleanT) const
HomtmC::RotToEuler(const Matrix3d3C &,JointT,BooleanT)
HomtmC::RotToEuler(const Matrix4d4C &,JointT,BooleanT)
|
Comments:
-----------------------------------------------------------------------------
Variables:
- Matrix4d4C T;
-
The class data is public to allow full access to its member functions.
We suppose that Matrix4d4C is sufficiently "protected" by itself and
that the programmer is "carefull?".
Constructors
------------
Methods:
- HomtmC()
-
Null constructor, sets to identity transform
- HomtmC(RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT,RealT)
-
Constructor with direct value initialisation
- HomtmC(JointT t,const Vector3dC & angles,BooleanT premult = TRUE)
-
constructs a Homtm which is a pure rotation using the 1-3 angles
stored in the Vector. If premult is TRUE the rotations
are applied in the order 3 2 1 otherwise 1 2 3
- HomtmC(HtmOperT t,double a)
-
specific rotations, eg RX, theta in radians
- HomtmC(HtmOperT t0,HtmOperT t1,HtmOperT t2,const Vector3dC & angles,BooleanT premult = TRUE)
-
specific rotations, eg RX, theta in radians
- HomtmC(Vector3dC axis,double theta)
-
Axis and angle, axis will be normalised!!
- HomtmC(double roll,double pitch,double yaw)
-
roll, pitch, yaw
- HomtmC(const Vector3dC & trans)
-
Constructor from a translation
- HomtmC(const Matrix4d4C &)
-
Constructor from a Matrix4d4C
- HomtmC(const Matrix3d3C &)
-
Constructor from a Matrix3d3C
- HomtmC(const QuarternC &)
-
Constructor from a quarternion
- HomtmC(const HomtmC &)
-
- ~HomtmC()
-
Destructor
Access/ Action Functions
------------------------
- Vector3dC & Transform(Vector3dC & v)
-
transform the supplied vector, the vector is changed!
- void Dump() const
-
Outputs the contents of the matrix to stdout in a comprehensive format
- void DumpLong() const
-
Outputs the contents of the matrix to stdout in a comprehensive format
- HomtmC Inv()
-
Returns an HomtmC which is the inverse of this Htm.
It does not modify this instance. Additionally, this is not a typical 4x4
inverse function and therefore cannot be applied to derive the inverse
of any 4x4 matrix. It only works for Htms with their perspective
sub-matrix equal to [0 0 0] and their scale equal to [1].
So, the result is hard-coded to return an Htm with such characteristics.
- Matrix3d3C RotMat() const
-
Returns the rotation matrix which is described by the 3x3 upper left
- Vector3dC Pos() const
-
Returns the position vector which is described by the 3x1 upper right
sub-matrix of this Htm.
- void SetPos(const Vector3dC &)
-
- void SetPos(RealT,RealT,RealT)
-
Sets the position sub-matrix of the Htm.
- QuarternC ExportQuartern() const
-
Returns the quaternion which describes this Htm's rotation.
- Vector3dC ExportRotVector() const
-
Exports the unit vector of the rotation axis.
- RealT ExportRotAngle() const
-
Exports the angle of rotation (in radians) about the previous rotation axis.
- Vector3dC ExportRotation() const
-
Exports the represented rotation in the form of a single vector r(rx,ry,rz).
Recall, that if |r| is the length of the vector (i.e. sqrt(rx^2+ry^2+rz^2)
then the rotation is theta=|r|, about a unit vector u=(rx,ry,rz)/|r|.
- void ImportQuartern(const QuarternC &)
-
Sets the rotation sub-matrix from a given quarternion
- void ImportRotation(const Matrix3d3C &)
-
Import the rotation represented by the given 3x3 matrix
- void ImportRotation(Vector3dC &)
-
Import the rotation represented by the given vector, into the rot. sub-matrix.
Rotation expressed in radians
Vector3dC GetEuler(JointT t) const;
removed
calculates and gives the euler angles of the rotation matrix homtm
Warning - not available for all rotation types
Warning - not tested over a wide range of angles, eg near 0 and 180
It is the users responsibility to make a request compatible with the
actual contents of the Homtm, eg dont ask for RXRY if general rotation!
The exact scheme for Euler angle conventions will be documented later
by Dorien van de Belt
Overloaded Operators
--------------------
- HomtmC & operator=(const HomtmC &)
-
Assignment
- HomtmC & operator=(const Matrix4d4C &)
-
Assignment to a Matrix4d4C
- HomtmC operator*(const HomtmC &) const
-
HomtmC * HomtmC = HomtmC (Breaks down to Matrix4d4C *)
------------- Shoemake's Euler Angle Conversion, ----------------------
------------- Graphic Gems IV, pp. 222 - 229 --------------------------
- Vector3dC ExportEuler(JointT jtype = RXRYRZ,BooleanT premult = TRUE) const
-
the angles correspond to rotations around static axes XYZ (in radians)
- Vector3dC RotToEuler(const Matrix3d3C & m,JointT jtype = RXRYRZ,BooleanT premult = TRUE)
-
the angles correspond to rotations around static axes XYZ (in radians)
- Vector3dC RotToEuler(const Matrix4d4C & m,JointT jtype = RXRYRZ,BooleanT premult = TRUE)
-
the angles correspond to rotations around static axes XYZ (in radians)
------------- End of Shoemake's Euler Angle Conversion ---------------
|
Programmer:Andrew Stoddart, Documentation by CxxDoc: Tue Mar 20 10:49:27 2001
|