19 #include <vlutil/vlString.h>
21 #include <boost/unordered_map.hpp>
23 #include <tbb/spin_rw_mutex.h>
30 #define LATEST_MODEL_SET_VERSION 1
43 parentRegistry =
nullptr);
65 virtual bool load(
const DtFilename&, std::set<DtString>* iconLists = 0);
66 virtual bool save(
const DtFilename&);
77 virtual void setComment(
const DtString&);
78 virtual const DtString comment()
const;
89 virtual void emptyList();
93 virtual void entitiesForObjectType(
const DtObjectType& o, std::list<DtString>& list)
const;
110 virtual void loadFromDataFiles(
const std::string& directory,
const SearchPaths& paths, std::set<DtString>* iconLists = 0,
bool parallelLoad =
false);
114 virtual const std::set<DtString>& categories()
const;
117 virtual void loadEntityFiles(
const std::string&,
const SearchPaths& paths, std::set<DtString>* iconLists = 0,
bool parallelLoad =
false);
120 virtual void loadSimulationObjectGroupFiles(
const std::string&, std::set<DtString>* iconLists = 0);
123 virtual const DtObjectType& nextAvailableSimulationObjectGroupObjectType()
const;
126 virtual const DtObjectType& nextAvailableRandomizedObjectObjectType()
const;
130 virtual void createEntriesFromFile(
const DtFilename& entityFile,
const SearchPaths& paths, std::set<DtString>* iconLists);
143 virtual void writeSelf(std::string& fp,
int i,
bool writeUnspecified,
144 const DtFilename& path);
152 virtual void addIconListsToIconList(
const DtModelSetEntry*, std::set<DtString>& iconLists)
const;
162 typedef boost::unordered_map<DtString, DtModelSetEntry*>
FastMap;
int version() const
Returns an entry given a unique ID.
Definition: modelSet.h:176
std::set< DtString > myCategories
Definition: modelSet.h:161
tbb::spin_rw_mutex myAddRemoveMutex
Definition: modelSet.h:172
DtObjectType myNextRandomizedObjectObjectType
Definition: modelSet.h:165
A Readable, Writable version of DtList. This class cannot be used directly, but must be inherited to ...
Definition: rwList.h:26
#define DT_DLL_vrfobjparam
This file is used to determine how to build.
Definition: vrfobjparamDefines.h:28
std::map< std::string, DtModelSetEntry * > EntriesByFile
Only used when loading files.
Definition: modelSet.h:169
virtual DtlObjPtr getData(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)=0
This method must be overridden by a subclass. Within this method, new instances of the DtReaderWriter...
Definition: readerWriter.h:85
Definition: readerWriterRegistry.h:39
EntriesByFile myEntriesByFile
Definition: modelSet.h:170
DtObjectType myNextSimulationObjectGroupObjectType
Definition: modelSet.h:164
virtual void writeSelf(std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
Called from putSelf, calls myRegistry.putSelf which in turn calls putSelf on each reader/writer in th...
Description: A model is a set of items that defines a model to create in the back-end from the front-...
Definition: simulationObjectGroupModelSetEntry.h:161
Definition: objectType.h:27
Definition: modelSetEntry.h:34
DtString myFilename
Definition: modelSet.h:158
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
Description: Readable, Writable int.
Definition: rwInt.h:25
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
virtual DtListItem * add(DtReaderWriter *data)
Add element to the end of the list. Returns the DtListItem envelope object that contains your new ele...
tbb::spin_rw_mutex myLoadMutex
Definition: modelSet.h:171
FastMap myFastMap
Definition: modelSet.h:163
DtRwInt myVersion
Definition: modelSet.h:160
DtModelSet *(* DtModelSetCreatorFcn)(const DtString &, DtReaderWriterRegistry *parentRegistry)
Definition: modelSet.h:33
const DtRwList & operator=(const DtRwList &orig)
Calls down to DtReaderWriter::operator=(). List elements are not copied.
boost::unordered_map< DtString, DtModelSetEntry * > FastMap
Definition: modelSet.h:162
static DtModelSetCreatorFcn theModelSetCreatorFcn
Definition: modelSet.h:166
DtString myComment
Definition: modelSet.h:159
Definition: modelSet.h:35