VR-Forces 4.0.4 Class Documentation
include/entityEditorImpl/simulationModelSetLoader.h
Go to the documentation of this file.
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

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)