AnimatLab  2
Test
RbRigidBody.h
1 // RbRigidBody.h: interface for the RbRigidBody class.
2 //
4 
5 #pragma once
6 
7 #include "RbMaterialType.h"
8 
9 namespace RoboticsAnimatSim
10 {
11  namespace Environment
12  {
13 
52  class ROBOTICS_PORT RbRigidBody : public RbBody
53  {
54  protected:
55  RbSimulator *m_lpRbSim;
56 
59 
60  CStdFPoint Physics_GetCurrentPosition();
61 
62  public:
63  RbRigidBody();
64  virtual ~RbRigidBody();
65 
66  RbMaterialType *Material() {return m_lpMaterial;};
67 
68  virtual RbSimulator *GetRbSimulator();
69 
70  virtual void Initialize() {};
71  virtual bool Physics_IsDefined();
72  virtual bool Physics_IsGeometryDefined();
73  virtual void Physics_ResetSimulation();
74  virtual void Physics_EnableCollision(RigidBody *lpBody);
75  virtual void Physics_DisableCollision(RigidBody *lpBody);
76  virtual void Physics_CollectData();
77  virtual void Physics_CollectExtraData();
78  virtual void Physics_SetFreeze(bool bVal);
79  virtual void Physics_SetMass(float fltVal);
80  virtual void Physics_SetMaterialID(std::string strID);
81  virtual void Physics_SetVelocityDamping(float fltLinear, float fltAngular);
82  virtual void Physics_SetCenterOfMass(float fltTx, float fltTy, float fltTz);
83  virtual void Physics_UpdateNode();
84  virtual void Physics_FluidDataChanged();
85  virtual void Physics_WakeDynamics();
86  virtual void Physics_ContactSensorAdded(ContactSensor *lpSensor);
87  virtual void Physics_ContactSensorRemoved();
88  virtual void Physics_ChildBodyAdded(RigidBody *lpChild);
89  virtual void Physics_ChildBodyRemoved(bool bHasStaticJoint);
90 
91  virtual void Physics_AddBodyForceAtLocalPos(float fltPx, float fltPy, float fltPz, float fltFx, float fltFy, float fltFz, bool bScaleUnits);
92  virtual void Physics_AddBodyForceAtWorldPos(float fltPx, float fltPy, float fltPz, float fltFx, float fltFy, float fltFz, bool bScaleUnits);
93  virtual void Physics_AddBodyTorque(float fltTx, float fltTy, float fltTz, bool bScaleUnits);
94  virtual CStdFPoint Physics_GetVelocityAtPoint(float x, float y, float z);
95  virtual float Physics_GetMass();
96  virtual float Physics_GetDensity();
97  virtual bool Physics_HasCollisionGeometry();
98  virtual void Physics_StepHydrodynamicSimulation();
99  virtual float *Physics_GetDataPointer(const std::string &strDataType);
100 
101  friend class RbJoint;
102  };
103 
104  } // Environment
105 } //RoboticsAnimatSim
A common class for all rigid body data specific to vortex.
Definition: RbRigidBody.h:52
RbMaterialType * m_lpMaterial
The pointer to the material for this body.
Definition: RbRigidBody.h:58
Vortex base body class.
Definition: RbBody.h:18
Classes for implementing the cm-labs vortex physics engine for AnimatLab.