17 #ifndef GAZEBO_PHYSICS_ATMOSPHEREFACTORY_HH_
18 #define GAZEBO_PHYSICS_ATMOSPHEREFACTORY_HH_
35 typedef std::unique_ptr<Atmosphere> (*AtmosphereFactoryFn) (
World &world);
42 public:
static void RegisterAll();
48 public:
static void RegisterAtmosphere(
const std::string &_className,
55 public:
static std::unique_ptr<Atmosphere> NewAtmosphere(
56 const std::string &_className,
World &_world);
61 public:
static bool IsRegistered(
const std::string &_name);
64 private:
static std::map<std::string, AtmosphereFactoryFn> models;
72 #define GZ_REGISTER_ATMOSPHERE_MODEL(_name, _classname) \
73 GZ_PHYSICS_VISIBLE std::unique_ptr<Atmosphere> \
74 New##_classname(World &_world) \
76 return std::unique_ptr<Atmosphere>( \
77 new gazebo::physics::_classname(_world)); \
80 void Register##_classname() \
82 AtmosphereFactory::RegisterAtmosphere(_name, New##_classname);\
default namespace for gazebo
The world provides access to all other object within a simulated environment.
Definition: World.hh:68
std::unique_ptr< Atmosphere >(* AtmosphereFactoryFn)(World &world)
Definition: AtmosphereFactory.hh:35
The atmosphere factory instantiates different atmosphere models.
Definition: AtmosphereFactory.hh:39