ARGoS 3
A parallel, multi-engine simulator for swarm robotics
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
15namespace 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