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) 2024 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 <matrix/vlVector.h>
16 class DtDegMinSec;
17 class DtCoordTransform;
18 namespace makVrv
19 {
20  class DtMetaFlightParser;
21  class DtLambertCoordinateConverter;
22 
26  {
27  public:
28 
31 
33  virtual ~DtMetaFlightDescription();
34 
36  void getPaths(std::vector<std::string>& paths);
37 
39  void parse(DtMetaFlightParser& parser);
40 
42  unsigned int numberOfGeometryDatasets() const;
43 
46  const std::string& geometryDatasetName(int index) const;
47 
49  const DtMetaFlightTypes::Position2D& geometryDatasetOrigin(
50  const std::string& dsName) const;
51 
53  const DtMetaFlightTypes::Position2D& geometryDatasetExtent(
54  const std::string& dsName) const;
55 
58  const double geometryDatasetRadius(const std::string& dsName) const;
59 
63  const std::string& geometryDatasetName(const std::string& dsName) const;
64 
67  const std::string& geometryDatasetTitle(const std::string& dsName) const;
68 
71  const std::string& geometryDatasetFileFormat(const std::string& dsName) const;
72 
74  DtMetaFlightTypes::CoordSysTypeSP geometryDatasetDataCoordinateSystem(
75  const std::string& dsName) const;
76 
79  const std::string& geometryDatasetFileNamePattern(const std::string& dsName) const;
80 
82  DtMetaFlightTypes::CoordSysTypeSP geometryDatasetGridCoordinateSystem(
83  const std::string& dsName) const;
84 
86  const DtMetaFlightTypes::HierarchyType& geometryDatasetGridHierarchyType(
87  const std::string& dsName) const;
88 
91  unsigned int numberOfGeometryGridLevels(const std::string& dsName) const;
92 
95  const std::string& geometryGridLevelName(const std::string& dsName,
96  int index) const;
97 
100  DtMetaFlightTypes::TileType geometryGridLevelTileType(
101  const std::string& dsName, int index) const;
102 
104  unsigned int geometryGridLevelColumns(const std::string& dsName,
105  int index) const;
106 
109  unsigned int geometryGridLevelColDivisions(const std::string& dsName,
110  int index) const;
111 
113  unsigned int geometryGridLevelRows(const std::string& dsName,
114  int index) const;
115 
118  unsigned int geometryGridLevelRowDivisions(const std::string& dsName,
119  int index) const;
120 
123  double geometryGridLevelSwitchIn(const std::string& dsName, int index) const;
124 
127  double geometryGridLevelSwitchOut(const std::string& dsName, int index) const;
128 
132  void geometryGridTileCenter(const std::string& dsName, unsigned int level,
133  unsigned int row, unsigned int column,
134  double& centerX, double& centerY, double& centerZ) const;
135 
138  static void convertPosition(
139  const DtMetaFlightTypes::CoordSysTypeSP& sourceCoordSystem,
140  const DtMetaFlightTypes::CoordSysTypeSP& destCoordSystem,
141  double& centerX, double& centerY, double& centerZ);
142 
146  void geometryGridTileOffset(const std::string& dsName, unsigned int level,
147  unsigned int row, unsigned int column,
148  double& offsetX, double& offsetY, double& offsetZ) const;
149 
153  std::string generateGeometryGridTileFilename(const std::string& dsName,
154  int index, unsigned int row, unsigned int column) const;
155 
157  unsigned int numberOfVirtualTextureDatasets() const;
158 
161  const std::string& virtualTextureDatasetName(int index) const;
162 
164  DtMetaFlightTypes::CoordSysTypeSP virtualTextureCoordinateSystem(
165  const std::string& dsName) const;
166 
169  DtMetaFlightTypes::Position2D virtualTextureDatasetOrigin(
170  const std::string& dsName) const;
171 
174  DtMetaFlightTypes::Position2D virtualTextureDatasetOrigin(
175  const std::string& dsName,
176  const DtMetaFlightTypes::CoordSysTypeSP& system) const;
177 
180  DtMetaFlightTypes::Position2D virtualTextureDatasetExtent(
181  const std::string& dsName) const;
182 
185  DtMetaFlightTypes::Position2D virtualTextureDatasetExtent(
186  const std::string& dsName,
187  const DtMetaFlightTypes::CoordSysTypeSP& system) const;
188 
191  const std::string& virtualTextureDatasetTitle(const std::string& dsName) const;
192 
195  const std::string& virtualTextureDatasetFileFormat(const std::string& dsName) const;
196 
199  const std::string& virtualTextureDatasetFileNamePattern(const std::string& dsName) const;
200 
203  unsigned int virtualTextureDatasetTileTexels(const std::string& dsName) const;
204 
207  const std::string& virtualTextureDatasetSubstitutionTextureName(
208  const std::string& dsName) const;
209 
212  unsigned int numberOfVirtualTextureGridLevels(const std::string& dsName) const;
213 
216  const std::string& virtualTextureGridLevelName(const std::string& dsName,
217  int index) const;
218 
220  unsigned int virtualTextureGridLevelColumns(const std::string& dsName,
221  int index) const;
222 
225  unsigned int virtualTextureGridLevelColDivisions(const std::string& dsName,
226  int index) const;
227 
229  unsigned int virtualTextureGridLevelRows(const std::string& dsName,
230  int index) const;
231 
234  unsigned int virtualTextureGridLevelRowDivisions(const std::string& dsName,
235  int index) const;
236 
240  std::string generateVirtualTextureFileName(const std::string& dsName,
241  int index, unsigned int row, unsigned int column) const;
242 
244  const std::string& virtualTexturePath() const;
245 
247  inline const DtMetaFlightTypes::Database* database() const
248  {
249  return myDatabase;
250  }
251 
252  struct StringOrInt
253  {
254  StringOrInt() : isString(false), i_data(0) {};
255  bool isString;
256  std::string s_data;
257  int i_data;
258 
259  void operator=(const std::string& str)
260  {
261  isString = true;
262  s_data = str;
263  }
264 
265  void operator=(int i)
266  {
267  isString = false;
268  i_data = i;
269  }
270  };
271  typedef std::map<std::string, StringOrInt> PatternMap;
272 
273  static std::string generateFileName(const std::string& filenamePattern,
274  const PatternMap& patternMap);
275 
276  protected:
277 
278  static void setLonDtDegMinSecFromDegrees(DtDegMinSec& dmslon, double deg);
279  static void setDtDegMinSecFromDegrees(DtDegMinSec& dms, double deg);
280  static void setLatDtDegMinSecFromDegrees(DtDegMinSec& dmslat, double deg);
281 
283  virtual void getLCCTileCenter(const std::string& dsName, unsigned int row, unsigned int column,
284  unsigned int rows, unsigned int columns,
285  double& centerX, double& centerY, double& centerZ)const;
286 
287  protected:
288  //This is a class hold the intermediate parameters
289  //Internal used to calculate the center for each grid
290  //for a LCC projection
292  {
293  public:
295  virtual ~LambertCCParameters();
296  void initialize(const std::string& dsName, const DtMetaFlightTypes::Origin& origin, const DtMetaFlightTypes::Extent& extent,
297  int rows, int columns,
298  DtMetaFlightTypes::ProjectedCoordSysSP projectedSourceCoordSys);
299  bool initialized();
300  double bottomLeftLon();
301  double bottomLeftLan();
302  double deltaWidth();
303  double deltaHeight();
304  void convertGeodeticToLCC(double lon, double lat, double& x, double& y, double& z);
305  protected:
307  std::string myDatabaseName;
308  double myDeltaWidth;
315  };
316 
317  //databaseName->LCCParameters
318  typedef std::map<std::string, LambertCCParameters> LCCParametersMap;
319 
320  std::string myFilePath;
321  std::string myDirOfFilePath;
323  std::string myVtFilePath;
324  std::string myDirOfVtFilePath;
327  };
328 }
const DtMetaFlightTypes::Database * database() const
Get the database object.
Definition: DtMetaFlightDescription.h:247
double myDeltaWidth
Definition: DtMetaFlightDescription.h:308
void operator=(const std::string &str)
Definition: DtMetaFlightDescription.h:259
Contains makVrv::DtMetaFlightTypes class.
File responsible for parsing and traversing a metaflight xml file.
Definition: DtMetaFlightParser.h:19
int myNumColsInit
Definition: DtMetaFlightDescription.h:314
std::string myDatabaseName
Definition: DtMetaFlightDescription.h:307
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:254
std::string myFilePath
Definition: DtMetaFlightDescription.h:320
std::shared_ptr< CoordSysType > CoordSysTypeSP
Definition: DtMetaFlightTypes.h:295
std::string myDirOfFilePath
Definition: DtMetaFlightDescription.h:321
double myBottomLeftLon
Definition: DtMetaFlightDescription.h:310
std::map< std::string, StringOrInt > PatternMap
Definition: DtMetaFlightDescription.h:271
DT_DLL_terrainCS void setLonDtDegMinSecFromDegrees(DtDegMinSec &dms, double deg)
bool myInitialized
Definition: DtMetaFlightDescription.h:312
int i_data
Definition: DtMetaFlightDescription.h:257
Definition: DtMetaFlightTypes.h:528
Definition: DtMetaFlightTypes.h:881
Instances of vpNetLambertCoordConverter provide transformations and utilities for converting between ...
Definition: DtLambertCoordinateConverter.h:21
DtMetaFlightTypes::Database * myDatabase
Definition: DtMetaFlightDescription.h:326
Contains DLL export macros.
DtLambertCoordinateConverter * myLambertToGeoc
Definition: DtMetaFlightDescription.h:306
DT_DLL_terrainCS void setDtDegMinSecFromDegrees(DtDegMinSec &dms, double deg)
DT_DLL_terrainCS void setLatDtDegMinSecFromDegrees(DtDegMinSec &dms, double deg)
std::string myVtFilePath
Definition: DtMetaFlightDescription.h:323
std::shared_ptr< ProjectedCoordSys > ProjectedCoordSysSP
Definition: DtMetaFlightTypes.h:526
double myDeltaHeight
Definition: DtMetaFlightDescription.h:309
int myNumRowsInit
Definition: DtMetaFlightDescription.h:313
Definition: DtMetaFlightDescription.h:291
Definition: DtMetaFlightDescription.h:252
double myBottomLeftLan
Definition: DtMetaFlightDescription.h:311
std::string s_data
Definition: DtMetaFlightDescription.h:256
std::string myDirOfVtFilePath
Definition: DtMetaFlightDescription.h:324
LCCParametersMap myLCCParametersMap
Definition: DtMetaFlightDescription.h:325
std::string myDirOfFilePathBaseName
Definition: DtMetaFlightDescription.h:322
#define DT_DLL_VRVTERRAIN
Definition: vrvTerrain.h:19
Definition: DtMetaFlightTypes.h:542
Definition: DtMetaFlightTypes.h:56
Definition: DtMetaFlightTypes.h:547
A representation of a meta-flight terrain.
Definition: DtMetaFlightDescription.h:25
Definition: DtMetaFlightTypes.h:193
std::map< std::string, LambertCCParameters > LCCParametersMap
Definition: DtMetaFlightDescription.h:318
void operator=(int i)
Definition: DtMetaFlightDescription.h:265

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)