ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
00001 00007 #ifndef DYNAMICS2D_MODEL_H 00008 #define DYNAMICS2D_MODEL_H 00009 00010 namespace argos { 00011 class CDynamics2DEngine; 00012 } 00013 00014 #include <argos3/core/simulator/physics_engine/physics_model.h> 00015 #include <argos3/plugins/simulator/physics_engines/dynamics2d/chipmunk-physics/include/chipmunk.h> 00016 #include <argos3/plugins/simulator/physics_engines/dynamics2d/dynamics2d_engine.h> 00017 #include <argos3/core/utility/math/vector3.h> 00018 #include <argos3/core/utility/math/quaternion.h> 00019 00020 namespace argos { 00021 00022 class CDynamics2DModel : public CPhysicsModel { 00023 00024 public: 00025 00026 typedef std::map<std::string, CDynamics2DModel*> TMap; 00027 00028 public: 00029 00030 CDynamics2DModel(CDynamics2DEngine& c_engine, 00031 CEmbodiedEntity& c_entity) : 00032 CPhysicsModel(c_engine, c_entity), 00033 m_cDyn2DEngine(c_engine) {} 00034 00035 virtual ~CDynamics2DModel() {} 00036 00037 virtual bool MoveTo(const CVector3& c_position, 00038 const CQuaternion& c_orientation, 00039 bool b_check_only = false) { 00040 return false; 00041 } 00042 00043 virtual void Reset() = 0; 00044 00045 virtual void UpdateEntityStatus() = 0; 00046 virtual void UpdateFromEntityStatus() = 0; 00047 00048 protected: 00049 00050 CDynamics2DEngine& m_cDyn2DEngine; 00051 CVector3 m_cSpacePosition; 00052 CQuaternion m_cSpaceOrientation; 00053 00054 }; 00055 00056 } 00057 00058 #endif