Go to the documentation of this file.
21 struct TMetricMapInitializer;
47 std::string, std::pair<MapDefCtorFunctor, MapCtorFromDefFunctor>>;
57 #define MAP_DEFINITION_START(_CLASS_NAME_) \
61 struct TMapDefinitionBase : public mrpt::maps::TMetricMapInitializer \
63 TMapDefinitionBase() \
64 : TMetricMapInitializer(CLASS_ID(_CLASS_NAME_)) {} \
66 struct TMapDefinition : public TMapDefinitionBase \
68 #define MAP_DEFINITION_END(_CLASS_NAME_) \
72 void loadFromConfigFile_map_specific( \
73 const mrpt::config::CConfigFileBase& source, \
74 const std::string& sectionNamePrefix) override; \
75 void dumpToTextStream_map_specific(std::ostream& out) const override; \
80 static mrpt::maps::TMetricMapInitializer* MapDefinition(); \
83 static _CLASS_NAME_* CreateFromMapDefinition( \
84 const mrpt::maps::TMetricMapInitializer& def); \
85 static mrpt::maps::CMetricMap* internal_CreateFromMapDefinition( \
86 const mrpt::maps::TMetricMapInitializer& def); \
88 static const size_t m_private_map_register_id; \
94 #define MAP_DEFINITION_REGISTER(_CLASSNAME_STRINGS, _CLASSNAME_WITH_NS) \
95 const size_t _CLASSNAME_WITH_NS::m_private_map_register_id = \
96 mrpt::maps::internal::TMetricMapTypesRegistry::Instance().doRegister( \
97 _CLASSNAME_STRINGS, &_CLASSNAME_WITH_NS::MapDefinition, \
98 &_CLASSNAME_WITH_NS::internal_CreateFromMapDefinition); \
99 mrpt::maps::TMetricMapInitializer* _CLASSNAME_WITH_NS::MapDefinition() \
101 return new _CLASSNAME_WITH_NS::TMapDefinition; \
103 _CLASSNAME_WITH_NS* _CLASSNAME_WITH_NS::CreateFromMapDefinition( \
104 const mrpt::maps::TMetricMapInitializer& def) \
106 return dynamic_cast<_CLASSNAME_WITH_NS*>( \
107 _CLASSNAME_WITH_NS::internal_CreateFromMapDefinition(def)); \
TMetricMapTypesRegistry()
const TListRegisteredMaps & getAllRegistered() const
static TMetricMapTypesRegistry & Instance()
TListRegisteredMaps m_registry
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
Virtual base for specifying the kind and parameters of one map (normally, to be inserted into mrpt::m...
mrpt::maps::TMetricMapInitializer * factoryMapDefinition(const std::string &className) const
Return nullptr if not found.
GLuint const GLchar * name
Declares a virtual base class for all metric maps storage classes.
mrpt::maps::CMetricMap * factoryMapObjectFromDefinition(const mrpt::maps::TMetricMapInitializer &mi) const
Return nullptr if not found.
std::function< mrpt::maps::TMetricMapInitializer *(void)> MapDefCtorFunctor
typedef void(APIENTRYP PFNGLBLENDCOLORPROC)(GLclampf red
size_t doRegister(const std::string &name, MapDefCtorFunctor func1, MapCtorFromDefFunctor func2)
Return the index of the class in the list (not important, just used as a trick to initialize static m...
Class factory & registry for map classes.
GLsizei const GLchar ** string
std::map< std::string, std::pair< MapDefCtorFunctor, MapCtorFromDefFunctor > > TListRegisteredMaps
std::function< mrpt::maps::CMetricMap *(const mrpt::maps::TMetricMapInitializer &)> MapCtorFromDefFunctor
Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST | |