VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
gdbTerrainV209Reader.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2004 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: gdbTerrainV209Reader.h,v $ $Revision: 1.4 $ $State: Exp $
7 *********************************************************************/
8 
9 #ifndef gdbTerrainV209Reader_H_
10 #define gdbTerrainV209Reader_H_
11 
12 #include "gdb/gdbDefines.h"
13 #include <stdio.h>
14 #include "terrainCS/coordSystem.h"
16 #include "gdb/gdbTerrainReader.h"
17 
18 #include "gdb/terrainDatabase.h"
19 #include <vlutil/vlConfig.h>
20 #include <map>
21 
22 //forward declarations
23 class DtExtent;
24 class DtChord;
25 class DtChordBundle;
28 class DtColor;
29 class DtMemoryManager;
30 class DtAllTypesPolygon;
33 class DtNetworkNode;
34 class DtNetworkSegment;
35 class DtNetworkEdge;
37 class DtFeature;
38 class DtGroup;
39 class DtSurface;
43 
44 typedef DtGdbNode* (*DtGdbTerrainV209ReaderNodeFcn)(DtGdbNode::DtGdbNodeType, FILE* , DtGdbTerrainV209Reader* , DtGroup* );
45 
46 // class DtGdbTerrainV209Reader:
47 //
48 // DtGdbTerrainV209Reader is responsible for loading the version 205
49 // .gdb files into the system. It is used by the DtGdbTerrainReader.
50 //
51 
53 {
54 public:
55 
56  // default constructor
58 
59  // destructor
60  virtual ~DtGdbTerrainV209Reader();
61 
62 private:
63  // copy constructor and assignment operator not implemented
66 
67 public:
68 
69  static DtTerrainReader* create();
70 
71  // Returns the type of file this database was loaded from.
72  // This class returns "gdb". Override this function in derived
73  // terrain db classes.
74  virtual const DtString dataType() const;
75 
76  virtual bool readFromFile(const DtFilename& basename, DtTerrainDatabase* terrain);
77 protected:
78 
79  // I/O calls.
80 
81  virtual void resetStatistics();
82 
83  virtual bool readFrom(FILE* fp, DtTerrainDatabase* terrain);
84 
85  virtual bool readCoordinateSystem(FILE* fp);
86 
87  virtual bool validityCheckVersionNumber(unsigned int versionNumberFromFile);
88 
89  virtual DtGdbNode* readNode(FILE* fp, DtGroup* parent);
90 
91  virtual bool setReadFcn(DtGdbNode::DtGdbNodeType type, DtGdbTerrainV209ReaderNodeFcn fun);
93 
94  static DtGdbNode* readGroup(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV209Reader* me, DtGroup* parent);
95  static DtGdbNode* readPolyInd(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV209Reader* me, DtGroup* parent);
96  static DtGdbNode* readLOD(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV209Reader* me, DtGroup* parent);
97  static DtGdbNode* readDynamicCoordSys(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV209Reader* me, DtGroup* parent);
98  static DtGdbNode* readStaticCoordSys(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV209Reader* me, DtGroup* parent);
99  static DtGdbNode* readTerrainFeature(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV209Reader* me, DtGroup* parent);
100  static DtGdbNode* readCulturalFeature(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV209Reader* me, DtGroup* parent);
101  static DtGdbNode* readBuilding(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV209Reader* me, DtGroup* parent);
102  static DtGdbNode* readTree(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV209Reader* me, DtGroup* parent);
103  static DtGdbNode* readTriangleInd(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV209Reader* me, DtGroup* parent);
104  static DtGdbNode* readFileNode(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV209Reader* me, DtGroup* parent);
105 
106  virtual bool readSurface(FILE* fp, DtSurface &surface);
107  // functions to read vector networks
108  virtual bool readNetworkNode(FILE* fp, DtNetworkNode* node, std::map<uintptr_t, uintptr_t>& oldAddressToNewAddressMap);
109  virtual bool readNetworkSpecElement(FILE* fp, DtNetworkSpecificationElement* elem);
110  virtual bool readNetworkEdge(FILE* fp, DtNetworkEdge* edge, unsigned int& startNodeIndex, unsigned int& endNodeIndex);
111 
112  virtual bool readTerrainData(FILE* fp);
113  virtual bool readFeatureData(FILE* fp);
114 
115  virtual bool readSurfaceManager(FILE* fp);
116  virtual bool readSpecificationManager(FILE* fp);
117  virtual bool readVertexManager(FILE* fp);
118  virtual bool readVectorNetwork(FILE* fp);
119 
120  virtual bool readCoordSys(FILE* fp, DtBaseCoordinateSystem* coordSys);
121 
122  virtual bool readFeature(FILE* fp, DtFeature* feature);
123 
124  // While reading a GDB file, reports whether this database will contain
125  // optional data
126  bool fileHasOptionalData(DtTerrainFileOptionalData optData);
127 
128  virtual bool readSpheroidInformation(FILE* fp);
129 protected:
130 
131  // For debugging purposes - prints out the numbers of the different nodes
132  // and other file data (number of specifications, vertices, etc.) read in
133  virtual void printReadNodeCount();
134 
137 
139 };
140 
141 // While reading a GDB file, reports whether this database will contain
142 // optional data
145 {
146  if (myOptionalDataFlagFromFile & optData)
147  {
148  return true;
149  }
150  else
151  {
152  return false;
153  }
154 }
155 
156 #endif
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
Definition: chordIntersectionRecord.h:23
Definition: memoryManager.h:33
Definition: group.h:28
const DtGdbTerrainReader & operator=(const DtGdbTerrainReader &original)
Definition: networkSpecificationElement.h:32
Definition: chordIntersectRecordList.h:29
DtGdbNodeType
Definition: gdbNode.h:48
unsigned int myOptionalDataFlagFromFile
Definition: gdbTerrainV209Reader.h:135
bool fileHasOptionalData(DtTerrainFileOptionalData optData)
Definition: gdbTerrainV209Reader.h:143
Contains the DtGdbTerrainReader class declaration.
Definition: gdbNode.h:44
DtTerrainFileOptionalData
Definition: terrainDatabase.h:83
virtual const DtString dataType() const
Returns the type of file this database was loaded from. This class returns &quot;gdb&quot;. Override this funct...
unsigned int myTerrainIntersectionMethodType
Definition: gdbTerrainV209Reader.h:136
Definition: networkSegment.h:26
Definition: gdbTerrainV209Reader.h:52
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
Definition: allTypesPolygon.h:22
Definition: surface.h:181
#define DT_DLL_gdb
Definition: gdbDefines.h:25
Definition: color.h:25
Definition: networkNode.h:38
DtGdbTerrainV209ReaderNodeFcn * myReaderFunctionTable
Definition: gdbTerrainV209Reader.h:138
Definition: feature.h:26
The DtGdbTerrainReader class is responsible for loading a GDB terrain database from file...
Definition: gdbTerrainReader.h:29
virtual bool readCoordinateSystem(FILE *fp)
Definition: chordBundle.h:29
Definition: terrainReader.h:41
Definition: networkEdge.h:28
Definition: terrainInitializer.h:16
Definition: baseCoordinateSystem.h:27
static DtTerrainReader * create()
Definition: extentInitializer.h:22
Definition: terrainDatabase.h:148
virtual bool readFromFile(const DtFilename &basename, DtTerrainDatabase *terrain)
Definition: gdbReaderInitializer.h:23
DtGdbNode *(* DtGdbTerrainV209ReaderNodeFcn)(DtGdbNode::DtGdbNodeType, FILE *, DtGdbTerrainV209Reader *, DtGroup *)
Definition: gdbTerrainV209Reader.h:44

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)