15 #ifndef BORNAGAIN_MVVM_MODEL_MVVM_MODEL_ITEMCATALOGUE_H
16 #define BORNAGAIN_MVVM_MODEL_MVVM_MODEL_ITEMCATALOGUE_H
19 #include "mvvm/model_export.h"
38 template <
typename T>
void registerItem(
const std::string& label = {});
41 const std::string& label);
43 bool contains(
const std::string& modelType)
const;
45 std::unique_ptr<SessionItem> create(
const std::string& modelType)
const;
47 std::vector<std::string> modelTypes()
const;
49 std::vector<std::string> labels()
const;
51 int itemCount()
const;
56 struct ItemCatalogueImpl;
57 std::unique_ptr<ItemCatalogueImpl>
p_impl;
62 registerItem(T().modelType(), ItemFactoryFunction<T>(), label);
Catalogue for item constructions.
void registerItem(const std::string &label={})
std::unique_ptr< ItemCatalogueImpl > p_impl
materialitems.h Collection of materials to populate MaterialModel.
std::function< std::unique_ptr< SessionItem >()> item_factory_func_t
Definition for item factory funciton.