12 #include <mvsim/ClassFactory.h>
13 #include <mvsim/Simulable.h>
14 #include <mvsim/VisualObject.h>
30 using Ptr = std::shared_ptr<WorldElementBase>;
50 virtual std::optional<std::any> queryProperty(
51 [[maybe_unused]]
const std::string& propertyName,
52 [[maybe_unused]]
const mrpt::math::TPoint3D& worldXYZ)
const
61 using TClassFactory_worldElements =
62 ClassFactory<WorldElementBase, World*, const rapidxml::xml_node<char>*>;
64 extern TClassFactory_worldElements classFactory_worldElements;
66 #define DECLARES_REGISTER_WORLD_ELEMENT(CLASS_NAME) \
67 DECLARES_REGISTER_CLASS2(CLASS_NAME, WorldElementBase, World*, const rapidxml::xml_node<char>*)
69 #define REGISTER_WORLD_ELEMENT(TEXTUAL_NAME, CLASS_NAME) \
71 TClassFactory_worldElements, classFactory_worldElements, TEXTUAL_NAME, CLASS_NAME)
Definition: Simulable.h:40
Definition: VisualObject.h:36
Definition: WorldElementBase.h:28
static Ptr factory(World *parent, const rapidxml::xml_node< char > *xml_node, const char *class_name=nullptr)