VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)