Go to the documentation of this file.
21 struct TMetricMapInitializer;
42 const std::string& className)
const;
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()=default
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.
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
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.
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 2.0.3 at Thu May 21 21:53:32 UTC 2020 | |