VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
tdbManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2025 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #ifndef tdbManager_H_
7 #define tdbManager_H_
8 
9 // \file tdbManager.h
10 // \brief This file contains the declaration of the DtTdbManager class.
11 
13 #include "gdb/terrainSelection.h"
14 
15 class DtList;
16 class DtTerrainDatabase;
17 class DtPaperMapDatabase;
18 class DtString;
19 class DtFilename;
20 
21 class Coordinate_System;
22 class DtExtent;
23 class DtTerrainDbFactory;
24 class DtTdbMetafile;
25 class DtNetworkElement;
27 class DtPaperMap;
28 class DtPaperMapRecord;
29 class DtTdbManager;
30 class Coordinate_System;
31 
33  Coordinate_System*, DtPaperMap*&, void*);
34 
46 {
47 
48 public:
49 
51  DtTdbManager();
52 
55 
57  virtual ~DtTdbManager();
58 
59 private:
60 
63  DtTdbManager(const DtTdbManager& orig);
64  DtTdbManager& operator=(const DtTdbManager& rhs);
65 
66 public:
67 
72  virtual bool load(const DtFilename& filename, const DtList &searchPaths, DtString* errorString = 0);
73 
75  virtual bool load(const DtFilename & filename,const DtFilename & path=DtFilename::nullFilename(), DtString* errorString = 0);
76 
78  virtual bool load(DtTdbMetafile& tdbMeta,const DtFilename & path=DtFilename::nullFilename(), DtString* errorString = 0 );
79 
80  // Returns a coordinate system from the specified file. Use this call rather than load if all you are interested in
81  // is the coordinate system. Note that you will need to delete the coordinate system object returned to prevent a
82  // memory leak
83  virtual Coordinate_System* coordinateSystemFrom(const DtFilename&,
84  const DtFilename & path=DtFilename::nullFilename(), DtString* errorString = 0);
85 
86  // Returns true if the flags are set in the specified database
87  virtual bool hasOptionalFlags(int flags, const DtFilename&,
88  const DtFilename & path=DtFilename::nullFilename(), DtString* errorString = 0);
89 
93  virtual bool loadPapermaps(DtTdbMetafile& tdbMeta, DtTerrainDatabase* db, const DtFilename & path=DtFilename::nullFilename());
94 
96  virtual bool save(const DtFilename& filename);
97 
99  virtual bool exportPoly(const DtFilename& filename);
100 
105  virtual bool createDatabaseFromExtent(const DtExtent&, Coordinate_System* coordSys = 0);
106 
110  virtual bool unload();
111 
113 
114  virtual bool selectTerrain(const DtVector& localLocation,
115  DtTerrainSelection& terrainSelection);
116 
117  virtual bool selectTerrain(double lat, double lon,
118  DtTerrainSelection& terrainSelection);
119 
120  virtual bool selectTerrain(const DtExtent& extent,
121  DtTerrainSelection& terrainSelection, bool selectInclusive = true);
122  virtual bool selectTerrain(const DtNetworkElement& networkElement,
123  DtTerrainSelection& terrainSelection, bool selectInclusive = true);
125 
129  virtual bool processDatabase(DtTerrainDatabase& terrainDatabase,
130  const DtGdbProcessingMetafileRecord& postProcessingRecord) const;
131 
133  virtual void setTerrainFactory(DtTerrainDbFactory* fac);
134  virtual DtTerrainDbFactory* terrainDbFactory();
135 
137  virtual const DtTerrainDatabase* terrainDatabase() const;
138  virtual DtTerrainDatabase* terrainDatabase();
139  virtual void setTerrainDatabase(DtTerrainDatabase* t);
140 
142  virtual const DtPaperMapDatabase* paperMapDatabase() const;
143  virtual DtPaperMapDatabase* paperMapDatabase();
144  virtual void setPaperMapDatabase(DtPaperMapDatabase* p);
145 
147  static DtTdbManager* create(DtTerrainDbFactory*);
148 
150  virtual DtTerrainDatabase* createTerrainDatabase();
151 
153  void setCheckImageForValidityCallback(DtCheckImageForValidityCallbackFcn, void*);
154  DtCheckImageForValidityCallbackFcn checkImageForValidityCallback(void*& userPtr) const;
155 
161  virtual bool loadFor3DVisualization(const DtFilename& filename,
162  Coordinate_System* targetCoordinateSystem = 0, DtString* errorString = 0);
163 
164  // Loads feature data from the specified feature data source, and merges them
165  // into the specified terrain database.
166  // Loads from: GDB, .dfd, and .shp files.
167  virtual bool loadFeatureDataIntoTerrain(const DtFilename& featureDataFilename,
168  DtTerrainDatabase& terrainDb, bool crop = false, bool planarize = true);
169 
170  // \return myLoadedTerrainFilename.
171  virtual DtString loadedTerrainFilename() const;
172 
173  // \brief Sets a flag indicating that paged terrains should be fully loaded.
174  virtual void setFullyLoad(bool);
175  virtual bool fullyLoad() const;
176 protected:
177 
183 
184  // The filename of the terrain that was passed into the load() method
185  // to load the terrain. If a metafile was passed in, this will be the name stored.
187 
189 };
190 
191 #endif
192 
Definition: terrainDbFactory.h:39
Definition: tdbMetafile.h:37
DtTerrainDbFactory * myTerrainDbFactory
Definition: tdbManager.h:178
bool(* DtCheckImageForValidityCallbackFcn)(const DtTerrainDatabase *, const DtString &path, DtPaperMap *, DtPaperMapRecord *, Coordinate_System *, DtPaperMap *&, void *)
Definition: tdbManager.h:32
The DtTdbManager class is intended to be used as a single point of interface to a terrain database...
Definition: tdbManager.h:45
DtPaperMapDatabase * myPaperMapDatabase
Definition: tdbManager.h:180
Contains the typedefs and related functions that comprise the DtTerrainSelection interface.
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
std::set< DtTerrainElement * > DtTerrainSelection
A DtTerrainSelection is a collection of DtTerrainElements, which have been selected, presumably by the user in order to perform an operation on them. Used most commonly by the terrain selection tool in order to allow the user to set soil types in the Terrain Database Tool application.
Definition: terrainSelection.h:35
Definition: coordSystem.h:54
Definition: gdbProcessingMetafileRecord.h:27
Definition: paperMapRecord.h:22
Definition: paperMapDatabase.h:20
DtString myLoadedTerrainFilename
Definition: tdbManager.h:186
DtTerrainDatabase * myTerrainDatabase
Definition: tdbManager.h:179
Definition: paperMap.h:31
bool myFullyLoad
Definition: tdbManager.h:188
#define DT_DLL_terrainDbFactory
Definition: terrainDbFactoryDefines.h:23
DtCheckImageForValidityCallbackFcn myCheckImageForValidityCallback
Definition: tdbManager.h:181
void * myCheckImageForValidityCallbackData
Definition: tdbManager.h:182
Definition: terrainDatabase.h:148
Definition: networkElement.h:38

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)