ARGoS  3
A parallel, multi-engine simulator for swarm robotics
plugins/simulator/physics_engines/dynamics2d/dynamics2d_box_model.h
Go to the documentation of this file.
00001 
00007 #ifndef DYNAMICS2D_BOX_MODEL_H
00008 #define DYNAMICS2D_BOX_MODEL_H
00009 
00010 namespace argos {
00011    class CDynamics2DBoxModel;
00012    class CDynamics2DGrippable;
00013 }
00014 
00015 #include <argos3/plugins/simulator/physics_engines/dynamics2d/dynamics2d_model.h>
00016 #include <argos3/plugins/simulator/entities/box_entity.h>
00017 
00018 namespace argos {
00019 
00020    class CDynamics2DBoxModel : public CDynamics2DModel {
00021 
00022    public:
00023 
00024       CDynamics2DBoxModel(CDynamics2DEngine& c_engine,
00025                           CBoxEntity& c_entity);
00026       virtual ~CDynamics2DBoxModel();
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       CBoxEntity&           m_cBoxEntity;
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