openmbvcppinterface 3.1.0 OpenMBV C++ Interface

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:
[legend]

## 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 () override
std::vector< double > | getRow (int i) override
void | initializeUsingXML (xercesc::DOMElement *element) override
xercesc::DOMElement * | writeXMLFile (xercesc::DOMNode *parent) override
std::string | getFullName () override
std::shared_ptr< Group > | getTopLevelGroup ()
std::weak_ptr< CompoundRigidBody > | getCompound ()
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
void | setOutLine (bool ol)
bool | getOutLine ()
void | setShilouetteEdge (bool ol)
bool | getShilouetteEdge ()
void | setDrawMethod (DrawStyle ds)
DrawStyle | getDrawMethod ()
void | setPointSize (double ps)
double | getPointSize ()
void | setLineWidth (double lw)
double | getLineWidth ()
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 ()
void | setEnvironment (bool env)
bool | getEnvironment ()
std::shared_ptr< Group > | getTopLevelGroup ()
std::weak_ptr< Group > | getParent ()
H5::GroupBase * | getHDF5Group ()
std::string | getID () const
void | setID (std::string ID_)

## Protected Member Functions

void | createHDF5File () override
void | openHDF5File () override

## Protected Attributes

std::string | localFrameStr
std::string | referenceFrameStr
std::string | pathStr
std::string | draggerStr
std::vector< double > | initialTranslation {3}
std::vector< double > | initialRotation {3}
double | scaleFactor {1}
H5::VectorSerie< double > * | data {nullptr}
std::weak_ptr< CompoundRigidBody > | compound
Protected Attributes inherited from OpenMBV::DynamicColoredBody
double | minimalColorValue {0}
double | maximalColorValue {1}
double | dynamicColor
std::vector< double > | diffuseColor
double | transparency {0}
Protected Attributes inherited from OpenMBV::Body
std::string | outLineStr
std::string | shilouetteEdgeStr
DrawStyle | drawMethod {filled}
double | pointSize {0}
double | lineWidth {0}
Protected Attributes inherited from OpenMBV::Object
std::string | name
std::string | enableStr
std::string | boundingBoxStr
std::string | ID
std::string | environmentStr
std::weak_ptr< Group > | parent
H5::GroupBase * | hdf5Group {nullptr}
std::string | fullName

## Friends

class | CompoundRigidBody

## Additional Inherited Members

Public Types inherited from OpenMBV::Body
enum | DrawStyle { filled, lines, points }

## 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.

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

## ◆ append()

template<typename T >

void OpenMBV::RigidBody::append | ( | const T & | row | ) |

inline

Append a data vector the the h5 datsset

## ◆ getFullName()

string OpenMBV::RigidBody::getFullName | ( |  | ) |

override virtual

Returns the full name (path) of the object

Reimplemented from OpenMBV::Object.

## ◆ getRow()

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

inline override virtual

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

Implements OpenMBV::Body.

## ◆ getRows()

int OpenMBV::RigidBody::getRows | ( |  | ) |

inline override virtual

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

Implements OpenMBV::Body.

## ◆ initializeUsingXML()

void OpenMBV::RigidBody::initializeUsingXML | ( | xercesc::DOMElement * | element | ) |

override virtual

Initializes the time invariant part of the object using a XML node

Reimplemented from OpenMBV::DynamicColoredBody.

Reimplemented in OpenMBV::Rotation, and OpenMBV::Sphere.

## ◆ setDragger()

void OpenMBV::RigidBody::setDragger | ( | bool | p | ) |

inline

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

## ◆ setInitialRotation() [1/2]

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

## ◆ setInitialRotation() [2/2]

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

## ◆ setInitialTranslation() [1/2]

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

inline

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

## ◆ setInitialTranslation() [2/2]

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

## ◆ setLocalFrame()

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

inline

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

## ◆ setPath()

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

inline

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

## ◆ setReferenceFrame()

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

inline

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

## ◆ setScaleFactor()

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:

- /mbsim-env/openmbv/openmbvcppinterface/openmbvcppinterface/rigidbody.h
- /mbsim-env/openmbv/openmbvcppinterface/openmbvcppinterface/rigidbody.cc