gz/sim/components/Factory.hh File Reference
#include <cstdint>
#include <cstring>
#include <map>
#include <memory>
#include <string>
#include <vector>
#include <gz/common/SingletonT.hh>
#include <gz/common/Util.hh>
#include <gz/sim/components/Component.hh>
#include <gz/sim/detail/ComponentStorageBase.hh>
#include <gz/sim/config.hh>
#include <gz/sim/Export.hh>
#include <gz/sim/Types.hh>
Go to the source code of this file.
Classes | |
class | ComponentDescriptor< ComponentTypeT > |
A class for an object responsible for creating components. More... | |
class | ComponentDescriptorBase |
A base class for an object responsible for creating components. More... | |
class | Factory |
A factory that generates a component based on a string type. More... | |
class | StorageDescriptor< ComponentTypeT > |
A class for an object responsible for creating storages. More... | |
class | StorageDescriptorBase |
A base class for an object responsible for creating storages. More... | |
Namespaces | |
ignition | |
This library is part of the Ignition Robotics project. | |
ignition::gazebo | |
Gazebo is a leading open source robotics simulator, that provides high fidelity physics, rendering, and sensor simulation. | |
ignition::gazebo::components | |
Components represent data, such as position information. An Entity usually has one or more associated components. | |
Macros | |
#define | IGN_GAZEBO_REGISTER_COMPONENT(_compType, _classname) |
Static component registration macro. More... | |
Macro Definition Documentation
◆ IGN_GAZEBO_REGISTER_COMPONENT
#define IGN_GAZEBO_REGISTER_COMPONENT | ( | _compType, | |
_classname | |||
) |
Value:
class IgnGazeboComponents##_classname \
{ \
public: IgnGazeboComponents##_classname() \
{ \
if (_classname::typeId != 0) \
return; \
using namespace ignition;\
using Desc = gz::sim::components::ComponentDescriptor<_classname>; \
using StorageDesc = gz::sim::components::StorageDescriptor<_classname>; \
gz::sim::components::Factory::Instance()->Register<_classname>(\
_compType, new Desc(), new StorageDesc());\
} \
}; \
static IgnGazeboComponents##_classname\
IgnitionGazeboComponentsInitializer##_classname;
Static component registration macro.
Use this macro to register components.
Each time a plugin which uses a component is loaded, it tries to register the component again, so we prevent that.
- Parameters
-
[in] _compType Component type name. [in] _classname Class name for component.
This library is part of the Ignition Robotics project.