All Classes Namespaces Functions Variables Typedefs Enumerations Pages
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
OpenMBV::RigidBody Class Reference

Abstract base class for all rigid bodies. More...

#include <rigidbody.h>

Inheritance diagram for OpenMBV::RigidBody:
OpenMBV::DynamicColoredBody OpenMBV::Body OpenMBV::Object fmatvec::Atom OpenMBV::CompoundRigidBody OpenMBV::Cube OpenMBV::Cuboid OpenMBV::Extrusion OpenMBV::Frame OpenMBV::Frustum OpenMBV::Grid OpenMBV::IndexedFaceSet OpenMBV::InvisibleBody OpenMBV::IvBody OpenMBV::Rotation OpenMBV::Sphere

Public Member Functions

void setLocalFrame (bool f)
 
bool getLocalFrame ()
 
void setReferenceFrame (bool f)
 
bool getReferenceFrame ()
 
void setPath (bool p)
 
bool getPath ()
 
void setDragger (bool p)
 
bool getDragger ()
 
void setInitialTranslation (const std::vector< double > &initTrans)
 
std::vector< double > getInitialTranslation ()
 
void setInitialTranslation (double x, double y, double z)
 
void setInitialRotation (const std::vector< double > &initRot)
 
std::vector< double > getInitialRotation ()
 
void setInitialRotation (double a, double b, double g)
 
void setScaleFactor (double scale)
 
double getScaleFactor ()
 
template<typename T >
void append (const T &row)
 
int getRows ()
 
std::vector< double > getRow (int i)
 
virtual void initializeUsingXML (xercesc::DOMElement *element)
 
xercesc::DOMElement * writeXMLFile (xercesc::DOMNode *parent)
 
virtual std::string getFullName (bool includingFileName=false, bool stopAtSeparateFile=false)
 
boost::shared_ptr< GroupgetSeparateGroup ()
 
boost::shared_ptr< GroupgetTopLevelGroup ()
 
- Public Member Functions inherited from OpenMBV::DynamicColoredBody
void setMinimalColorValue (double min)
 
double getMinimalColorValue ()
 
void setMaximalColorValue (double max)
 
double getMaximalColorValue ()
 
void setDynamicColor (const double col)
 
double getDynamicColor ()
 
void setDiffuseColor (const std::vector< double > &hsv)
 
void setDiffuseColor (double h, double s, double v)
 
std::vector< double > getDiffuseColor ()
 
void setTransparency (double t)
 
double getTransparency ()
 
- Public Member Functions inherited from OpenMBV::Body
std::string getClassName ()
 
void setHDF5LinkTarget (const boost::shared_ptr< Body > &dest)
 
boost::shared_ptr< Body > & getHDF5LinkTarget ()
 
bool isHDF5Link ()
 
void setOutLine (bool ol)
 
bool getOutLine ()
 
void setShilouetteEdge (bool ol)
 
bool getShilouetteEdge ()
 
void setDrawMethod (DrawStyle ds)
 
DrawStyle getDrawMethod ()
 
- Public Member Functions inherited from OpenMBV::Object
void setEnable (bool enable)
 
bool getEnable ()
 
void setBoundingBox (bool bbox)
 
bool getBoundingBox ()
 
void setName (const std::string &name_)
 
std::string getName ()
 
boost::shared_ptr< GroupgetSeparateGroup ()
 
boost::shared_ptr< GroupgetTopLevelGroup ()
 
boost::weak_ptr< GroupgetParent ()
 
H5::GroupBasegetHDF5Group ()
 
std::string getID () const
 
void setID (std::string ID_)
 
bool getSelected () const
 
void setSelected (bool selected_)
 
- Public Member Functions inherited from fmatvec::Atom
Atomoperator= (const Atom &)
 
void setMessageStreamActive (MsgType type, bool active)
 
void getMessageStream (MsgType type, boost::shared_ptr< bool > &a, boost::shared_ptr< std::ostream > &s)
 
void adoptMessageStreams (const Atom *src=NULL)
 
std::ostream & msg (MsgType type)
 
bool msgAct (MsgType type)
 

Protected Member Functions

void createHDF5File ()
 
void openHDF5File ()
 
- Protected Member Functions inherited from OpenMBV::Body
void terminate ()
 
- Protected Member Functions inherited from fmatvec::Atom
 Atom (const Atom &src)
 

Protected Attributes

std::string localFrameStr
 
std::string referenceFrameStr
 
std::string pathStr
 
std::string draggerStr
 
std::vector< double > initialTranslation
 
std::vector< double > initialRotation
 
double scaleFactor
 
H5::VectorSerie< double > * data
 
boost::weak_ptr
< CompoundRigidBody
compound
 
- Protected Attributes inherited from OpenMBV::DynamicColoredBody
double minimalColorValue
 
double maximalColorValue
 
double dynamicColor
 
std::vector< double > diffuseColor
 
double transparency
 
- Protected Attributes inherited from OpenMBV::Body
std::string outLineStr
 
std::string shilouetteEdgeStr
 
DrawStyle drawMethod
 
boost::shared_ptr< Bodyhdf5LinkBody
 
std::string hdf5LinkStr
 
- Protected Attributes inherited from OpenMBV::Object
std::string name
 
std::string enableStr
 
std::string boundingBoxStr
 
std::string ID
 
bool selected
 
boost::weak_ptr< Groupparent
 
H5::GroupBasehdf5Group
 

Friends

class CompoundRigidBody
 

Additional Inherited Members

- Public Types inherited from OpenMBV::Body
enum  DrawStyle { filled, lines, points }
 
- Public Types inherited from fmatvec::Atom
enum  MsgType
 
- Static Public Member Functions inherited from OpenMBV::Object
static double getDouble (xercesc::DOMElement *e)
 
static std::vector< double > getVec (xercesc::DOMElement *e, unsigned int rows=0)
 
static std::vector
< std::vector< double > > 
getMat (xercesc::DOMElement *e, unsigned int rows=0, unsigned int cols=0)
 
static std::vector< int > getIntVec (xercesc::DOMElement *e, unsigned int rows=0)
 
static std::string numtostr (int i)
 
static std::string numtostr (double d)
 
template<class T >
static void addElementText (xercesc::DOMElement *parent, const MBXMLUtils::FQN &name, const T &value)
 
static void addElementText (xercesc::DOMElement *parent, const MBXMLUtils::FQN &name, double value, double def)
 
static void addElementText (xercesc::DOMElement *parent, const MBXMLUtils::FQN &name, const std::vector< double > &value)
 
static void addElementText (xercesc::DOMElement *parent, const MBXMLUtils::FQN &name, const std::vector< std::vector< double > > &value)
 
static void addElementText (xercesc::DOMElement *parent, const MBXMLUtils::FQN &name, const std::vector< int > &value)
 
template<class T >
static void addAttribute (xercesc::DOMNode *node, std::string name, T value)
 
template<class T >
static void addAttribute (xercesc::DOMNode *node, std::string name, T value, std::string def)
 
- Static Public Member Functions inherited from fmatvec::Atom
static void setCurrentMessageStream (MsgType type, const boost::shared_ptr< bool > &a=boost::make_shared< bool >(true), const boost::shared_ptr< std::ostream > &s=boost::make_shared< std::ostream >(std::cout.rdbuf()))
 
static std::ostream & msgStatic (MsgType type)
 
static bool msgActStatic (MsgType type)
 
- Static Protected Member Functions inherited from OpenMBV::Object
static std::vector< double > toVector (std::string str)
 
static std::vector
< std::vector< double > > 
toMatrix (std::string str)
 
static std::vector< int > toIntVector (std::string str)
 
static std::vector
< std::vector< int > > 
toIntMatrix (std::string str)
 

Detailed Description

Abstract base class for all rigid bodies.

Each rigid body has a body fixed local coordinate system L and a reference coordinate system R which has a fixed relative position and rotation with respect to L (see figure). And there is a inertial fixed world coordinate system W.

rigidbodycos.png
Coordinate Systems of Rigid Body

The fixed translation from system R to system L is given by the vector initialTranslation $[_R x_B, _R y_B, _R z_B]^T$ which coordinates are given in system R.

The fixed rotation between the systems R and L is given by the vector initialRotation $[\alpha_B, \beta_B, \gamma_B]^T$ which are the kardan angles of the transformation matrix

\[ A_{RL}= \textrm{cardan}(\alpha_B, \beta_B, \gamma_B) \]

from system L to system R.

The time dependend translation between the systems W and R is given in the HDF5 dataset by the vector $ [_W x_P, _W y_P, _W z_P]^T=_W r_P $ which coordinates are given in system W.

The time dependend rotation between the systems W and R is given in the HDF5 dataset by the vector $ [\alpha_P, \beta_P, \gamma_P] $ which are the kardan angles of the transformation matrix

\[ A_{WR}= \textrm{cardan}(\alpha_P, \beta_P, \gamma_P) \]

from system R to system W.

HDF5-Dataset: The HDF5 dataset of this object is a 2D array of double precision values. Each row represents one dataset in time. A row consists of the following columns in order: time, $ _W x_P $, $ _W y_P $, $ _W z_P $, $ \alpha_P $, $ \beta_P $, $ \gamma_P $, color

Member Function Documentation

template<typename T >
void OpenMBV::RigidBody::append ( const T &  row)
inline

Append a data vector the the h5 datsset

string OpenMBV::RigidBody::getFullName ( bool  includingFileName = false,
bool  stopAtSeparateFile = false 
)
virtual

Returns the full name (path) of the object

Reimplemented from OpenMBV::Object.

std::vector<double> OpenMBV::RigidBody::getRow ( int  i)
inlinevirtual

Get row number i of the default data. NOTE: see also append()

Implements OpenMBV::Body.

int OpenMBV::RigidBody::getRows ( )
inlinevirtual

Get the number of rows of the default data. Returns -1, if no default data is avaliable. NOTE: see also append()

Implements OpenMBV::Body.

void OpenMBV::RigidBody::initializeUsingXML ( xercesc::DOMElement *  element)
virtual
void OpenMBV::RigidBody::setDragger ( bool  p)
inline

Draw dragger of this object in the viewer if true (default: false)

void OpenMBV::RigidBody::setInitialRotation ( const std::vector< double > &  initRot)
inline

Set initial rotation between the local frame of the body and the reference frame. Use cardan angles to represent the transformation matrix

void OpenMBV::RigidBody::setInitialRotation ( double  a,
double  b,
double  g 
)
inline

Set initial rotation between the local frame of the body and the reference frame. Use cardan angles to represent the transformation matrix

void OpenMBV::RigidBody::setInitialTranslation ( const std::vector< double > &  initTrans)
inline

Set initial translaton between the local frame of the body and the reference frame

void OpenMBV::RigidBody::setInitialTranslation ( double  x,
double  y,
double  z 
)
inline

Set initial translaton between the local frame of the body and the reference frame

void OpenMBV::RigidBody::setLocalFrame ( bool  f)
inline

Draw local frame of this object in the viewer if true (the default)

void OpenMBV::RigidBody::setPath ( bool  p)
inline

Draw path of this object in the viewer if true (the default)

void OpenMBV::RigidBody::setReferenceFrame ( bool  f)
inline

Draw reference frame of this object in the viewer if true (the default)

void OpenMBV::RigidBody::setScaleFactor ( double  scale)
inline

Set the scale factor of the body


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

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML