ReferenceFrame

Holds rigid transformations, reference frames, axis systems using a compact Rotation3 object and a trnaslational vector.

[ GAMB | Source | Keywords | Summary | Ancestors | All Members | Descendants ]

Quick Index

AUTHORS
CHANGES LOG
GOALS
USAGE

Class Summary

class ReferenceFrame
{
public:
ReferenceFrame();
ReferenceFrame(const Rotation3& r, const Vector3& t);
explicit ReferenceFrame(const RigidTrans3& rt);
operator RigidTrans3() const;
Vector3 coordinatesInSystem(const Vector3& v) const;
const Rotation3& rotation() const;
const Vector3& translation() const;
Matrix3 rotationMatrix() const;
// Operators.
friend Vector3 operator*(const ReferenceFrame& rt, const Vector3& v);
friend ReferenceFrame operator*(const ReferenceFrame& rt1, const ReferenceFrame& rt2);
friend ReferenceFrame operator!(const ReferenceFrame& rt);
friend ostream& operator<<(ostream& s, const ReferenceFrame& rt);
protected:
}; // ReferenceFrame

Back to the top of ReferenceFrame


AUTHORS

Zipi Fligelman (zipo@math.tau.ac.il)

Copyright: SAMBA group , Tel-Aviv Univ. Israel, 1997.

Back to the top of ReferenceFrame


CHANGES LOG

Back to the top of ReferenceFrame


GOALS

The class is synonymous in purpose to the RigidTrans3 class except that it holds the rotational parameters in a Rotation3 instead of a Matrix3. The class was written in order to allow a compact description of axis systems or rigid transformations.

Back to the top of ReferenceFrame


USAGE

Back to the top of ReferenceFrame


ReferenceFrame();

Empty constructor = 0 rigid transformation or default axis system.

  ReferenceFrame();

Back to the top of ReferenceFrame


ReferenceFrame(const Rotation3& r, const Vector3& t);

Builds a reference frame from a rotation and translation. The rotational parameters should conform with those given in RigidTrans3. i.e. They are in radians and in the order of around X (Y-Z plane), around Y (Z-X plane), around Z (X-Y plane).

  ReferenceFrame(const Rotation3& r, const Vector3& t);

Back to the top of ReferenceFrame


explicit ReferenceFrame(const RigidTrans3& rt);

Extracts a ReferenceFrame from a 3D rigid transformation object

  explicit ReferenceFrame(const RigidTrans3& rt);

Back to the top of ReferenceFrame


operator RigidTrans3() const;

casting operator returning a reference frame as a rigid transformation RigidTrans3. This casting operator allows the user to use RigidTrans3's non-inplace operators.

  operator RigidTrans3() const;

Back to the top of ReferenceFrame


Vector3 coordinatesInSystem(const Vector3& v) const;

Computes the positions coordinates of agiven particle within the reference frame.

  Vector3 coordinatesInSystem(const Vector3& v) const;

Back to the top of ReferenceFrame


const Rotation3& rotation() const;

Returns a Rotation3 object of the ReferenceFrame's rotation.

  const Rotation3& rotation() const;

Back to the top of ReferenceFrame


const Vector3& translation() const;

Returns the translation of the rigid transformation or in axis systems the origin of the system.

  const Vector3& translation() const;

Back to the top of ReferenceFrame


Matrix3 rotationMatrix() const;

Returns the appropriate rotation matrix that rotates 3D space with the given rotation angles of the reference frame.

  Matrix3 rotationMatrix() const;

Back to the top of ReferenceFrame


friend Vector3 operator*(const ReferenceFrame& rt, const Vector3& v);

Apply the rigid transformation rn ob vector v. Apply a rotation followed by a translation

  friend Vector3 operator*(const ReferenceFrame& rt, const Vector3& v);

Back to the top of ReferenceFrame


friend ReferenceFrame operator*(const ReferenceFrame& rt1, const ReferenceFrame& rt2);

multiply two rigid transformation such that for any vector v (rt1*rt2)*v = rt1*(rt2*v)

  friend ReferenceFrame operator*(const ReferenceFrame& rt1, 
                               const ReferenceFrame& rt2);

Back to the top of ReferenceFrame


friend ReferenceFrame operator!(const ReferenceFrame& rt);

Gives the inverse of a rigid transformation such that for any vector v (rt*!rt)*v = rt*(!rt*v) = v and rt*!rt = RigidTrans3().

  friend ReferenceFrame operator!(const ReferenceFrame& rt);

Back to the top of ReferenceFrame


friend ostream& operator<<(ostream& s, const ReferenceFrame& rt);

prints 3 rotations in X-Y-Z order (see above) and translation vector.

  friend ostream& operator<<(ostream& s, const ReferenceFrame& rt);

Back to the top of ReferenceFrame


All Members

public:
explicit ReferenceFrame(const RigidTrans3& rt);
operator RigidTrans3() const;
Vector3 coordinatesInSystem(const Vector3& v) const;
const Rotation3& rotation() const;
const Vector3& translation() const;
Matrix3 rotationMatrix() const;
// Operators.
friend Vector3 operator*(const ReferenceFrame& rt, const Vector3& v);
friend ReferenceFrame operator*(const ReferenceFrame& rt1, const ReferenceFrame& rt2);
friend ReferenceFrame operator!(const ReferenceFrame& rt);
friend ostream& operator<<(ostream& s, const ReferenceFrame& rt);
protected:

Back to the top of ReferenceFrame


Ancestors

Class does not inherit from any other class.

Back to the top of ReferenceFrame


Descendants

Class is not inherited by any others.

Back to the top of ReferenceFrame


Generated from source by the Cocoon utilities on Sun Nov 15 13:35:26 2009 .

Report problems to jkotula@unimax.com