dynamics3d_engine.h File Reference
#include <argos3/core/simulator/entity/controllable_entity.h>
#include <argos3/core/simulator/physics_engine/physics_engine.h>
#include <argos3/core/utility/math/ray2.h>
#include <argos3/core/utility/math/rng.h>
#include <argos3/plugins/simulator/physics_engines/dynamics3d/bullet/btBulletDynamicsCommon.h>
#include <argos3/plugins/simulator/physics_engines/dynamics3d/bullet/BulletCollision/NarrowPhaseCollision/btRaycastCallback.h>
#include <argos3/plugins/simulator/physics_engines/dynamics3d/bullet/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.h>
#include <argos3/plugins/simulator/physics_engines/dynamics3d/bullet/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.h>
Include dependency graph for dynamics3d_engine.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  argos::CDynamics3DEngine
 
class  argos::CDynamics3DOperation< ACTION >
 
class  argos::CDynamics3DOperationAddEntity
 
class  argos::CDynamics3DOperationRemoveEntity
 

Namespaces

 argos
 The namespace containing all the ARGoS related code.
 

Macros

#define REGISTER_DYNAMICS3D_OPERATION(ACTION, OPERATION, ENTITY)    REGISTER_ENTITY_OPERATION(ACTION, CDynamics3DEngine, OPERATION, SOperationOutcome, ENTITY);
 
#define REGISTER_STANDARD_DYNAMICS3D_OPERATION_ADD_ENTITY(SPACE_ENTITY, DYN3D_MODEL)
 
#define REGISTER_STANDARD_DYNAMICS3D_OPERATION_REMOVE_ENTITY(SPACE_ENTITY)
 
#define REGISTER_STANDARD_DYNAMICS3D_OPERATIONS_ON_ENTITY(SPACE_ENTITY, DYN3D_ENTITY)
 

Macro Definition Documentation

◆ REGISTER_DYNAMICS3D_OPERATION

#define REGISTER_DYNAMICS3D_OPERATION (   ACTION,
  OPERATION,
  ENTITY 
)     REGISTER_ENTITY_OPERATION(ACTION, CDynamics3DEngine, OPERATION, SOperationOutcome, ENTITY);

Definition at line 140 of file dynamics3d_engine.h.

◆ REGISTER_STANDARD_DYNAMICS3D_OPERATION_ADD_ENTITY

#define REGISTER_STANDARD_DYNAMICS3D_OPERATION_ADD_ENTITY (   SPACE_ENTITY,
  DYN3D_MODEL 
)
Value:
class CDynamics3DOperationAdd ## SPACE_ENTITY : public CDynamics3DOperationAddEntity { \
public: \
CDynamics3DOperationAdd ## SPACE_ENTITY() {} \
virtual ~CDynamics3DOperationAdd ## SPACE_ENTITY() {} \
SOperationOutcome ApplyTo(CDynamics3DEngine& c_engine, \
SPACE_ENTITY& c_entity) { \
auto* pcPhysModel = new DYN3D_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_DYNAMICS3D_OPERATION(CDynamics3DOperationAddEntity, \
CDynamics3DOperationAdd ## SPACE_ENTITY, \
SPACE_ENTITY);

Definition at line 143 of file dynamics3d_engine.h.

◆ REGISTER_STANDARD_DYNAMICS3D_OPERATION_REMOVE_ENTITY

#define REGISTER_STANDARD_DYNAMICS3D_OPERATION_REMOVE_ENTITY (   SPACE_ENTITY)
Value:
class CDynamics3DOperationRemove ## SPACE_ENTITY : public CDynamics3DOperationRemoveEntity { \
public: \
CDynamics3DOperationRemove ## SPACE_ENTITY() {} \
virtual ~CDynamics3DOperationRemove ## SPACE_ENTITY() {} \
SOperationOutcome ApplyTo(CDynamics3DEngine& 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_DYNAMICS3D_OPERATION(CDynamics3DOperationRemoveEntity, \
CDynamics3DOperationRemove ## SPACE_ENTITY, \
SPACE_ENTITY);

Definition at line 164 of file dynamics3d_engine.h.

◆ REGISTER_STANDARD_DYNAMICS3D_OPERATIONS_ON_ENTITY

#define REGISTER_STANDARD_DYNAMICS3D_OPERATIONS_ON_ENTITY (   SPACE_ENTITY,
  DYN3D_ENTITY 
)
Value:
REGISTER_STANDARD_DYNAMICS3D_OPERATION_REMOVE_ENTITY(SPACE_ENTITY)
#define REGISTER_STANDARD_DYNAMICS3D_OPERATION_ADD_ENTITY(SPACE_ENTITY, DYN3D_MODEL)

Definition at line 182 of file dynamics3d_engine.h.