ARGoS  3
A parallel, multi-engine simulator for swarm robotics
plugins/simulator/physics_engines/dynamics2d/dynamics2d_model.h
Go to the documentation of this file.
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