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

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)