argos::CDynamics3DMultiBodyObjectModel Class Reference

#include <dynamics3d_multi_body_object_model.h>

Inheritance diagram for argos::CDynamics3DMultiBodyObjectModel:
Collaboration diagram for argos::CDynamics3DMultiBodyObjectModel:


class  CBase
class  CLink

Public Member Functions

 CDynamics3DMultiBodyObjectModel (CDynamics3DEngine &c_engine, CComposableEntity &c_entity, UInt32 un_num_links, bool b_fixed_base)
virtual ~CDynamics3DMultiBodyObjectModel ()
virtual void Reset ()
virtual void MoveTo (const CVector3 &c_position, const CQuaternion &c_orientation)
virtual void CalculateBoundingBox ()
 Calculates the axis-aligned box that contains the entire physics model. More...
virtual void AddToWorld (btMultiBodyDynamicsWorld &c_world)
virtual void RemoveFromWorld (btMultiBodyDynamicsWorld &c_world)
btMultiBody & GetMultiBody ()
virtual void UpdateOriginAnchor (SAnchor &s_anchor)
- Public Member Functions inherited from argos::CDynamics3DModel
 CDynamics3DModel (CDynamics3DEngine &c_engine, CComposableEntity &c_entity)
virtual ~CDynamics3DModel ()
CDynamics3DEngineGetEngine ()
const CDynamics3DEngineGetEngine () const
CComposableEntityGetComposableEntity ()
const CComposableEntityGetComposableEntity () const
virtual bool IsCollidingWithSomething () const
 Returns true if this model is colliding with another model. More...
virtual void UpdateEntityStatus ()
 Updates the status of the associated entity. More...
virtual void UpdateFromEntityStatus ()
 Updates the state of this model from the status of the associated entity. More...
std::vector< CAbstractBody * > & GetBodies ()
- Public Member Functions inherited from argos::CPhysicsModel
 CPhysicsModel (CPhysicsEngine &c_engine, CEmbodiedEntity &c_entity)
virtual ~CPhysicsModel ()
CPhysicsEngineGetEngine ()
 Returns the physics engine associated to this physics model. More...
CEmbodiedEntityGetEmbodiedEntity ()
 Returns the embodied entity associated to this physics model. More...
const CEmbodiedEntityGetEmbodiedEntity () const
 Returns the embodied entity associated to this physics model. More...
const SBoundingBoxGetBoundingBox () const
 Returns an axis-aligned box that contains the physics model. More...
virtual void CalculateAnchors ()
 Calculates the anchors associated to this model. More...
SBoundingBoxGetBoundingBox ()
 Returns an axis-aligned box that contains the physics model. More...
template<typename MODEL >
void RegisterAnchorMethod (const SAnchor &s_anchor, void(MODEL::*pt_method)(SAnchor &))
 Registers an anchor method. More...

Protected Attributes

btMultiBody m_cMultiBody
UInt32 m_unNumLinks
bool m_bFixedBase
- Protected Attributes inherited from argos::CDynamics3DModel
std::vector< CAbstractBody * > m_vecBodies

Additional Inherited Members

- Public Types inherited from argos::CDynamics3DModel
typedef std::map< std::string, CDynamics3DModel * > TMap
- Public Types inherited from argos::CPhysicsModel
typedef std::map< std::string, CPhysicsModel * > TMap
typedef std::vector< CPhysicsModel * > TVector

Detailed Description

Definition at line 21 of file dynamics3d_multi_body_object_model.h.

Constructor & Destructor Documentation

argos::CDynamics3DMultiBodyObjectModel::CDynamics3DMultiBodyObjectModel ( CDynamics3DEngine c_engine,
CComposableEntity c_entity,
UInt32  un_num_links,
bool  b_fixed_base 

Definition at line 16 of file dynamics3d_multi_body_object_model.cpp.

virtual argos::CDynamics3DMultiBodyObjectModel::~CDynamics3DMultiBodyObjectModel ( )

Definition at line 87 of file dynamics3d_multi_body_object_model.h.

Member Function Documentation

void argos::CDynamics3DMultiBodyObjectModel::AddToWorld ( btMultiBodyDynamicsWorld &  c_world)
void argos::CDynamics3DMultiBodyObjectModel::CalculateBoundingBox ( )

Calculates the axis-aligned box that contains the entire physics model.

The bounding box is often called AABB.

Implements argos::CPhysicsModel.

Definition at line 78 of file dynamics3d_multi_body_object_model.cpp.

btMultiBody& argos::CDynamics3DMultiBodyObjectModel::GetMultiBody ( )

Definition at line 100 of file dynamics3d_multi_body_object_model.h.

void argos::CDynamics3DMultiBodyObjectModel::MoveTo ( const CVector3 c_position,
const CQuaternion c_orientation 

Moves the entity to the wanted position and orientation within this engine. When you create a new model, you must implement this method. Don't forget to call UpdateEntityStatus() after you've changed the position.

This method should never be called directly from user code. It is called internally by CEmbodiedEntity::MoveTo(), which is meant to be called from user code.

CEmbodiedEntity::MoveTo() never calls this method if the embodied entity is static. This is because static entities cannot be moved around. Thus, there's no need in your code to check whether the associated entity is static.

c_positionThe wanted position.
c_orientationThe wanted orientation.

Implements argos::CPhysicsModel.

Definition at line 104 of file dynamics3d_multi_body_object_model.cpp.

void argos::CDynamics3DMultiBodyObjectModel::RemoveFromWorld ( btMultiBodyDynamicsWorld &  c_world)
void argos::CDynamics3DMultiBodyObjectModel::Reset ( )
void argos::CDynamics3DMultiBodyObjectModel::UpdateOriginAnchor ( SAnchor s_anchor)

Definition at line 139 of file dynamics3d_multi_body_object_model.cpp.

Member Data Documentation

bool argos::CDynamics3DMultiBodyObjectModel::m_bFixedBase

Definition at line 110 of file dynamics3d_multi_body_object_model.h.

btMultiBody argos::CDynamics3DMultiBodyObjectModel::m_cMultiBody

Definition at line 108 of file dynamics3d_multi_body_object_model.h.

UInt32 argos::CDynamics3DMultiBodyObjectModel::m_unNumLinks

Definition at line 109 of file dynamics3d_multi_body_object_model.h.