30 namespace MantleLayerModels
42 const std::string &parent_name,
43 const std::vector<std::string> &required_entries)
50 std::tuple<std::string,const WorldBuilder::Types::Interface &, std::string>
53 "Whether the value should replace any value previously defined at this location (replace), " 54 "add the value to the previously define value (add) or subtract the value to the previously " 55 "define value (subtract)." 70 std::unique_ptr<Interface>
73 std::string lower_case_name;
74 std::transform(name.begin(),
76 std::back_inserter(lower_case_name),
82 "Internal error: Plugin with name '" << lower_case_name <<
"' is not found. "
static std::map< std::string, void(*)(Parameters &, const std::string &)> & get_declare_map()
static void declare_entries(Parameters &prm, const std::string &parent_name, const std::vector< std::string > &required_entries)
WorldBuilder::World * world
static std::unique_ptr< Interface > create(const std::string &name, WorldBuilder::World *world)
static std::map< std::string, ObjectFactory * > & get_factory_map()
#define WBAssertThrow(condition, message)
static void registerType(const std::string &name, void(*)(Parameters &, const std::string &), ObjectFactory *factory)
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={})