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

esve::engine::dim3::impl::Transform Class Reference

Implements engine::dim3::Transform. More...

#include <esve/engine/dim3/impl/Transform.hxx>

Inheritance diagram for esve::engine::dim3::impl::Transform:

esve::engine::dim3::Transform List of all members.

Public Member Functions

 Transform ()
 Construct the identity.

 Transform (const types::quat &rotation, const types::pure &translation=types::pure(), types::real scaling=types::real(1))
 Constructor. See dim3::Transform.

const types::quatrotation () const
 Rotation state.

void rotation (const types::quat &a)
 Rotation state.

const types::puretranslation () const
 Translation state.

void translation (const types::pure &a)
 Translation state.

types::real scaling () const
 Scaling state.

void scaling (types::real a)
 Scaling state.

void left_act (const Transform &a)
 *this := a * (*this)

void right_act (const Transform &a)
 *this := (*this) * a

void act (const Transform &action, const Transform &basis)
 General differential action.

void assign (const Transform &a)
 *this := a

void identity ()
 *this := 1

void invert ()
 *this := (*this)^(-1)

void normalize ()
 Snap to closest orthogonal transform. The translation component is retained.

bool operator== (const Transform &a) const
 Equal by value.

bool operator!= (const Transform &a) const
 Unequal by value.

Actions
The basis argument is similarity-conjugated:
            *this := basis*action*(basis)^(-1)*(*this)

basis == IDENTITY means left action.
basis == *this means right action.

virtual void rotate (types::real angle, const types::pure &axis, const Transform &basis=IDENTITY)=0
 Rotate around this axis by this angle (in radians). The axis must have unit length.

virtual void translate (const types::pure &dt, const Transform &basis=IDENTITY)=0
 *this := (*this) + dt

virtual void scalate (types::real ds, const Transform &basis=IDENTITY)=0
 *this := (*this)*ds


Static Public Attributes

const TransformIDENTITY
 The group identity element.


Detailed Description

Implements engine::dim3::Transform.


Member Function Documentation

const types::quat& esve::engine::dim3::impl::Transform::rotation  )  const [virtual]
 

Rotation state.

Precondition:
unit length

Implements esve::engine::dim3::Transform.

void esve::engine::dim3::impl::Transform::rotation const types::quat a  )  [virtual]
 

Rotation state.

Precondition:
unit length

Implements esve::engine::dim3::Transform.


Generated on Tue May 30 11:40:56 2006 for esve by doxygen 1.3.4