Documentation


Bases and frames


Detailed Description

Generic operations on bases and frames: projections, inversions, orientation.

A basis is typically a square matrix. A default class Frame is provided, but you can use your classes also thanks to genericity. You may have to specialize the methods for your types.


Classes

struct  Frame
 Origin and basis of a local frame (coordinate system) with respect to a reference frame (coordinate system). More...


Functions

template<class Vec1, class Basis, class Vec2> void animal::v_eq_project_vec (Vec1 &v, const Basis &b, const Vec2 &a)
 Project vector a from basis b to another base.

template<class Basis1, class Basis2> void animal::b_eq_inverse (Basis1 &b, const Basis2 &a)
 Compute inverse of basis a and stores it in b.

template<class Basis, class Real> void animal::b_eq_eulerX (Basis &b, Real a)
 Define a basis as a given rigid rotation defined by one Euler angle a around axis i.

template<class Basis, class Real> void animal::b_eq_eulerY (Basis &b, Real a)
 Define a basis as a given rigid rotation defined by one Euler angle a around axis j.

template<class Basis, class Real> void animal::b_eq_eulerZ (Basis &b, Real a)
 Define a basis as a given rigid rotation defined by one Euler angle a around axis k.

template<class Basis, class Real> void animal::b_eq_eulerXYZ (Basis &b, Real a, Real b, Real c)
 Define a basis as a given rigid rotation defined by Euler angles around axes i then j then k.

template<class Vec1, class Frame, class Vec2> void animal::v_eq_project_point (Vec1 &v, const Frame &f, const Vec2 &a)
template<class Frame> void animal::f_eq_inverse (Frame &f, const Frame &a)
template<class Basis, class Vec> const Vec & animal::get_translation (const Frame< Basis, Vec > &f)
 Read-only reference to the translation of a frame.

template<class Basis, class Vec> Vec & animal::set_translation (Frame< Basis, Vec > &f)
 Read-write reference to the translation of a frame.

template<class Basis, class Vec> const Basis & animal::get_basis (const Frame< Basis, Vec > &f)
 Read-only reference to the basis of a frame.

template<class Basis, class Vec> Basis & animal::set_basis (Frame< Basis, Vec > &f)
 Read-write reference to the basis of a frame.


Function Documentation

template<class Basis, class Real>
void animal::b_eq_eulerX Basis &  b,
Real  a
 

Define a basis as a given rigid rotation defined by one Euler angle a around axis i.

Definition at line 33 of file basicFrames.inl.

Referenced by animal::b_eq_eulerXYZ().

template<class Basis, class Real>
void animal::b_eq_eulerXYZ Basis &  b,
Real  a,
Real  b,
Real  c
 

Define a basis as a given rigid rotation defined by Euler angles around axes i then j then k.

The matrix is equal to the matrix product MxMyMz where matrix Mx is the rotation of angle a around axis i, matrix My is the rotation of angle b around axis j, matrix Mz is the rotation of angle c around axis k.

Definition at line 83 of file basicFrames.inl.

References animal::b_eq_eulerX(), animal::b_eq_eulerY(), animal::b_eq_eulerZ(), and animal::m_eq_AB().

template<class Basis, class Real>
void animal::b_eq_eulerY Basis &  b,
Real  a
 

Define a basis as a given rigid rotation defined by one Euler angle a around axis j.

Definition at line 49 of file basicFrames.inl.

Referenced by animal::b_eq_eulerXYZ().

template<class Basis, class Real>
void animal::b_eq_eulerZ Basis &  b,
Real  a
 

Define a basis as a given rigid rotation defined by one Euler angle a around axis k.

Definition at line 65 of file basicFrames.inl.

Referenced by animal::b_eq_eulerXYZ().

template<class Basis1, class Basis2>
void animal::b_eq_inverse Basis1 &  b,
const Basis2 &  a
 

Compute inverse of basis a and stores it in b.

Basis b can then be used to project vectors to basis a.

Precondition:
{ a must not be singular }

Definition at line 25 of file basicFrames.inl.

References animal::m_eq_luinv().

Referenced by animal::f_eq_inverse().

template<class Frame>
void animal::f_eq_inverse Frame f,
const Frame a
 

Definition at line 134 of file basicFrames.inl.

References animal::b_eq_inverse(), animal::get_basis(), animal::get_translation(), animal::set_basis(), animal::set_translation(), animal::v_eq_Ab(), and animal::v_teq().

template<class Basis, class Vec>
const Basis & animal::get_basis const Frame< Basis, Vec > &  f  ) 
 

Read-only reference to the basis of a frame.

Definition at line 179 of file basicFrames.inl.

Referenced by animal::f_eq_inverse(), and animal::v_eq_project_point().

template<class Basis, class Vec>
const Vec & animal::get_translation const Frame< Basis, Vec > &  f  ) 
 

Read-only reference to the translation of a frame.

Definition at line 169 of file basicFrames.inl.

Referenced by animal::f_eq_inverse(), and animal::v_eq_project_point().

template<class Basis, class Vec>
Basis & animal::set_basis Frame< Basis, Vec > &  f  ) 
 

Read-write reference to the basis of a frame.

Definition at line 184 of file basicFrames.inl.

Referenced by animal::f_eq_inverse().

template<class Basis, class Vec>
Vec & animal::set_translation Frame< Basis, Vec > &  f  ) 
 

Read-write reference to the translation of a frame.

Definition at line 174 of file basicFrames.inl.

Referenced by animal::f_eq_inverse().

template<class Vec1, class Frame, class Vec2>
void animal::v_eq_project_point Vec1 &  v,
const Frame f,
const Vec2 &  a
 

Definition at line 122 of file basicFrames.inl.

References animal::get_basis(), animal::get_translation(), animal::v_eq_Ab(), and animal::v_peq().

template<class Vec1, class Basis, class Vec2>
void animal::v_eq_project_vec Vec1 &  v,
const Basis &  b,
const Vec2 &  a
 

Project vector a from basis b to another base.

b (typically a matrix defines the basis of vector a with respect to the other base.

Definition at line 16 of file basicFrames.inl.

References animal::v_eq_Ab().


Generated on Thu Dec 23 13:52:29 2004 by doxygen 1.3.6