pointmass3d_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 dependency graph for pointmass3d_engine.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  argos::CPointMass3DEngine
 
class  argos::CPointMass3DOperation< ACTION >
 
class  argos::CPointMass3DOperationAddEntity
 
class  argos::CPointMass3DOperationRemoveEntity
 

Namespaces

 argos
 The namespace containing all the ARGoS related code.
 

Macros

#define REGISTER_POINTMASS3D_OPERATION(ACTION, OPERATION, ENTITY)    REGISTER_ENTITY_OPERATION(ACTION, CPointMass3DEngine, OPERATION, SOperationOutcome, ENTITY);
 
#define REGISTER_STANDARD_POINTMASS3D_OPERATION_ADD_ENTITY(SPACE_ENTITY, PM3D_MODEL)
 
#define REGISTER_STANDARD_POINTMASS3D_OPERATION_REMOVE_ENTITY(SPACE_ENTITY)
 
#define REGISTER_STANDARD_POINTMASS3D_OPERATIONS_ON_ENTITY(SPACE_ENTITY, PM3D_ENTITY)
 

Macro Definition Documentation

◆ REGISTER_POINTMASS3D_OPERATION

#define REGISTER_POINTMASS3D_OPERATION (   ACTION,
  OPERATION,
  ENTITY 
)     REGISTER_ENTITY_OPERATION(ACTION, CPointMass3DEngine, OPERATION, SOperationOutcome, ENTITY);

Definition at line 91 of file pointmass3d_engine.h.

◆ REGISTER_STANDARD_POINTMASS3D_OPERATION_ADD_ENTITY

#define REGISTER_STANDARD_POINTMASS3D_OPERATION_ADD_ENTITY (   SPACE_ENTITY,
  PM3D_MODEL 
)
Value:
class CPointMass3DOperationAdd ## SPACE_ENTITY : public CPointMass3DOperationAddEntity { \
public: \
CPointMass3DOperationAdd ## SPACE_ENTITY() {} \
virtual ~CPointMass3DOperationAdd ## SPACE_ENTITY() {} \
SOperationOutcome ApplyTo(CPointMass3DEngine& c_engine, \
SPACE_ENTITY& c_entity) { \
auto* pcPhysModel = new PM3D_MODEL(c_engine, \
c_entity); \
c_engine.AddPhysicsModel(c_entity.GetId(), \
*pcPhysModel); \
c_entity. \
GetComponent<CEmbodiedEntity>("body"). \
AddPhysicsModel(c_engine.GetId(), *pcPhysModel); \
return SOperationOutcome(true); \
} \
}; \
REGISTER_POINTMASS3D_OPERATION(CPointMass3DOperationAddEntity, \
CPointMass3DOperationAdd ## SPACE_ENTITY, \
SPACE_ENTITY);

Definition at line 94 of file pointmass3d_engine.h.

◆ REGISTER_STANDARD_POINTMASS3D_OPERATION_REMOVE_ENTITY

#define REGISTER_STANDARD_POINTMASS3D_OPERATION_REMOVE_ENTITY (   SPACE_ENTITY)
Value:
class CPointMass3DOperationRemove ## SPACE_ENTITY : public CPointMass3DOperationRemoveEntity { \
public: \
CPointMass3DOperationRemove ## SPACE_ENTITY() {} \
virtual ~CPointMass3DOperationRemove ## SPACE_ENTITY() {} \
SOperationOutcome ApplyTo(CPointMass3DEngine& c_engine, \
SPACE_ENTITY& c_entity) { \
c_engine.RemovePhysicsModel(c_entity.GetId()); \
c_entity. \
GetComponent<CEmbodiedEntity>("body"). \
RemovePhysicsModel(c_engine.GetId()); \
return SOperationOutcome(true); \
} \
}; \
REGISTER_POINTMASS3D_OPERATION(CPointMass3DOperationRemoveEntity, \
CPointMass3DOperationRemove ## SPACE_ENTITY, \
SPACE_ENTITY);

Definition at line 115 of file pointmass3d_engine.h.

◆ REGISTER_STANDARD_POINTMASS3D_OPERATIONS_ON_ENTITY

#define REGISTER_STANDARD_POINTMASS3D_OPERATIONS_ON_ENTITY (   SPACE_ENTITY,
  PM3D_ENTITY 
)
Value:
REGISTER_STANDARD_POINTMASS3D_OPERATION_REMOVE_ENTITY(SPACE_ENTITY)
#define REGISTER_STANDARD_POINTMASS3D_OPERATION_ADD_ENTITY(SPACE_ENTITY, PM3D_MODEL)

Definition at line 133 of file pointmass3d_engine.h.