![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2007 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: simulationModelSetLoader.h,v $ $Revision: 1.14 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtSimulationModelSetLoader_H_ 00013 #define DtSimulationModelSetLoader_H_ 00014 00015 #include "vrfutil/simulationModelSet.h" 00016 #include <vrfutil/rwForces.h> 00017 #include <vlutil/vlFilename.h> 00018 #include <QtCore/QHash> 00019 #include <QtGui/QPixmap> 00020 #include <QtCore/QObject> 00021 00022 #include <vrfGuiCore/entityMapperKey.h> 00023 00024 class DtVrfParameterDb; 00025 class DtObjectType; 00026 class DtModelSet; 00027 class DtVrfObjectParameters; 00028 class DtMenu; 00029 class DtVrfParameterDbEntry; 00030 class DtModelSetEntry; 00031 class DtComponentSystemDatabase; 00032 class MyMtlParameterDbEntry; 00033 class QComboBox; 00034 class DtEntityMapperKey; 00035 00036 typedef DtVrfParameterDb* (*DtParameterDatabaseCreatorFcn) (); 00037 00038 #include "entityEditorImpl/entityEditorImplDefines.h" 00039 00040 namespace makVrv 00041 { 00042 class DtDe; 00043 } 00044 00045 class DT_DLL_entityeditorimpl DtSimulationModelSetLoader : public QObject 00046 { 00047 Q_OBJECT 00048 00049 public: 00050 00052 DtSimulationModelSetLoader(makVrv::DtDe* = 0); 00053 00054 virtual ~DtSimulationModelSetLoader(); 00055 00056 virtual bool load(const DtSimulationModelSet&); 00057 virtual bool save(const DtFilename&); 00058 00059 private: 00060 DtSimulationModelSetLoader(const DtSimulationModelSetLoader&); 00061 DtSimulationModelSetLoader& operator=(const DtSimulationModelSetLoader&); 00062 00063 public: 00064 00066 DtFilename simulationModelSetFilename() const; 00067 00068 virtual bool openOpdFile(const DtFilename& filename); 00069 00070 virtual bool openSystemFiles(const DtVrfParameterDb* opd); 00071 00072 virtual bool openEntFile(const DtFilename& filename); 00073 virtual bool loadModelSet(const DtFilename& f); 00074 00075 virtual bool loadAllOpdParameters(bool canCancel = true, const QString& label = ""); 00076 00077 virtual bool loadForceHostilityFile(const DtFilename& f); 00078 00079 virtual DtModelSetEntry* modifiedModelValue(DtModelSetEntry*, bool createIfMissing = true); 00080 00083 virtual DtModelSetEntry* modelEntry(const DtObjectType&, bool createIfMissing = false); 00084 virtual DtModelSetEntry* modelEntry(DtModelSet*, const DtObjectType&, bool createIfMissing = false); 00085 00086 virtual void revertParameterDatabase(); 00087 00092 virtual DtString opdVariableValue(const DtString& variableName) const; 00093 00097 virtual DtString substituteVariableInPath(const DtFilename& filePath, const DtString& variableName) const; 00098 00099 virtual MyMtlParameterDbEntry* parameterEntryFor(const DtObjectType&, 00100 const DtObjectType& original = DtObjectType(-1, -1, -1, -1, -1, -1, -1, -1)); 00101 00104 virtual bool containsObjectType(const DtObjectType&); 00105 00108 virtual bool hasModelNamed(const DtString&); 00109 00110 virtual bool isModified() const; 00111 00112 void setDefaultCategories(const QStringList&); 00113 void addDefaultCategory(const QString&); 00114 const QStringList& defaultCategories() const; 00115 virtual void changeDefaultCategory(const QString& old, const QString& newCat); 00116 virtual void addDefaultCategories(QComboBox*); 00117 virtual void revertCategories(); 00118 virtual void parameterChanged(const DtVrfObjectParameters*, const DtObjectType&, const DtObjectType&); 00119 00121 virtual void replaceSystem(const DtFilename&); 00122 00124 virtual void removeSystem(const DtFilename&); 00125 00126 DtFilename getSystemDirectory() const; 00127 DtFilename getFormationDirectory() const; 00128 00129 virtual QPixmap getIcon(const makVrf::DtEntityMapperKey& key, int pointSize = 48, 00130 bool sizeToFont = false); 00131 00132 virtual void clearIcons(const makVrf::DtEntityMapperKey& key); 00133 00134 public: 00135 static void setParameterDatabaseCreatorFcn(DtParameterDatabaseCreatorFcn); 00136 00137 const DtModelSet* modelSet() const; 00138 DtModelSet* modelSet(); 00139 const DtMenu* entityMenu() const; 00140 00143 virtual void setEntityMenu(DtMenu* menu); 00144 virtual void revertEntityMenu(); 00145 00146 const DtVrfParameterDb* parameterDatabase() const; 00147 00148 DtVrfParameterDb* parameterDatabase(); 00149 const DtSimulationModelSet& simulationModelSet() const; 00150 const DtFilename& parameterFilename() const; 00151 const DtComponentSystemDatabase* systemDatabase() const; 00152 DtFilename modelSetDirectory() const; 00153 00154 virtual void forceRemoved(DtForceType forceType); 00155 00156 const DtRwForces& allForces() const; 00157 00158 virtual bool hasModifiedCreateMenu() const; 00159 virtual bool hasModifiedCategories() const; 00160 virtual bool saveParameterDatabase(const DtFilename&); 00161 00162 protected: 00163 virtual DtVrfParameterDb* createDatabase(const DtFilename& filename); 00164 virtual DtVrfParameterDb* createParameterDatabase(); 00165 00166 virtual void loadSystemFilesFromDirectory(const QString& directoryName, 00167 const DtVariableBindingsList& variableBindings); 00168 00169 virtual void cleanup(); 00170 00171 virtual bool saveModelSet(const DtFilename&); 00172 00173 virtual bool saveForceHostility(const DtFilename& filename); 00174 00175 virtual bool warned(const DtFilename&); 00176 00177 protected: 00178 QStringList myWarned; 00179 QList<DtVrfParameterDbEntry*> myMissing; 00180 DtSimulationModelSet mySimulationModelSet; 00181 DtMenu* myEntMenu; 00182 DtMenu* myModifiedMenu; 00183 DtVrfParameterDb* myParameterDatabase; 00184 DtComponentSystemDatabase* mySystemDatabase; 00185 DtFilename myParameterFilename; 00186 DtModelSet* myModelSet; 00187 DtModelSet* myTempModelSet; 00188 DtRwForces myAllForces; 00189 QStringList myDefaultCategories; 00190 static DtParameterDatabaseCreatorFcn theParameterDatabaseCreatorFcn; 00191 makVrv::DtDe* myDe; 00192 }; 00193 00194 inline DtFilename DtSimulationModelSetLoader::simulationModelSetFilename() const 00195 { 00196 return mySimulationModelSet.filename(); 00197 } 00198 00199 inline const DtSimulationModelSet& DtSimulationModelSetLoader::simulationModelSet() const 00200 { 00201 return mySimulationModelSet; 00202 } 00203 00204 inline const DtVrfParameterDb* DtSimulationModelSetLoader::parameterDatabase() const 00205 { 00206 return myParameterDatabase; 00207 } 00208 00209 inline DtVrfParameterDb* DtSimulationModelSetLoader::parameterDatabase() 00210 { 00211 return myParameterDatabase; 00212 } 00213 00214 inline const DtModelSet* DtSimulationModelSetLoader::modelSet() const 00215 { 00216 return myModelSet; 00217 } 00218 00219 inline DtModelSet* DtSimulationModelSetLoader::modelSet() 00220 { 00221 return myModelSet; 00222 } 00223 00224 inline const DtFilename& DtSimulationModelSetLoader::parameterFilename() const 00225 { 00226 return myParameterFilename; 00227 } 00228 00229 inline const DtRwForces& DtSimulationModelSetLoader::allForces() const 00230 { 00231 return myAllForces; 00232 } 00233 00234 inline const QStringList& DtSimulationModelSetLoader::defaultCategories() const 00235 { 00236 return myDefaultCategories; 00237 } 00238 00239 inline void DtSimulationModelSetLoader::setDefaultCategories(const QStringList& l) 00240 { 00241 myDefaultCategories = l; 00242 } 00243 00244 inline void DtSimulationModelSetLoader::addDefaultCategory(const QString& l) 00245 { 00246 myDefaultCategories.push_back(l); 00247 } 00248 00249 extern DT_DLL_entityeditorimpl makVrf::DtEntityMapperKey mapperKeyConversion(const DtEntityMapperKey&, int force); 00250 extern DT_DLL_entityeditorimpl makVrf::DtEntityMapperKey mapperKeyConversion(const DtObjectType&, int force); 00251 00252 #endif