![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1998 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: tdbManager.h,v $ $Revision: 1.23 $ $State: Exp $ 00007 *******************************************************************************/ 00008 #ifndef tdbManager_H_ 00009 #define tdbManager_H_ 00010 00011 // \file tdbManager.h 00012 // \brief This file contains the declaration of the DtTdbManager class. 00013 00014 #include "terrainDbFactory/terrainDbFactoryDefines.h" 00015 #include "gdb/terrainSelection.h" 00016 00017 class DtList; 00018 class DtTerrainDatabase; 00019 class DtPaperMapDatabase; 00020 class DtString; 00021 class DtFilename; 00022 00023 class Coordinate_System; 00024 class DtExtent; 00025 class DtTerrainDbFactory; 00026 class DtTdbMetafile; 00027 class DtNetworkElement; 00028 class DtGdbProcessingMetafileRecord; 00029 class DtPaperMap; 00030 class DtPaperMapRecord; 00031 class DtTdbManager; 00032 class Coordinate_System; 00033 00034 typedef bool(*DtCheckImageForValidityCallbackFcn)(const DtTerrainDatabase*, const DtString& path, DtPaperMap*, DtPaperMapRecord*, 00035 Coordinate_System*, DtPaperMap*&, void*); 00036 00047 class DT_DLL_terrainDbFactory DtTdbManager 00048 { 00049 00050 public: 00051 00053 DtTdbManager(); 00054 00056 DtTdbManager(DtTerrainDbFactory* fac); 00057 00059 virtual ~DtTdbManager(); 00060 00061 private: 00062 00065 DtTdbManager(const DtTdbManager& orig); 00066 DtTdbManager& operator=(const DtTdbManager& rhs); 00067 00068 public: 00069 00074 virtual bool load(const DtFilename& filename, const DtList &searchPaths, DtString* errorString = 0); 00075 00077 virtual bool load(const DtFilename & filename,const DtFilename & path=DtFilename::nullFilename(), DtString* errorString = 0); 00078 00080 virtual bool load(DtTdbMetafile& tdbMeta,const DtFilename & path=DtFilename::nullFilename(), DtString* errorString = 0 ); 00081 00082 // Returns a coordinate system from the specified file. Use this call rather than load if all you are interested in 00083 // is the coordinate system. Note that you will need to delete the coordinate system object returned to prevent a 00084 // memory leak 00085 virtual Coordinate_System* coordinateSystemFrom(const DtFilename&, 00086 const DtFilename & path=DtFilename::nullFilename(), DtString* errorString = 0); 00087 00088 // Returns true if the flags are set in the specified database 00089 virtual bool hasOptionalFlags(int flags, const DtFilename&, 00090 const DtFilename & path=DtFilename::nullFilename(), DtString* errorString = 0); 00091 00095 virtual bool loadPapermaps(DtTdbMetafile& tdbMeta, DtTerrainDatabase* db, const DtFilename & path=DtFilename::nullFilename()); 00096 00098 virtual bool save(const DtFilename& filename); 00099 00101 virtual bool exportPoly(const DtFilename& filename); 00102 00107 virtual bool createDatabaseFromExtent(const DtExtent&, Coordinate_System* coordSys = 0); 00108 00112 virtual bool unload(); 00113 00115 00116 virtual bool selectTerrain(const DtVector& localLocation, 00117 DtTerrainSelection& terrainSelection); 00118 00119 virtual bool selectTerrain(double lat, double lon, 00120 DtTerrainSelection& terrainSelection); 00121 00122 virtual bool selectTerrain(const DtExtent& extent, 00123 DtTerrainSelection& terrainSelection, bool selectInclusive = true); 00124 virtual bool selectTerrain(const DtNetworkElement& networkElement, 00125 DtTerrainSelection& terrainSelection, bool selectInclusive = true); 00127 00131 virtual bool processDatabase(DtTerrainDatabase& terrainDatabase, 00132 const DtGdbProcessingMetafileRecord& postProcessingRecord) const; 00133 00135 virtual void setTerrainFactory(DtTerrainDbFactory* fac); 00136 virtual DtTerrainDbFactory* terrainDbFactory(); 00137 00139 virtual const DtTerrainDatabase* terrainDatabase() const; 00140 virtual DtTerrainDatabase* terrainDatabase(); 00141 virtual void setTerrainDatabase(DtTerrainDatabase* t); 00142 00144 virtual const DtPaperMapDatabase* paperMapDatabase() const; 00145 virtual DtPaperMapDatabase* paperMapDatabase(); 00146 virtual void setPaperMapDatabase(DtPaperMapDatabase* p); 00147 00149 static DtTdbManager* create(DtTerrainDbFactory*); 00150 00152 virtual DtTerrainDatabase* createTerrainDatabase(); 00153 00155 void setCheckImageForValidityCallback(DtCheckImageForValidityCallbackFcn, void*); 00156 DtCheckImageForValidityCallbackFcn checkImageForValidityCallback(void*& userPtr) const; 00157 00163 virtual bool loadFor3DVisualization(const DtFilename& filename, 00164 Coordinate_System* targetCoordinateSystem = 0, DtString* errorString = 0); 00165 00166 // Loads feature data from the specified feature data source, and merges them 00167 // into the specified terrain database. 00168 // Loads from: GDB, .dfd, and .shp files. 00169 virtual bool loadFeatureDataIntoTerrain(const DtFilename& featureDataFilename, 00170 DtTerrainDatabase& terrainDb); 00171 00172 // \return myLoadedTerrainFilename. 00173 virtual DtString loadedTerrainFilename() const; 00174 00175 // \brief Sets a flag indicating that paged terrains should be fully loaded. 00176 virtual void setFullyLoad(bool); 00177 virtual bool fullyLoad() const; 00178 protected: 00179 00180 DtTerrainDbFactory* myTerrainDbFactory; 00181 DtTerrainDatabase* myTerrainDatabase; 00182 DtPaperMapDatabase* myPaperMapDatabase; 00183 DtCheckImageForValidityCallbackFcn myCheckImageForValidityCallback; 00184 void* myCheckImageForValidityCallbackData; 00185 00186 // The filename of the terrain that was passed into the load() method 00187 // to load the terrain. If a metafile was passed in, this will be the name stored. 00188 DtString myLoadedTerrainFilename; 00189 00190 bool myFullyLoad; 00191 }; 00192 00193 #endif 00194