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

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)