dynamics3d_plugin.h
Go to the documentation of this file.
1 
7 #ifndef DYNAMICS3D_PLUGIN_H
8 #define DYNAMICS3D_PLUGIN_H
9 
10 #include <argos3/core/utility/datatypes/datatypes.h>
11 #include <argos3/core/utility/plugins/factory.h>
12 #include <argos3/core/simulator/simulator.h>
13 #include <argos3/plugins/simulator/physics_engines/dynamics3d/dynamics3d_engine.h>
14 
15 namespace argos {
16 
17  /****************************************/
18  /****************************************/
19 
21 
22  public:
23 
24  using TMap = std::map<std::string, CDynamics3DPlugin*>;
25 
26  public:
28  m_pcEngine(nullptr) {}
29 
30  virtual ~CDynamics3DPlugin() {}
31 
32  virtual void Init(TConfigurationNode& t_tree) {}
33 
34  virtual void Reset() {}
35 
36  virtual void Destroy() {}
37 
38  virtual void SetEngine(CDynamics3DEngine& c_engine) {
39  m_pcEngine = &c_engine;
40  }
41 
42  virtual void RegisterModel(CDynamics3DModel& c_model) = 0;
43 
44  virtual void UnregisterModel(CDynamics3DModel& c_model) = 0;
45 
46  virtual void Update() = 0;
47 
48  protected:
50  };
51 
52  /****************************************/
53  /****************************************/
54 
55 }
56 
57 #define REGISTER_DYNAMICS3D_PLUGIN(CLASSNAME, \
58  LABEL, \
59  AUTHOR, \
60  VERSION, \
61  BRIEF_DESCRIPTION, \
62  LONG_DESCRIPTION, \
63  STATUS) \
64  REGISTER_SYMBOL(CDynamics3DPlugin, \
65  CLASSNAME, \
66  LABEL, \
67  AUTHOR, \
68  VERSION, \
69  BRIEF_DESCRIPTION, \
70  LONG_DESCRIPTION, \
71  STATUS)
72 
73 #endif
The namespace containing all the ARGoS related code.
Definition: ci_actuator.h:12
ticpp::Element TConfigurationNode
The ARGoS configuration XML node.
std::map< std::string, CDynamics3DPlugin * > TMap
virtual void SetEngine(CDynamics3DEngine &c_engine)
virtual void RegisterModel(CDynamics3DModel &c_model)=0
virtual void UnregisterModel(CDynamics3DModel &c_model)=0
virtual void Update()=0
virtual void Init(TConfigurationNode &t_tree)
CDynamics3DEngine * m_pcEngine