ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
00001 00007 #ifndef DYNAMICS2D_EPUCK_MODEL_H 00008 #define DYNAMICS2D_EPUCK_MODEL_H 00009 00010 namespace argos { 00011 class CDynamics2DDifferentialSteeringControl; 00012 class CDynamics2DGripper; 00013 class CDynamics2DGrippable; 00014 } 00015 00016 #include <argos3/plugins/simulator/physics_engines/dynamics2d/dynamics2d_model.h> 00017 #include <argos3/plugins/simulator/physics_engines/dynamics2d/dynamics2d_differentialsteering_control.h> 00018 #include <argos3/plugins/robots/e-puck/simulator/epuck_entity.h> 00019 00020 namespace argos { 00021 00022 class CDynamics2DEPuckModel : public CDynamics2DModel { 00023 00024 public: 00025 00026 CDynamics2DEPuckModel(CDynamics2DEngine& c_engine, 00027 CEPuckEntity& c_entity); 00028 virtual ~CDynamics2DEPuckModel(); 00029 00030 virtual bool CheckIntersectionWithRay(Real& f_t_on_ray, 00031 const CRay3& c_ray) const; 00032 00033 virtual bool MoveTo(const CVector3& c_position, 00034 const CQuaternion& c_orientation, 00035 bool b_check_only = false); 00036 00037 virtual void Reset(); 00038 00039 virtual void CalculateBoundingBox(); 00040 00041 virtual void UpdateEntityStatus(); 00042 virtual void UpdateFromEntityStatus(); 00043 00044 virtual bool IsCollidingWithSomething() const; 00045 00046 private: 00047 00048 CEPuckEntity& m_cEPuckEntity; 00049 CWheeledEntity& m_cWheeledEntity; 00050 00051 CDynamics2DDifferentialSteeringControl m_cDiffSteering; 00052 00053 cpFloat m_fMass; 00054 cpShape* m_ptBaseShape; 00055 cpBody* m_ptActualBaseBody; 00056 00057 const Real* m_fCurrentWheelVelocity; 00058 00059 }; 00060 00061 } 00062 00063 #endif