27 const btTransform& cTransform = btTransform(
28 btQuaternion(c_orientation.
GetX(),
30 -c_orientation.
GetY(),
31 c_orientation.
GetW()),
32 btVector3(c_position.
GetX(),
37 cTransform *
m_vecBodies[0]->GetData().InverseCenterOfMassOffset;
56 btCollisionShape& cShape = pcBody->
GetShape();
60 cShape.getAabb(pcBody->
GetTransform(), cAabbMin, cAabbMax);
84 btRigidBody::btRigidBodyConstructionInfo cInfo(m_sData.Mass,
88 cInfo.m_friction = m_sData.Friction;
89 cInfo.m_startWorldTransform = m_sData.StartTransform *
90 m_sData.InverseCenterOfMassOffset;
103 std::shared_ptr<btCollisionShape>& ptr_shape,
104 const SData& s_data) :
105 CAbstractBody(c_model, s_anchor, ptr_shape, s_data),
106 m_cRigidBody(0.0f, nullptr, nullptr) {}
112 c_world.addRigidBody(&m_cRigidBody);
119 c_world.removeRigidBody(&m_cRigidBody);
126 m_cRigidBody.applyCentralForce(c_force);
133 const btVector3& c_offset) {
134 m_cRigidBody.applyForce(c_force, c_offset);
141 m_cRigidBody.applyTorque(c_torque);
148 return m_cRigidBody.getWorldTransform();
virtual btTransform & GetTransform()=0
virtual void ApplyForce(const btVector3 &c_force)
Real GetX() const
Returns the x coordinate of this vector.
CBody(CDynamics3DModel &c_model, SAnchor &s_anchor, std::shared_ptr< btCollisionShape > &ptr_shape, const SData &s_data)
virtual btTransform & GetTransform()
Real GetY() const
Returns the y coordinate of this vector.
virtual void MoveTo(const CVector3 &c_position, const CQuaternion &c_orientation)
std::vector< CAbstractBody * > m_vecBodies
virtual void AddToWorld(btMultiBodyDynamicsWorld &c_world)
void Set(const Real f_x, const Real f_y, const Real f_z)
Sets the vector contents from Cartesian coordinates.
Basic class for an entity that contains other entities.
virtual void CalculateBoundingBox()
Calculates the axis-aligned box that contains the entire physics model.
virtual void RemoveFromWorld(btMultiBodyDynamicsWorld &c_world)
An anchor related to the body of an entity.
virtual void RemoveFromWorld(btMultiBodyDynamicsWorld &c_world)
CDynamics3DSingleBodyObjectModel(CDynamics3DEngine &c_engine, CComposableEntity &c_entity)
btCollisionShape & GetShape()
virtual void AddToWorld(btMultiBodyDynamicsWorld &c_world)
const SBoundingBox & GetBoundingBox() const
Returns an axis-aligned box that contains the physics model.
virtual void UpdateEntityStatus()
Updates the status of the associated entity.
virtual void ApplyTorque(const btVector3 &c_torque)
The namespace containing all the ARGoS related code.
Real GetZ() const
Returns the z coordinate of this vector.