Abstract base class for all rigid bodies. More...
#include <rigidbody.h>
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< Group > | getSeparateGroup () |
boost::shared_ptr< Group > | getTopLevelGroup () |
![]() | |
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 () |
![]() | |
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 () |
![]() | |
void | setEnable (bool enable) |
bool | getEnable () |
void | setBoundingBox (bool bbox) |
bool | getBoundingBox () |
void | setName (const std::string &name_) |
std::string | getName () |
boost::shared_ptr< Group > | getSeparateGroup () |
boost::shared_ptr< Group > | getTopLevelGroup () |
boost::weak_ptr< Group > | getParent () |
H5::GroupBase * | getHDF5Group () |
std::string | getID () const |
void | setID (std::string ID_) |
bool | getSelected () const |
void | setSelected (bool selected_) |
![]() | |
Atom & | operator= (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 () |
![]() | |
void | terminate () |
![]() | |
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 |
![]() | |
double | minimalColorValue |
double | maximalColorValue |
double | dynamicColor |
std::vector< double > | diffuseColor |
double | transparency |
![]() | |
std::string | outLineStr |
std::string | shilouetteEdgeStr |
DrawStyle | drawMethod |
boost::shared_ptr< Body > | hdf5LinkBody |
std::string | hdf5LinkStr |
![]() | |
std::string | name |
std::string | enableStr |
std::string | boundingBoxStr |
std::string | ID |
bool | selected |
boost::weak_ptr< Group > | parent |
H5::GroupBase * | hdf5Group |
Friends | |
class | CompoundRigidBody |
Additional Inherited Members | |
![]() | |
enum | DrawStyle { filled, lines, points } |
![]() | |
enum | MsgType |
![]() | |
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::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) |
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 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 std::vector< double > | toVector (std::string str) |
static std::vector < std::vector< double > > | toMatrix (std::string str) |
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.
The fixed translation from system R to system L is given by the vector initialTranslation which coordinates are given in system R.
The fixed rotation between the systems R and L is given by the vector initialRotation which are the kardan angles of the transformation matrix
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 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 which are the kardan angles of the transformation matrix
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, ,
,
,
,
,
, color
|
inline |
Append a data vector the the h5 datsset
|
virtual |
Returns the full name (path) of the object
Reimplemented from OpenMBV::Object.
|
inlinevirtual |
Get row number i of the default data. NOTE: see also append()
Implements OpenMBV::Body.
|
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.
|
virtual |
Initializes the time invariant part of the object using a XML node
Reimplemented from OpenMBV::DynamicColoredBody.
Reimplemented in OpenMBV::Extrusion, OpenMBV::Frustum, OpenMBV::Rotation, OpenMBV::Grid, OpenMBV::CompoundRigidBody, OpenMBV::Cuboid, OpenMBV::Frame, OpenMBV::IvBody, OpenMBV::Cube, OpenMBV::Sphere, and OpenMBV::InvisibleBody.
|
inline |
Draw dragger of this object in the viewer if true (default: false)
|
inline |
Set initial rotation between the local frame of the body and the reference frame. Use cardan angles to represent the transformation matrix
|
inline |
Set initial rotation between the local frame of the body and the reference frame. Use cardan angles to represent the transformation matrix
|
inline |
Set initial translaton between the local frame of the body and the reference frame
|
inline |
Set initial translaton between the local frame of the body and the reference frame
|
inline |
Draw local frame of this object in the viewer if true (the default)
|
inline |
Draw path of this object in the viewer if true (the default)
|
inline |
Draw reference frame of this object in the viewer if true (the default)
|
inline |
Set the scale factor of the body