7#ifndef DYNAMICS3D_MULTI_BODY_OBJECT_MODEL_H
8#define DYNAMICS3D_MULTI_BODY_OBJECT_MODEL_H
14#include <argos3/plugins/simulator/physics_engines/dynamics3d/dynamics3d_model.h>
17#pragma clang diagnostic push
18#pragma clang diagnostic ignored "-Wreorder"
20#pragma GCC diagnostic push
21#pragma GCC diagnostic ignored "-Wreorder"
24#include <argos3/plugins/simulator/physics_engines/dynamics3d/bullet/BulletDynamics/Featherstone/btMultiBody.h>
25#include <argos3/plugins/simulator/physics_engines/dynamics3d/bullet/BulletDynamics/Featherstone/btMultiBodyLink.h>
26#include <argos3/plugins/simulator/physics_engines/dynamics3d/bullet/BulletDynamics/Featherstone/btMultiBodyLinkCollider.h>
29#pragma clang diagnostic pop
31#pragma GCC diagnostic pop
47 const std::shared_ptr<btCollisionShape>& ptr_shape,
54 virtual void AddToWorld(btMultiBodyDynamicsWorld& c_world);
58 virtual void ApplyForce(
const btVector3& c_force);
60 virtual void ApplyForce(
const btVector3& c_force,
61 const btVector3& c_offset);
63 virtual void ApplyTorque(
const btVector3& c_torque);
82 const std::shared_ptr<btCollisionShape>& ptr_shape,
89 virtual void ApplyForce(
const btVector3& c_force);
91 virtual void ApplyForce(
const btVector3& c_force,
92 const btVector3& c_offset);
94 virtual void ApplyTorque(
const btVector3& c_torque);
104 virtual void Reset();
111 virtual void AddToWorld(btMultiBodyDynamicsWorld& c_world);
unsigned int UInt32
32-bit unsigned integer.
The namespace containing all the ARGoS related code.
Basic class for an entity that contains other entities.
An anchor related to the body of an entity.
CDynamics3DModel(CDynamics3DEngine &c_engine, CComposableEntity &c_entity)
CAbstractBody(CDynamics3DModel &c_model, SAnchor *ps_anchor, const std::shared_ptr< btCollisionShape > &ptr_shape, const SData &s_data)
virtual void UpdateOriginAnchor(SAnchor &s_anchor)
virtual void RemoveFromWorld(btMultiBodyDynamicsWorld &c_world)
virtual ~CDynamics3DMultiBodyObjectModel()
btMultiBody & GetMultiBody()
virtual void CalculateBoundingBox()
Calculates the axis-aligned box that contains the entire physics model.
virtual void AddToWorld(btMultiBodyDynamicsWorld &c_world)
virtual void MoveTo(const CVector3 &c_position, const CQuaternion &c_orientation)
CDynamics3DMultiBodyObjectModel(CDynamics3DEngine &c_engine, CComposableEntity &c_entity, UInt32 un_num_links, bool b_fixed_base)
virtual void ApplyForce(const btVector3 &c_force)
virtual void ApplyTorque(const btVector3 &c_torque)
CDynamics3DMultiBodyObjectModel & m_cModel
CLink(CDynamics3DMultiBodyObjectModel &c_model, UInt32 un_link_index, SAnchor *ps_anchor, const std::shared_ptr< btCollisionShape > &ptr_shape, const SData &s_data)
virtual btTransform & GetTransform()
virtual void RemoveFromWorld(btMultiBodyDynamicsWorld &c_world)
virtual void AddToWorld(btMultiBodyDynamicsWorld &c_world)
btMultiBodyLinkCollider m_cMultiBodyLink
CBase(CDynamics3DMultiBodyObjectModel &c_model, SAnchor *ps_anchor, const std::shared_ptr< btCollisionShape > &ptr_shape, const SData &s_data)
virtual void ApplyTorque(const btVector3 &c_torque)
virtual void ApplyForce(const btVector3 &c_force)