VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
c7bReader.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1999 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: c7b.h,v $ $Revision: 1.23 $ $State: Exp $
7 *******************************************************************************/
8 #ifndef c7bReader_H_
9 #define c7bReader_H_
10 
11 #include "ctdb/ctdbDefines.h"
12 #ifdef WIN32
13 #include <float.h>
14 #define isAValidFloat(x) (!_isnan(x))
15 #else
16 #include <math.h>
17 #define isAValidFloat(x) (!isnan(x))
18 #endif
19 
20 #include "gdb/terrainReader.h"
21 #include <vlutil/vlFilename.h>
22 #include "geometry/point.h"
23 #include "ctdb/c7NetTypes.h"
24 #include <vlutil/vlList.h>
26 
27 class DtC7bHeader;
28 class DtC7bAuxHeader;
29 class DtC7bGeoid;
31 class DtC7bNode;
32 class DtC7bEdge;
34 class DtC7bLinearModel;
35 class DtC7bVolumeModel;
36 class DtC7bAggModel;
37 class DtC7bMesTemplate;
38 class DtC7bMesVolume;
39 class DtC7bPatTable;
40 class DtC7bWaterChars;
41 class DtC7bElevation;
42 class DtC7bGroup;
43 
44 class DtSurfaceManager;
45 class DtGridPostList;
46 class DtGroup;
47 
48 class DtVectorNetwork;
49 class DtNetworkNode;
50 
51 
53 {
54 public:
55 
56  DtC7bReader();
57  ~DtC7bReader();
58 
59  // Loads terrain database file named filename, returning the data in
60  // terrain. The terrain pointer passed in must be initialized before calling
61  // loadTerrain.
62  virtual bool loadTerrain(const DtFilename& filename,
63  DtTerrainDatabase* terrain);
64 
65  // Loads terrain database file named filename, returning the data in
66  // terrain. The initializer object is used to pass in additional information
67  // about the terrain to be loaded. The terrain pointer passed in must be
68  // initialized before calling loadTerrain.
69  virtual bool loadTerrain(const DtFilename& filename,
70  DtTerrainDatabase* terrain,
71  const DtTerrainInitializer* initializer);
72 
73  // Returns "c7b"
74  virtual const DtString dataType() const;
75 
76  virtual DtVectorNetwork* localNetwork() {return myLocalNetwork;}
77  virtual DtNetworkNode* betterNode(DtPoint &point, unsigned specID);
78 
79  static DtTerrainReader* create();
80 
81  // Returns only the coordinate system that would define this database. Should not load
82  // any polygonal or vector information
83  virtual Coordinate_System* coordinateSystem(const DtFilename& filename);
84 
85  protected:
86 
87  virtual bool setupAndReadHeader(const DtFilename&, DtNetworkByteOrderType&);
88  virtual void cleanUpC7b();
89  virtual bool read(const DtFilename &filename);
90  virtual bool readPatchGroupHeaders();
91  virtual bool readTopology();
92  virtual bool readQuadTree();
93  virtual bool readLinearModels();
94  virtual bool readVolumeModels();
95  virtual bool readAggregateModels();
96  virtual bool readMes();
97  virtual bool readMesTemplates();
98  virtual bool readMesVolumes();
99  virtual bool readSoilTables();
100  virtual bool readWaterChars();
101  virtual bool readTidalZones();
102  virtual bool readElevations();
103  virtual bool readAllPatchData();
104 
105  virtual bool import();
106  virtual bool buildSurfaceManager();
107  virtual bool createFromGrid();
108  virtual bool createFromTin();
109  virtual bool createGridElevationData(DtGroup* group);
110  virtual bool createGroupGrid(DtGroup* group);
111  virtual bool importFeatures();
112  virtual bool importFeatureData();
113  virtual bool triangulateGridData();
114  virtual bool importAbstractData();
115 
116  virtual void calculateMaxMinHigh();
117 
118  virtual int optionalFileFlags(const DtFilename& filename)
119  {
120  return 0;
121  }
122 
123 public:
124 
139  DtNetU8 *myC7bSoilTables;
146 
165 
166  double myMaxHigh;
167  double myMinHigh;
168  double myLenHigh;
169  double myPatchSize;
170 
171  long myBaseX;
172  long myBaseY;
173  long myStepX;
174  long myStepY;
175 
176  FILE* myFile;
177 
181 
182  DtList myNodeLists[10][10];
184 
185  static const unsigned int theNumColorGradations;
196 };
197 
198 #endif
199 
Definition: c7bReader.h:52
int myNumWaterChars
Definition: c7bReader.h:161
Definition: c7bPatchGroupHeader.h:34
DtC7bAggModel * myC7bAggModels
Definition: c7bReader.h:135
static DtSpecificationID thePipelineSpec
Definition: c7bReader.h:193
virtual DtVectorNetwork * localNetwork()
Definition: c7bReader.h:76
static DtSpecificationID theRiverSpec
Definition: c7bReader.h:186
int myNumMesVolumes
Definition: c7bReader.h:158
Definition: c7bLinearModel.h:46
int myNumVolumeModels
Definition: c7bReader.h:154
static DtSpecificationID theFencesSpec
Definition: c7bReader.h:191
DtC7bMesVolume * myC7bMesVolumes
Definition: c7bReader.h:137
int myPatchesHigh
Definition: c7bReader.h:148
unsigned int DtSpecificationID
Definition: specificationManager.h:22
Definition: group.h:28
DtC7NetFloat32 * myC7bTidalZones
Definition: c7bReader.h:142
Definition: c7bAuxHeader.h:30
static DtSpecificationID theTreesSpec
Definition: c7bReader.h:190
bool mySourceIsLittleEndian
Definition: c7bReader.h:183
Definition: c7bPatTable.h:29
Definition: c7bEdge.h:30
DtNetU8 * myC7bSoilTables
Definition: c7bReader.h:139
DtC7bGroup * myC7bGroups
Definition: c7bReader.h:145
Definition: c7bAbstractFeature.h:40
int mySizeSoilTables
Definition: c7bReader.h:160
static DtSpecificationID theBoundarySpec
Definition: c7bReader.h:195
long myStepY
Definition: c7bReader.h:174
DtSurfaceManager * mySurfaceManager
Definition: c7bReader.h:178
static DtSpecificationID theMicrowaterSpec
Definition: c7bReader.h:192
int myNumTidalZones
Definition: c7bReader.h:162
long myStepX
Definition: c7bReader.h:173
Definition: c7bNode.h:29
Definition: c7bElevation.h:25
Network-order 32-bit IEEE-754 floating-point quantity.
Definition: c7NetTypes.h:106
DtC7bEdge * myC7bEdges
Definition: c7bReader.h:130
long myBaseX
Definition: c7bReader.h:171
static const unsigned int theNumColorGradations
Definition: c7bReader.h:185
DtC7bHeader * myC7bHeader
Definition: c7bReader.h:125
DtC7bAuxHeader * myC7bAuxHeader
Definition: c7bReader.h:126
Definition: gridPostList.h:51
int myNumAggModels
Definition: c7bReader.h:156
DtC7bWaterChars * myC7bWaterChars
Definition: c7bReader.h:141
static DtSpecificationID theRoadSpec
Definition: c7bReader.h:187
#define DT_DLL_ctdb
Definition: ctdbDefines.h:23
Definition: c7bMesTemplate.h:63
virtual const DtString dataType() const =0
Definition: c7bGroup.h:33
virtual bool loadTerrain(const DtFilename &filename, DtTerrainDatabase *terrain)=0
DtC7NetU32 * myC7bSoilTableIndex
Definition: c7bReader.h:138
int myNumPatchGroups
Definition: c7bReader.h:149
virtual int optionalFileFlags(const DtFilename &filename)
Definition: c7bReader.h:118
Definition: networkNode.h:38
double myPatchSize
Definition: c7bReader.h:169
DtC7NetInt32 * myC7bSoils
Definition: c7bReader.h:144
FILE * myFile
Definition: c7bReader.h:176
Definition: coordSystem.h:54
double myMinHigh
Definition: c7bReader.h:167
int myNumNodes
Definition: c7bReader.h:150
static DtSpecificationID theTreeSpec
Definition: c7bReader.h:189
Definition: c7bMesVolume.h:43
Network-order signed 32-bit quantity.
Definition: c7NetTypes.h:86
DtC7bVolumeModel * myC7bVolumeModels
Definition: c7bReader.h:133
int myPatchesWide
Definition: c7bReader.h:147
static DtSpecificationID theRailroadSpec
Definition: c7bReader.h:188
static DtSpecificationID thePowerlineSpec
Definition: c7bReader.h:194
int myNumSoilTables
Definition: c7bReader.h:159
DtC7bGeoid * myC7bGeoid
Definition: c7bReader.h:127
Definition: surfaceManager.h:30
int myNumElevations
Definition: c7bReader.h:163
Definition: terrainReader.h:41
Definition: c7bHeader.h:33
double myMaxHigh
Definition: c7bReader.h:166
Definition: c7bVolumeModel.h:27
DtGridPostList * myGridPostList
Definition: c7bReader.h:179
double myLenHigh
Definition: c7bReader.h:168
DtC7bAbstractFeature ** myC7bAbstractFeatures
Definition: c7bReader.h:131
Definition: c7bWaterChars.h:31
long myBaseY
Definition: c7bReader.h:172
DtVectorNetwork * myLocalNetwork
Definition: c7bReader.h:180
Definition: terrainInitializer.h:16
Network-order unsigned 32-bit quantity.
Definition: c7NetTypes.h:66
Definition: c7bAggModel.h:29
virtual Coordinate_System * coordinateSystem(const DtFilename &filename)=0
Definition: terrainDatabase.h:148
DtC7bMesTemplate * myC7bMesTemplates
Definition: c7bReader.h:136
DtC7bPatTable * myC7bPatTable
Definition: c7bReader.h:140
DtC7bLinearModel * myC7bLinearModels
Definition: c7bReader.h:132
int myNumSoils
Definition: c7bReader.h:164
int myNumAbstractFeatures
Definition: c7bReader.h:152
int myNumMesTemplates
Definition: c7bReader.h:157
Definition: c7bGeoid.h:30
DtC7bNode * myC7bNodes
Definition: c7bReader.h:129
DtC7bElevation * myC7bElevations
Definition: c7bReader.h:143
DtC7bVolumeModel * myC7bMesVolumeModels
Definition: c7bReader.h:134
Definition: point.h:34
DtC7bPatchGroupHeader * myC7bPatchGroupHeaders
Definition: c7bReader.h:128
int myNumEdges
Definition: c7bReader.h:151
int myNumLinearModels
Definition: c7bReader.h:153
int myNumMesVolumeModels
Definition: c7bReader.h:155
Definition: vectorNetwork.h:37

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)