VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
gdbTerrainV205Reader.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2004 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: gdbTerrainV205Reader.h,v $ $Revision: 1.19 $ $State: Exp $
7 *********************************************************************/
8 
9 #ifndef gdbTerrainV205Reader_H_
10 #define gdbTerrainV205Reader_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"
20 #include <vlutil/vlConfig.h>
21 #include <map>
22 
23 //forward declarations
24 class DtExtent;
25 class DtChord;
26 class DtChordBundle;
29 class DtColor;
30 class DtMemoryManager;
31 class DtAllTypesPolygon;
34 class DtNetworkNode;
35 class DtNetworkSegment;
36 class DtNetworkEdge;
38 class DtFeature;
39 class DtGroup;
40 class DtSurface;
44 
45 typedef DtGdbNode* (*DtGdbTerrainV205ReaderNodeFcn)(DtGdbNode::DtGdbNodeType, FILE* , DtGdbTerrainV205Reader* , DtGroup* );
46 
47 // class DtGdbTerrainV205Reader:
48 //
49 // DtGdbTerrainV205Reader is responsible for loading the version 205
50 // .gdb files into the system. It is used by the DtGdbTerrainReader.
51 //
52 
54 {
55 public:
56 
57  // default constructor
59 
60  // destructor
61  virtual ~DtGdbTerrainV205Reader();
62 
63 private:
64  // copy constructor and assignment operator not implemented
67 
68 public:
69 
70  static DtTerrainReader* create();
71 
72  // Returns the type of file this database was loaded from.
73  // This class returns "gdb". Override this function in derived
74  // terrain db classes.
75  virtual const DtString dataType() const;
76 
77  virtual bool readFromFile(const DtFilename& basename, DtTerrainDatabase* terrain);
78 protected:
79 
80  // I/O calls.
81 
82  virtual void resetStatistics();
83 
84  virtual bool readFrom(FILE* fp, DtTerrainDatabase* terrain);
85 
86  virtual bool readCoordinateSystem(FILE* fp);
87 
88  virtual bool validityCheckVersionNumber(unsigned int versionNumberFromFile);
89 
90  virtual DtGdbNode* readNode(FILE* fp, DtGroup* parent);
91 
92  virtual bool setReadFcn(DtGdbNode::DtGdbNodeType type, DtGdbTerrainV205ReaderNodeFcn fun);
94 
95  static DtGdbNode* readGroup(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV205Reader* me, DtGroup* parent);
96  static DtGdbNode* readPolyInd(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV205Reader* me, DtGroup* parent);
97  static DtGdbNode* readLOD(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV205Reader* me, DtGroup* parent);
98  static DtGdbNode* readDynamicCoordSys(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV205Reader* me, DtGroup* parent);
99  static DtGdbNode* readStaticCoordSys(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV205Reader* me, DtGroup* parent);
100  static DtGdbNode* readTerrainFeature(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV205Reader* me, DtGroup* parent);
101  static DtGdbNode* readCulturalFeature(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV205Reader* me, DtGroup* parent);
102  static DtGdbNode* readBuilding(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV205Reader* me, DtGroup* parent);
103  static DtGdbNode* readTree(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV205Reader* me, DtGroup* parent);
104  static DtGdbNode* readTriangleInd(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV205Reader* me, DtGroup* parent);
105  static DtGdbNode* readFileNode(DtGdbNode::DtGdbNodeType type, FILE* fp, DtGdbTerrainV205Reader* me, DtGroup* parent);
106 
107  virtual bool readSurface(FILE* fp, DtSurface &surface);
108  // functions to read vector networks
109  virtual bool readNetworkNode(FILE* fp, DtNetworkNode* node, std::map<uintptr_t, uintptr_t>& oldAddressToNewAddressMap);
110  virtual bool readNetworkSpecElement(FILE* fp, DtNetworkSpecificationElement* elem);
111  virtual bool readNetworkEdge(FILE* fp, DtNetworkEdge* edge, unsigned int& startNodeIndex, unsigned int& endNodeIndex);
112 
113  virtual bool readTerrainData(FILE* fp);
114  virtual bool readFeatureData(FILE* fp);
115 
116  virtual bool readSurfaceManager(FILE* fp);
117  virtual bool readSpecificationManager(FILE* fp);
118  virtual bool readVertexManager(FILE* fp);
119  virtual bool readVectorNetwork(FILE* fp);
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 
136 
138 };
139 
140 // While reading a GDB file, reports whether this database will contain
141 // optional data
144 {
145  if (myOptionalDataFlagFromFile & optData)
146  {
147  return true;
148  }
149  else
150  {
151  return false;
152  }
153 }
154 
155 #endif
unsigned int myOptionalDataFlagFromFile
Definition: gdbTerrainV205Reader.h:135
DtGdbTerrainV205ReaderNodeFcn * myReaderFunctionTable
Definition: gdbTerrainV205Reader.h:137
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
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...
Definition: networkSegment.h:26
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
Definition: allTypesPolygon.h:22
Definition: surface.h:179
#define DT_DLL_gdb
Definition: gdbDefines.h:25
Definition: color.h:25
Definition: networkNode.h:38
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: gdbTerrainV205Reader.h:53
Definition: chordBundle.h:29
Definition: terrainReader.h:41
bool fileHasOptionalData(DtTerrainFileOptionalData optData)
Definition: gdbTerrainV205Reader.h:142
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 *(* DtGdbTerrainV205ReaderNodeFcn)(DtGdbNode::DtGdbNodeType, FILE *, DtGdbTerrainV205Reader *, DtGroup *)
Definition: gdbTerrainV205Reader.h:45

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)