40 const std::string &parent_name,
41 const std::vector<std::string> &required_entries)
56 std::unique_ptr<Interface>
59 std::string lower_case_name;
60 std::transform(name.begin(),
62 std::back_inserter(lower_case_name),
68 "Internal error: Plugin with name '" << lower_case_name <<
"' is not found. "
static std::map< std::string, ObjectFactory * > & get_factory_map()
static void registerType(const std::string &name, void(*)(Parameters &, const std::string &), ObjectFactory *factory)
WorldBuilder::World * world
static std::map< std::string, void(*)(Parameters &, const std::string &)> & get_declare_map()
#define WBAssertThrow(condition, message)
static void declare_entries(Parameters &prm, const std::string &parent_name, const std::vector< std::string > &required_entries)
void declare_model_entries(const std::string &model_group_name, const std::string &parent_name, const std::map< std::string, void(*)(Parameters &, const std::string &)> &declare_map, const std::vector< std::string > &required_entries={}, const std::vector< std::tuple< std::string, const WorldBuilder::Types::Interface &, std::string > > &extra_declarations={})
static std::unique_ptr< Interface > create(const std::string &name, WorldBuilder::World *world)