VR-Forces 4.6.1 Class Documentation
 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

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)