![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: terrainAppEventController.h,v $ $Revision: 1.21 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef TERRAINAPPEVENTCONTROLLER_H_ 00013 #define TERRAINAPPEVENTCONTROLLER_H_ 00014 00015 #include "tmEventHandler/tmAppEventController.h" 00016 00017 class DtTerrainDatabase; 00018 class DtTdbManager; 00019 class DtTerrainFactory; 00020 class DtTerrainWindow; 00021 class DtTerrainDbFactory; 00022 class DtTerrainReaderFactory; 00023 class DtTdbMetafileFactory; 00024 class DtPaperMapFactory; 00025 class DtVectorDataFactory; 00026 class DtPaperMapDatabase; 00027 class DtTerrainWriterFactory; 00028 class DtFilename; 00029 class DtPaperMapDatabase; 00030 class DtExtent; 00031 00032 #include "terrainEventHandler/terrainEventHandlerDefines.h" 00033 class DT_DLL_terrainEventHandler DtTerrainAppEventController : public DtTMAppEventController 00034 { 00035 Q_OBJECT 00036 00037 public: 00038 00040 DtTerrainAppEventController(); 00041 00043 virtual ~DtTerrainAppEventController(); 00044 00046 virtual DtTdbManager* tdbManager() const; 00047 00048 virtual const DtTerrainDatabase* terrainDatabase() const; 00049 virtual DtTerrainDatabase* terrainDatabase(); 00050 00051 virtual const DtPaperMapDatabase* paperMapDatabase() const; 00052 virtual DtPaperMapDatabase* paperMapDatabase(); 00053 00054 virtual void setDatabaseDirty(bool b); 00055 virtual bool databaseDirty() const; 00056 00058 virtual void closeDatabase(); 00059 00061 virtual void databaseSaved(const QString& name); 00062 00065 static void terrainModified(DtTerrainDatabase* terrain, 00066 const DtExtent& changedVolume, void* usrData); 00067 virtual void processTerrainModified(DtTerrainDatabase* terrain, 00068 const DtExtent& changedVolume); 00069 00072 virtual void preloadDatabase(DtFilename& name); 00073 00076 virtual void createDatabaseFromExtent(const DtExtent& extent); 00079 DtTerrainDbFactory* terrainDatabaseFactory(); 00080 00081 signals: 00082 00083 void terrainDatabaseSet(const DtTerrainDatabase* t); 00084 void paperMapLoaded(const DtPaperMapDatabase* p); 00085 void terrainDatabaseModified(DtTerrainDatabase* t, 00086 const DtExtent& extent); 00087 00089 void databaseDirty(bool); 00090 void databaseWasSaved(const QString&); 00091 00092 public slots: 00093 00097 virtual bool processFileOpenDatabase(); 00098 virtual void processFileCloseDatabase(bool askConvert = true); 00099 virtual void processFileSaveDatabase(); 00100 virtual void processFileSaveAsDatabase(); 00101 00102 virtual int processDirtyDatabase(); 00103 virtual void processTerrainDatabaseInformation(); 00104 00106 virtual bool openDatabase(QString database); 00107 00109 virtual void processToggleViewPolygons(bool toggle); 00110 00112 virtual void processToggleViewFeatures(bool); 00113 00115 virtual void processToggleViewWireframe(bool toggle); 00116 00118 virtual void processToggleViewContourLines(bool toggle); 00119 00121 virtual void processToggleViewTerrainShading(bool toggle); 00122 00124 virtual void processToggleViewPaperMaps(bool toggle); 00125 00127 virtual void processToggleColorPolygonsUsingSoilType(bool toggle); 00128 00129 public: 00130 static DtEventController* create(); 00131 00132 protected: 00134 virtual void initFactories(); 00135 00139 virtual void completeDatabaseOpen(); 00140 00141 virtual void aboutToQuit(); 00142 00150 virtual void checkConvertDatabase(); 00151 00154 virtual bool shouldAskDatabaseSave() const; 00155 00156 protected: 00157 00159 DtTerrainDbFactory * myTerrainDbFactory; 00160 DtTerrainReaderFactory * myTerrainReaderFactory; 00161 DtTerrainWriterFactory * myTerrainWriterFactory; 00162 DtTdbMetafileFactory * myMetafileFactory; 00163 DtPaperMapFactory * myPaperMapFactory; 00164 DtVectorDataFactory * myVectorDataFactory; 00165 00166 DtTdbManager * myTdbManager; 00167 00168 bool myDatabaseDirty; 00169 00171 bool myDBConverted; 00172 00174 bool myConvertingDatabase; 00175 }; 00176 00177 #endif //TERRAINAPPEVENTCONTROLLER_H_ 00178