ARGoS  3
A parallel, multi-engine simulator for swarm robotics
plugins/simulator/physics_engines/dynamics2d/dynamics2d_engine.h File Reference
#include <argos3/core/utility/math/ray2.h>
#include <argos3/core/simulator/entity/controllable_entity.h>
#include <argos3/core/simulator/physics_engine/physics_engine.h>
#include <argos3/plugins/simulator/physics_engines/dynamics2d/chipmunk-physics/include/chipmunk.h>
+ Include dependency graph for dynamics2d_engine.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  argos::SDynamics2DEngineGripperData
class  argos::CDynamics2DEngine
struct  argos::CDynamics2DEngine::SBoundarySegment
struct  argos::CDynamics2DEngine::SEntityTransferData
class  argos::CDynamics2DOperation< ACTION >
class  argos::CDynamics2DOperationAddEntity
class  argos::CDynamics2DOperationRemoveEntity

Namespaces

namespace  argos
 

The namespace containing all the ARGoS related code.


Defines

#define REGISTER_DYNAMICS2D_OPERATION(ACTION, OPERATION, ENTITY)   REGISTER_ENTITY_OPERATION(ACTION, CDynamics2DEngine, OPERATION, void, ENTITY);
#define REGISTER_STANDARD_DYNAMICS2D_OPERATION_ADD_ENTITY(SPACE_ENTITY, DYN2D_MODEL)
#define REGISTER_STANDARD_DYNAMICS2D_OPERATION_REMOVE_ENTITY(SPACE_ENTITY)
#define REGISTER_STANDARD_DYNAMICS2D_OPERATIONS_ON_ENTITY(SPACE_ENTITY, DYN2D_ENTITY)

Define Documentation

#define REGISTER_DYNAMICS2D_OPERATION (   ACTION,
  OPERATION,
  ENTITY 
)    REGISTER_ENTITY_OPERATION(ACTION, CDynamics2DEngine, OPERATION, void, ENTITY);

Definition at line 199 of file dynamics2d_engine.h.

#define REGISTER_STANDARD_DYNAMICS2D_OPERATION_ADD_ENTITY (   SPACE_ENTITY,
  DYN2D_MODEL 
)
Value:
class CDynamics2DOperationAdd ## SPACE_ENTITY : public CDynamics2DOperationAddEntity { \
   public:                                                              \
   CDynamics2DOperationAdd ## SPACE_ENTITY() {}                         \
   virtual ~CDynamics2DOperationAdd ## SPACE_ENTITY() {}                \
   void ApplyTo(CDynamics2DEngine& c_engine,                            \
                SPACE_ENTITY& c_entity) {                               \
      DYN2D_MODEL* pcPhysModel = new DYN2D_MODEL(c_engine,              \
                                                 c_entity);             \
      c_engine.AddPhysicsModel(c_entity.GetId(),                        \
                               *pcPhysModel);                           \
      c_entity.                                                         \
         GetComponent<CEmbodiedEntity>("body").                         \
         AddPhysicsModel(c_engine.GetId(), *pcPhysModel);               \
   }                                                                    \
   };                                                                   \
   REGISTER_DYNAMICS2D_OPERATION(CDynamics2DOperationAddEntity,         \
                                 CDynamics2DOperationAdd ## SPACE_ENTITY, \
                                 SPACE_ENTITY);

Definition at line 202 of file dynamics2d_engine.h.

Value:
class CDynamics2DOperationRemove ## SPACE_ENTITY : public CDynamics2DOperationRemoveEntity { \
   public:                                                              \
   CDynamics2DOperationRemove ## SPACE_ENTITY() {}                      \
   virtual ~CDynamics2DOperationRemove ## SPACE_ENTITY() {}             \
   void ApplyTo(CDynamics2DEngine& c_engine,                            \
                SPACE_ENTITY& c_entity) {                               \
      c_engine.RemovePhysicsModel(c_entity.GetId());                    \
      c_entity.                                                         \
         GetComponent<CEmbodiedEntity>("body").                         \
         RemovePhysicsModel(c_engine.GetId());                          \
   }                                                                    \
   };                                                                   \
   REGISTER_DYNAMICS2D_OPERATION(CDynamics2DOperationRemoveEntity,      \
                                 CDynamics2DOperationRemove ## SPACE_ENTITY, \
                                 SPACE_ENTITY);

Definition at line 222 of file dynamics2d_engine.h.

#define REGISTER_STANDARD_DYNAMICS2D_OPERATIONS_ON_ENTITY (   SPACE_ENTITY,
  DYN2D_ENTITY 
)
Value:
REGISTER_STANDARD_DYNAMICS2D_OPERATION_ADD_ENTITY(SPACE_ENTITY, DYN2D_ENTITY) \
   REGISTER_STANDARD_DYNAMICS2D_OPERATION_REMOVE_ENTITY(SPACE_ENTITY)

Definition at line 239 of file dynamics2d_engine.h.