libgenua
Basic Geometry, Numerical Algorithms and Interfaces
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Groups Pages
Public Member Functions | Protected Attributes | List of all members
RFrame Class Referenceabstract

Detailed Description

Reference Frame.

Every geometric entity inherits its own local reference frame which provides methods to translate and rotate the body with respect to a global reference. All transformation operations modify the reference frame. When multiple rotations are specified, they will be performed in axes order, i.e. (1.) Rotation about x-Axis, (2) about y-Axis, (3) about z-Axis.

An object which inherits from RFrame must provide a method

  void apply();

which implements the homogeneous transform for the objects using the protected 4x4 transformation matrix 'mat'. A example transformation sequence would look like:

  Surface surf;
  [...]
  surf.scale(3.0);
  surf.rotate(0.2, 0, 0);
  surf.translate(3.0, 4.0, -2.5);
  surf.apply();

#include <trafo.h>

Inheritance diagram for RFrame:
[legend]
Collaboration diagram for RFrame:
[legend]

Public Member Functions

 RFrame ()
 default construction
 
virtual ~RFrame ()
 virtual destructor
 
virtual void apply ()=0
 this method must be provided by childs
 
void clear ()
 apply should finally call this method to clear transformation matrix
 
Vct3 getOrigin () const
 return the position of the current frame relative to global origin
 
void translate (const Vct3 &v)
 move reference frame by translation vector
 
void translate (Real dx, Real dy, Real dz)
 move reference by (dx,dy,dz)
 
void rotate (Real betax, Real betay, Real betaz)
 rotate by (betax, bety, betaz) around origin axis
 
void rotate (const Vct3 &rotax, Real angle)
 rotate by angle around axis
 
void scale (Real xf, Real yf, Real zf)
 scales in three dimensions by the factors given
 
void scale (Real f)
 scale in all directions
 
void mirror (const Vct3 &normal)
 mirror about plane - parameter is mirror plane normal
 
const SMatrix< 4, 4 > & trafoMatrix () const
 return transformation matrix
 
void setTrafoMatrix (const SMatrix< 4, 4 > &m)
 set transformation matrix
 
Vct3 forward (const Vct3 &a) const
 coordinate-transform vector
 
void forward (const PointList< 4 > &a, PointList< 4 > &b) const
 coordinate-transform vector backwards
 

Protected Attributes

SMatrix< 4, 4 > mat
 transformation matrix
 

The documentation for this class was generated from the following files: