VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtMetaFlightDescription.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: $ $Revision: $ $State: $
7 ******************************************************************************/
8 
12 
13 #pragma once
14 #include <vrvTerrain/vrvTerrain.h>
16 #include <map>
17 #include <string>
18 #include <boost/shared_ptr.hpp>
19 #include <matrix/vlVector.h>
20 class DtDegMinSec;
21 class DtCoordTransform;
22 namespace makVrv
23 {
24  class DtMetaFlightParser;
25  class DtLambertCoordinateConverter;
26 
30  {
31  public:
32 
35 
37  virtual ~DtMetaFlightDescription();
38 
40  void getPaths(std::vector<std::string>& paths);
41 
43  void parse(DtMetaFlightParser& parser);
44 
46  unsigned int numberOfGeometryDatasets() const;
47 
50  const std::string& geometryDatasetName(int index) const;
51 
53  const DtMetaFlightTypes::Position2D& geometryDatasetOrigin(
54  const std::string& dsName) const;
55 
57  const DtMetaFlightTypes::Position2D& geometryDatasetExtent(
58  const std::string& dsName) const;
59 
62  const double geometryDatasetRadius(const std::string& dsName) const;
63 
67  const std::string& geometryDatasetName(const std::string& dsName) const;
68 
71  const std::string& geometryDatasetTitle(const std::string& dsName) const;
72 
75  const std::string& geometryDatasetFileFormat(const std::string& dsName) const;
76 
78  DtMetaFlightTypes::CoordSysTypeSP geometryDatasetDataCoordinateSystem(
79  const std::string& dsName) const;
80 
83  const std::string& geometryDatasetFileNamePattern(const std::string& dsName) const;
84 
86  DtMetaFlightTypes::CoordSysTypeSP geometryDatasetGridCoordinateSystem(
87  const std::string& dsName) const;
88 
90  const DtMetaFlightTypes::HierarchyType& geometryDatasetGridHierarchyType(
91  const std::string& dsName) const;
92 
95  unsigned int numberOfGeometryGridLevels(const std::string& dsName) const;
96 
99  const std::string& geometryGridLevelName(const std::string& dsName,
100  int index) const;
101 
104  DtMetaFlightTypes::TileType geometryGridLevelTileType(
105  const std::string& dsName, int index) const;
106 
108  unsigned int geometryGridLevelColumns(const std::string& dsName,
109  int index) const;
110 
113  unsigned int geometryGridLevelColDivisions(const std::string& dsName,
114  int index) const;
115 
117  unsigned int geometryGridLevelRows(const std::string& dsName,
118  int index) const;
119 
122  unsigned int geometryGridLevelRowDivisions(const std::string& dsName,
123  int index) const;
124 
127  double geometryGridLevelSwitchIn(const std::string& dsName, int index) const;
128 
131  double geometryGridLevelSwitchOut(const std::string& dsName, int index) const;
132 
136  void geometryGridTileCenter(const std::string& dsName, unsigned int level,
137  unsigned int row, unsigned int column,
138  double& centerX, double& centerY, double& centerZ) const;
139 
142  static void convertPosition(
143  const DtMetaFlightTypes::CoordSysTypeSP& sourceCoordSystem,
144  const DtMetaFlightTypes::CoordSysTypeSP& destCoordSystem,
145  double& centerX, double& centerY, double& centerZ);
146 
150  void geometryGridTileOffset(const std::string& dsName, unsigned int level,
151  unsigned int row, unsigned int column,
152  double& offsetX, double& offsetY, double& offsetZ) const;
153 
157  std::string generateGeometryGridTileFilename(const std::string& dsName,
158  int index, unsigned int row, unsigned int column) const;
159 
161  unsigned int numberOfVirtualTextureDatasets() const;
162 
165  const std::string& virtualTextureDatasetName(int index) const;
166 
168  DtMetaFlightTypes::CoordSysTypeSP virtualTextureCoordinateSystem(
169  const std::string& dsName) const;
170 
173  DtMetaFlightTypes::Position2D virtualTextureDatasetOrigin(
174  const std::string& dsName) const;
175 
178  DtMetaFlightTypes::Position2D virtualTextureDatasetOrigin(
179  const std::string& dsName,
180  const DtMetaFlightTypes::CoordSysTypeSP& system) const;
181 
184  DtMetaFlightTypes::Position2D virtualTextureDatasetExtent(
185  const std::string& dsName) const;
186 
189  DtMetaFlightTypes::Position2D virtualTextureDatasetExtent(
190  const std::string& dsName,
191  const DtMetaFlightTypes::CoordSysTypeSP& system) const;
192 
195  const std::string& virtualTextureDatasetTitle(const std::string& dsName) const;
196 
199  const std::string& virtualTextureDatasetFileFormat(const std::string& dsName) const;
200 
203  const std::string& virtualTextureDatasetFileNamePattern(const std::string& dsName) const;
204 
207  unsigned int virtualTextureDatasetTileTexels(const std::string& dsName) const;
208 
211  const std::string& virtualTextureDatasetSubstitutionTextureName(
212  const std::string& dsName) const;
213 
216  unsigned int numberOfVirtualTextureGridLevels(const std::string& dsName) const;
217 
220  const std::string& virtualTextureGridLevelName(const std::string& dsName,
221  int index) const;
222 
224  unsigned int virtualTextureGridLevelColumns(const std::string& dsName,
225  int index) const;
226 
229  unsigned int virtualTextureGridLevelColDivisions(const std::string& dsName,
230  int index) const;
231 
233  unsigned int virtualTextureGridLevelRows(const std::string& dsName,
234  int index) const;
235 
238  unsigned int virtualTextureGridLevelRowDivisions(const std::string& dsName,
239  int index) const;
240 
244  std::string generateVirtualTextureFileName(const std::string& dsName,
245  int index, unsigned int row, unsigned int column) const;
246 
248  const std::string& virtualTexturePath() const;
249 
251  inline const DtMetaFlightTypes::Database* database() const
252  {
253  return myDatabase;
254  }
255 
256  struct StringOrInt
257  {
258  bool isString;
259  std::string s_data;
260  int i_data;
261 
262  void operator=(const std::string& str)
263  {
264  isString = true;
265  s_data = str;
266  }
267 
268  void operator=(int i)
269  {
270  isString = false;
271  i_data = i;
272  }
273  };
274  typedef std::map<std::string, StringOrInt> PatternMap;
275 
276  static std::string generateFileName(const std::string& filenamePattern,
277  const PatternMap& patternMap);
278 
279  protected:
280 
281  static void setLonDtDegMinSecFromDegrees(DtDegMinSec& dmslon, double deg);
282  static void setDtDegMinSecFromDegrees(DtDegMinSec& dms, double deg);
283  static void setLatDtDegMinSecFromDegrees(DtDegMinSec& dmslat, double deg);
284 
286  virtual void getLCCTileCenter(const std::string& dsName, unsigned int row, unsigned int column,
287  unsigned int rows, unsigned int columns,
288  double& centerX, double& centerY, double& centerZ)const;
289 
290  protected:
291  //This is a class hold the intermediate parameters
292  //Internal used to calculate the center for each grid
293  //for a LCC projection
295  {
296  public:
298  virtual ~LambertCCParameters();
299  void initialize(const std::string& dsName, const DtMetaFlightTypes::Origin& origin, const DtMetaFlightTypes::Extent& extent,
300  int rows, int columns,
301  DtMetaFlightTypes::ProjectedCoordSysSP projectedSourceCoordSys);
302  bool initialized();
303  double bottomLeftLon();
304  double bottomLeftLan();
305  double deltaWidth();
306  double deltaHeight();
307  void convertGeodeticToLCC(double lon, double lat, double& x, double& y, double& z);
308  protected:
310  std::string myDatabaseName;
311  double myDeltaWidth;
318  };
319 
320  //databaseName->LCCParameters
321  typedef std::map<std::string, LambertCCParameters> LCCParametersMap;
322 
323  std::string myFilePath;
324  std::string myDirOfFilePath;
326  std::string myVtFilePath;
327  std::string myDirOfVtFilePath;
330  };
331 }
const DtMetaFlightTypes::Database * database() const
Get the database object.
Definition: DtMetaFlightDescription.h:251
double myDeltaWidth
Definition: DtMetaFlightDescription.h:311
void operator=(const std::string &str)
Definition: DtMetaFlightDescription.h:262
Contains makVrv::DtMetaFlightTypes class.
boost::shared_ptr< CoordSysType > CoordSysTypeSP
Definition: DtMetaFlightTypes.h:299
File responsible for parsing and traversing a metaflight xml file.
Definition: DtMetaFlightParser.h:22
int myNumColsInit
Definition: DtMetaFlightDescription.h:317
std::string myDatabaseName
Definition: DtMetaFlightDescription.h:310
voidpf uLong int origin
Definition: ioapi.h:42
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
std::string myFilePath
Definition: DtMetaFlightDescription.h:323
std::string myDirOfFilePath
Definition: DtMetaFlightDescription.h:324
double myBottomLeftLon
Definition: DtMetaFlightDescription.h:313
std::map< std::string, StringOrInt > PatternMap
Definition: DtMetaFlightDescription.h:274
DT_DLL_terrainCS void setLonDtDegMinSecFromDegrees(DtDegMinSec &dms, double deg)
bool myInitialized
Definition: DtMetaFlightDescription.h:315
int i_data
Definition: DtMetaFlightDescription.h:260
Definition: DtMetaFlightTypes.h:532
Definition: DtMetaFlightTypes.h:885
Instances of vpNetLambertCoordConverter provide transformations and utilities for converting between ...
Definition: DtLambertCoordinateConverter.h:24
DtMetaFlightTypes::Database * myDatabase
Definition: DtMetaFlightDescription.h:329
Contains DLL export macros.
DtLambertCoordinateConverter * myLambertToGeoc
Definition: DtMetaFlightDescription.h:309
DT_DLL_terrainCS void setDtDegMinSecFromDegrees(DtDegMinSec &dms, double deg)
DT_DLL_terrainCS void setLatDtDegMinSecFromDegrees(DtDegMinSec &dms, double deg)
std::string myVtFilePath
Definition: DtMetaFlightDescription.h:326
double myDeltaHeight
Definition: DtMetaFlightDescription.h:312
int myNumRowsInit
Definition: DtMetaFlightDescription.h:316
Definition: DtMetaFlightDescription.h:294
Definition: DtMetaFlightDescription.h:256
bool isString
Definition: DtMetaFlightDescription.h:258
double myBottomLeftLan
Definition: DtMetaFlightDescription.h:314
std::string s_data
Definition: DtMetaFlightDescription.h:259
std::string myDirOfVtFilePath
Definition: DtMetaFlightDescription.h:327
boost::shared_ptr< ProjectedCoordSys > ProjectedCoordSysSP
Definition: DtMetaFlightTypes.h:530
LCCParametersMap myLCCParametersMap
Definition: DtMetaFlightDescription.h:328
std::string myDirOfFilePathBaseName
Definition: DtMetaFlightDescription.h:325
#define DT_DLL_VRVTERRAIN
Definition: vrvTerrain.h:19
Definition: DtMetaFlightTypes.h:546
Definition: DtMetaFlightTypes.h:60
Definition: DtMetaFlightTypes.h:551
A representation of a meta-flight terrain.
Definition: DtMetaFlightDescription.h:29
Definition: DtMetaFlightTypes.h:197
std::map< std::string, LambertCCParameters > LCCParametersMap
Definition: DtMetaFlightDescription.h:321
void operator=(int i)
Definition: DtMetaFlightDescription.h:268

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)