WorldElementBase.h
Go to the documentation of this file.
1 /*+-------------------------------------------------------------------------+
2  | MultiVehicle simulator (libmvsim) |
3  | |
4  | Copyright (C) 2014 Jose Luis Blanco Claraco (University of Almeria) |
5  | Copyright (C) 2017 Borys Tymchenko (Odessa Polytechnic University) |
6  | Distributed under GNU General Public License version 3 |
7  | See <http://www.gnu.org/licenses/> |
8  +-------------------------------------------------------------------------+ */
9 
10 #pragma once
11 
12 #include <mvsim/VisualObject.h>
13 #include <mvsim/Simulable.h>
14 #include <mvsim/ClassFactory.h>
15 
16 namespace mvsim
17 {
18 class WorldElementBase : public VisualObject, public Simulable
19 {
20  public:
21  WorldElementBase(World* parent) : VisualObject(parent) {}
22  virtual ~WorldElementBase() {}
28  static WorldElementBase* factory(
29  World* parent, const rapidxml::xml_node<char>* xml_node,
30  const char* class_name = NULL);
31 
32  virtual void loadConfigFrom(const rapidxml::xml_node<char>* root) = 0;
33 
34  protected:
35 };
36 
37 // Class factory:
41 
42 #define DECLARES_REGISTER_WORLD_ELEMENT(CLASS_NAME) \
43  DECLARES_REGISTER_CLASS2( \
44  CLASS_NAME, WorldElementBase, World*, const rapidxml::xml_node<char>*)
45 
46 #define REGISTER_WORLD_ELEMENT(TEXTUAL_NAME, CLASS_NAME) \
47  REGISTER_CLASS2( \
48  TClassFactory_worldElements, classFactory_worldElements, TEXTUAL_NAME, \
49  CLASS_NAME)
50 }
static WorldElementBase * factory(World *parent, const rapidxml::xml_node< char > *xml_node, const char *class_name=NULL)
WorldElementBase(World *parent)
TClassFactory_worldElements classFactory_worldElements
virtual void loadConfigFrom(const rapidxml::xml_node< char > *root)=0
ClassFactory< WorldElementBase, World *, const rapidxml::xml_node< char > * > TClassFactory_worldElements


mvsim
Author(s):
autogenerated on Thu Jun 6 2019 19:36:40