Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

Affine3DTransform Class Reference

An 3 dimensional affine transformation : X'=MX+T. More...

#include <Affine3DTransform.hpp>

Inheritance diagram for Affine3DTransform:

Inheritance graph
Collaboration diagram for Affine3DTransform:

Collaboration graph
List of all members.

Public Member Functions

Matrix GetMatrix () const
Vect3Df Translation () const
double operator() (int i, int j) const
double operator() (int i) const
void Set (const Matrix &_matrix, const Vect3Df &_translation)
Vect3Df operator() (const Vect3Df &x) const
 aplies transform on vector
void Inverse ()
 inverse: X=M'(X'-T)=M'X'-M'T
 Affine3DTransform (const Vect3Df &_translation)
 Affine3DTransform (float theta, const Vect3Df &direction, const Vect3Df &center=Vect3Df(0, 0, 0))
 Affine3DTransform (const string &fname)
 reads transform from file
virtual void Read (ImLib3DFile *file, xmlpp::Element *parentNode=NULL, xmlpp::Element *node=NULL)
 Read this object, either from a current node, a parent node, or the root node of the file.
virtual void Write (ImLib3DFile *file, xmlpp::Element *parentNode=NULL, xmlpp::Element *node=NULL) const
 Write this object, either to a current node, a parent node, or the root node of the file.
void Show ()
void Analyse ()
 To analyse a Transform a svd decomposition on the rotation matrix is computed.
void Reset ()
 Resets transformation: M is set to identity, and T to 0.
name Convenience Functions
SetRotationX (float theta, const Vect3Df &center=Vect3Df(0, 0, 0))
void SetRotationY (float theta, const Vect3Df &center=Vect3Df(0, 0, 0))
void SetRotationZ (float theta, const Vect3Df &center=Vect3Df(0, 0, 0))
void SetRotation (float theta, Vect3Df direction, const Vect3Df &center=Vect3Df(0, 0, 0))
void SetTranslation (const Vect3Df &_translation)
void SetScale (float sx, float sy, float sz)
void SetScale (const Vect3Df &scale)
Affine3DTransform operator *= (const Affine3DTransform &other)
 composes transform with other Affine3DTransform

Private Attributes

Matrix matrix
Vect3Df translation


void Affine3DTransform_Test ()
Affine3DTransform operator * (const Affine3DTransform &a1, const Affine3DTransform &a2)
 Composition of affine trfs.

Detailed Description

An 3 dimensional affine transformation : X'=MX+T.

An affine transform is composed of a 3x3 matrix M a translation vector T: X'=MX+T

Definition at line 40 of file Affine3DTransform.hpp.

Member Function Documentation

void Affine3DTransform::SetRotationX float  theta,
const Vect3Df center = Vect3Df(0, 0, 0)

Set rotation around line passing through C and parallel to X Axis, The rotation will be set absolutely, to allow more sophisticated rotation use concatenate several Affine3DTransforms using the *= operator as in: Affine3DTransform Ax; Ax.SetRotationX(phiX); Affine3DTransform Ay; Ay.SetRotationX(phiY); Ax*=Ay;

Definition at line 124 of file Affine3DTransform.cpp.

The documentation for this class was generated from the following files:
Generated on Fri Jun 17 13:36:18 2005 for ImLib3D by  doxygen 1.4.2