VR-Forces Developer's Guide
 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 
9 
10 #pragma once
11 #include <vrvTerrain/vrvTerrain.h>
13 #include <map>
14 #include <string>
15 #include <boost/shared_ptr.hpp>
16 #include <matrix/vlVector.h>
17 class DtDegMinSec;
18 class DtCoordTransform;
19 namespace makVrv
20 {
21  class DtMetaFlightParser;
22  class DtLambertCoordinateConverter;
23 
27  {
28  public:
29 
32 
34  virtual ~DtMetaFlightDescription();
35 
37  void getPaths(std::vector<std::string>& paths);
38 
40  void parse(DtMetaFlightParser& parser);
41 
43  unsigned int numberOfGeometryDatasets() const;
44 
47  const std::string& geometryDatasetName(int index) const;
48 
50  const DtMetaFlightTypes::Position2D& geometryDatasetOrigin(
51  const std::string& dsName) const;
52 
54  const DtMetaFlightTypes::Position2D& geometryDatasetExtent(
55  const std::string& dsName) const;
56 
59  const double geometryDatasetRadius(const std::string& dsName) const;
60 
64  const std::string& geometryDatasetName(const std::string& dsName) const;
65 
68  const std::string& geometryDatasetTitle(const std::string& dsName) const;
69 
72  const std::string& geometryDatasetFileFormat(const std::string& dsName) const;
73 
75  DtMetaFlightTypes::CoordSysTypeSP geometryDatasetDataCoordinateSystem(
76  const std::string& dsName) const;
77 
80  const std::string& geometryDatasetFileNamePattern(const std::string& dsName) const;
81 
83  DtMetaFlightTypes::CoordSysTypeSP geometryDatasetGridCoordinateSystem(
84  const std::string& dsName) const;
85 
87  const DtMetaFlightTypes::HierarchyType& geometryDatasetGridHierarchyType(
88  const std::string& dsName) const;
89 
92  unsigned int numberOfGeometryGridLevels(const std::string& dsName) const;
93 
96  const std::string& geometryGridLevelName(const std::string& dsName,
97  int index) const;
98 
101  DtMetaFlightTypes::TileType geometryGridLevelTileType(
102  const std::string& dsName, int index) const;
103 
105  unsigned int geometryGridLevelColumns(const std::string& dsName,
106  int index) const;
107 
110  unsigned int geometryGridLevelColDivisions(const std::string& dsName,
111  int index) const;
112 
114  unsigned int geometryGridLevelRows(const std::string& dsName,
115  int index) const;
116 
119  unsigned int geometryGridLevelRowDivisions(const std::string& dsName,
120  int index) const;
121 
124  double geometryGridLevelSwitchIn(const std::string& dsName, int index) const;
125 
128  double geometryGridLevelSwitchOut(const std::string& dsName, int index) const;
129 
133  void geometryGridTileCenter(const std::string& dsName, unsigned int level,
134  unsigned int row, unsigned int column,
135  double& centerX, double& centerY, double& centerZ) const;
136 
139  static void convertPosition(
140  const DtMetaFlightTypes::CoordSysTypeSP& sourceCoordSystem,
141  const DtMetaFlightTypes::CoordSysTypeSP& destCoordSystem,
142  double& centerX, double& centerY, double& centerZ);
143 
147  void geometryGridTileOffset(const std::string& dsName, unsigned int level,
148  unsigned int row, unsigned int column,
149  double& offsetX, double& offsetY, double& offsetZ) const;
150 
154  std::string generateGeometryGridTileFilename(const std::string& dsName,
155  int index, unsigned int row, unsigned int column) const;
156 
158  unsigned int numberOfVirtualTextureDatasets() const;
159 
162  const std::string& virtualTextureDatasetName(int index) const;
163 
165  DtMetaFlightTypes::CoordSysTypeSP virtualTextureCoordinateSystem(
166  const std::string& dsName) const;
167 
170  DtMetaFlightTypes::Position2D virtualTextureDatasetOrigin(
171  const std::string& dsName) const;
172 
175  DtMetaFlightTypes::Position2D virtualTextureDatasetOrigin(
176  const std::string& dsName,
177  const DtMetaFlightTypes::CoordSysTypeSP& system) const;
178 
181  DtMetaFlightTypes::Position2D virtualTextureDatasetExtent(
182  const std::string& dsName) const;
183 
186  DtMetaFlightTypes::Position2D virtualTextureDatasetExtent(
187  const std::string& dsName,
188  const DtMetaFlightTypes::CoordSysTypeSP& system) const;
189 
192  const std::string& virtualTextureDatasetTitle(const std::string& dsName) const;
193 
196  const std::string& virtualTextureDatasetFileFormat(const std::string& dsName) const;
197 
200  const std::string& virtualTextureDatasetFileNamePattern(const std::string& dsName) const;
201 
204  unsigned int virtualTextureDatasetTileTexels(const std::string& dsName) const;
205 
208  const std::string& virtualTextureDatasetSubstitutionTextureName(
209  const std::string& dsName) const;
210 
213  unsigned int numberOfVirtualTextureGridLevels(const std::string& dsName) const;
214 
217  const std::string& virtualTextureGridLevelName(const std::string& dsName,
218  int index) const;
219 
221  unsigned int virtualTextureGridLevelColumns(const std::string& dsName,
222  int index) const;
223 
226  unsigned int virtualTextureGridLevelColDivisions(const std::string& dsName,
227  int index) const;
228 
230  unsigned int virtualTextureGridLevelRows(const std::string& dsName,
231  int index) const;
232 
235  unsigned int virtualTextureGridLevelRowDivisions(const std::string& dsName,
236  int index) const;
237 
241  std::string generateVirtualTextureFileName(const std::string& dsName,
242  int index, unsigned int row, unsigned int column) const;
243 
245  const std::string& virtualTexturePath() const;
246 
248  inline const DtMetaFlightTypes::Database* database() const
249  {
250  return myDatabase;
251  }
252 
253  struct StringOrInt
254  {
255  StringOrInt() : isString(false), i_data(0) {};
256  bool isString;
257  std::string s_data;
258  int i_data;
259 
260  void operator=(const std::string& str)
261  {
262  isString = true;
263  s_data = str;
264  }
265 
266  void operator=(int i)
267  {
268  isString = false;
269  i_data = i;
270  }
271  };
272  typedef std::map<std::string, StringOrInt> PatternMap;
273 
274  static std::string generateFileName(const std::string& filenamePattern,
275  const PatternMap& patternMap);
276 
277  protected:
278 
279  static void setLonDtDegMinSecFromDegrees(DtDegMinSec& dmslon, double deg);
280  static void setDtDegMinSecFromDegrees(DtDegMinSec& dms, double deg);
281  static void setLatDtDegMinSecFromDegrees(DtDegMinSec& dmslat, double deg);
282 
284  virtual void getLCCTileCenter(const std::string& dsName, unsigned int row, unsigned int column,
285  unsigned int rows, unsigned int columns,
286  double& centerX, double& centerY, double& centerZ)const;
287 
288  protected:
289  //This is a class hold the intermediate parameters
290  //Internal used to calculate the center for each grid
291  //for a LCC projection
293  {
294  public:
296  virtual ~LambertCCParameters();
297  void initialize(const std::string& dsName, const DtMetaFlightTypes::Origin& origin, const DtMetaFlightTypes::Extent& extent,
298  int rows, int columns,
299  DtMetaFlightTypes::ProjectedCoordSysSP projectedSourceCoordSys);
300  bool initialized();
301  double bottomLeftLon();
302  double bottomLeftLan();
303  double deltaWidth();
304  double deltaHeight();
305  void convertGeodeticToLCC(double lon, double lat, double& x, double& y, double& z);
306  protected:
308  std::string myDatabaseName;
309  double myDeltaWidth;
316  };
317 
318  //databaseName->LCCParameters
319  typedef std::map<std::string, LambertCCParameters> LCCParametersMap;
320 
321  std::string myFilePath;
322  std::string myDirOfFilePath;
324  std::string myVtFilePath;
325  std::string myDirOfVtFilePath;
328  };
329 }
const DtMetaFlightTypes::Database * database() const
Get the database object.
Definition: DtMetaFlightDescription.h:248
double myDeltaWidth
Definition: DtMetaFlightDescription.h:309
void operator=(const std::string &str)
Definition: DtMetaFlightDescription.h:260
Contains makVrv::DtMetaFlightTypes class.
boost::shared_ptr< CoordSysType > CoordSysTypeSP
Definition: DtMetaFlightTypes.h:296
File responsible for parsing and traversing a metaflight xml file.
Definition: DtMetaFlightParser.h:19
int myNumColsInit
Definition: DtMetaFlightDescription.h:315
std::string myDatabaseName
Definition: DtMetaFlightDescription.h:308
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.
StringOrInt()
Definition: DtMetaFlightDescription.h:255
std::string myFilePath
Definition: DtMetaFlightDescription.h:321
std::string myDirOfFilePath
Definition: DtMetaFlightDescription.h:322
double myBottomLeftLon
Definition: DtMetaFlightDescription.h:311
std::map< std::string, StringOrInt > PatternMap
Definition: DtMetaFlightDescription.h:272
DT_DLL_terrainCS void setLonDtDegMinSecFromDegrees(DtDegMinSec &dms, double deg)
bool myInitialized
Definition: DtMetaFlightDescription.h:313
int i_data
Definition: DtMetaFlightDescription.h:258
Definition: DtMetaFlightTypes.h:529
Definition: DtMetaFlightTypes.h:882
Instances of vpNetLambertCoordConverter provide transformations and utilities for converting between ...
Definition: DtLambertCoordinateConverter.h:21
DtMetaFlightTypes::Database * myDatabase
Definition: DtMetaFlightDescription.h:327
Contains DLL export macros.
DtLambertCoordinateConverter * myLambertToGeoc
Definition: DtMetaFlightDescription.h:307
DT_DLL_terrainCS void setDtDegMinSecFromDegrees(DtDegMinSec &dms, double deg)
DT_DLL_terrainCS void setLatDtDegMinSecFromDegrees(DtDegMinSec &dms, double deg)
std::string myVtFilePath
Definition: DtMetaFlightDescription.h:324
double myDeltaHeight
Definition: DtMetaFlightDescription.h:310
int myNumRowsInit
Definition: DtMetaFlightDescription.h:314
Definition: DtMetaFlightDescription.h:292
Definition: DtMetaFlightDescription.h:253
double myBottomLeftLan
Definition: DtMetaFlightDescription.h:312
std::string s_data
Definition: DtMetaFlightDescription.h:257
std::string myDirOfVtFilePath
Definition: DtMetaFlightDescription.h:325
boost::shared_ptr< ProjectedCoordSys > ProjectedCoordSysSP
Definition: DtMetaFlightTypes.h:527
LCCParametersMap myLCCParametersMap
Definition: DtMetaFlightDescription.h:326
std::string myDirOfFilePathBaseName
Definition: DtMetaFlightDescription.h:323
#define DT_DLL_VRVTERRAIN
Definition: vrvTerrain.h:19
Definition: DtMetaFlightTypes.h:543
Definition: DtMetaFlightTypes.h:57
Definition: DtMetaFlightTypes.h:548
A representation of a meta-flight terrain.
Definition: DtMetaFlightDescription.h:26
Definition: DtMetaFlightTypes.h:194
std::map< std::string, LambertCCParameters > LCCParametersMap
Definition: DtMetaFlightDescription.h:319
void operator=(int i)
Definition: DtMetaFlightDescription.h:266

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)