ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
00001 00007 #ifndef DYNAMICS2D_CYLINDER_MODEL_H 00008 #define DYNAMICS2D_CYLINDER_MODEL_H 00009 00010 namespace argos { 00011 class CDynamics2DCylinderModel; 00012 class CDynamics2DGrippable; 00013 } 00014 00015 #include <argos3/plugins/simulator/physics_engines/dynamics2d/dynamics2d_model.h> 00016 #include <argos3/plugins/simulator/entities/cylinder_entity.h> 00017 00018 namespace argos { 00019 00020 class CDynamics2DCylinderModel : public CDynamics2DModel { 00021 00022 public: 00023 00024 CDynamics2DCylinderModel(CDynamics2DEngine& c_engine, 00025 CCylinderEntity& c_entity); 00026 virtual ~CDynamics2DCylinderModel(); 00027 00028 virtual bool MoveTo(const CVector3& c_position, 00029 const CQuaternion& c_orientation, 00030 bool b_check_only = false); 00031 00032 virtual void Reset(); 00033 00034 virtual void CalculateBoundingBox(); 00035 00036 virtual void UpdateEntityStatus(); 00037 virtual void UpdateFromEntityStatus() {} 00038 00039 virtual bool IsCollidingWithSomething() const; 00040 00041 private: 00042 00043 bool m_bMovable; 00044 CCylinderEntity& m_cCylinderEntity; 00045 CDynamics2DGrippable* m_pcGrippable; 00046 cpFloat m_fMass; 00047 cpShape* m_ptShape; 00048 cpBody* m_ptBody; 00049 cpConstraint* m_ptLinearFriction; 00050 cpConstraint* m_ptAngularFriction; 00051 00052 }; 00053 00054 } 00055 00056 #endif