20 #ifndef _OPENMBV_COMPOUNDRIGIDBODY_H_
21 #define _OPENMBV_COMPOUNDRIGIDBODY_H_
23 #include <openmbvcppinterface/rigidbody.h>
31 ,
public std::enable_shared_from_this<CompoundRigidBody>
37 std::string expandStr;
38 std::vector<std::shared_ptr<RigidBody> > rigidBody;
49 if(rigidBody_->name==
"")
throw std::runtime_error(
"the object to be added must have a name");
50 for(
unsigned int i=0; i<rigidBody.size(); i++)
51 if(rigidBody[i]->name==rigidBody_->name)
throw std::runtime_error(
"a object of the same name already exists");
52 rigidBody.push_back(rigidBody_);
53 rigidBody_->parent.reset();
54 rigidBody_->compound=shared_from_this();
57 std::vector<std::shared_ptr<RigidBody> >& getRigidBodies() {
64 xercesc::DOMElement* writeXMLFile(xercesc::DOMNode *parent);
67 void setExpand(
bool expand) { expandStr=(expand==
true)?
"true":
"false"; }
69 bool getExpand() {
return expandStr==
"true"?
true:
false; }
void addRigidBody(std::shared_ptr< RigidBody > rigidBody_)
Definition: compoundrigidbody.h:48
Abstract base class for all rigid bodies.
Definition: rigidbody.h:69
Definition: objectfactory.h:36
virtual void initializeUsingXML(xercesc::DOMElement *element)
Definition: compoundrigidbody.cc:48
void setExpand(bool expand)
Definition: compoundrigidbody.h:67
std::string getClassName()
Definition: compoundrigidbody.h:45
Definition: compoundrigidbody.h:29