VR-Forces 4.0.4 Class Documentation
include/vrvTerrain/DtMetaFlightDescription.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2010 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile:  $ $Revision:  $ $State:  $
00007 ******************************************************************************/
00008 
00012 
00013 #pragma once
00014 #include <vrvTerrain/vrvTerrain.h>
00015 #include <vrvTerrain/DtMetaFlightTypes.h>
00016 #include <map>
00017 #include <string>
00018 #include <boost/shared_ptr.hpp>
00019 
00020 class DtDegMinSec;
00021 
00022 namespace makVrv
00023 {
00024    class DtMetaFlightParser;
00025 
00028    class DT_DLL_VRVTERRAIN DtMetaFlightDescription
00029    {
00030    public:
00031 
00033       DtMetaFlightDescription();
00034 
00036       ~DtMetaFlightDescription();
00037 
00039       void getPaths(std::vector<std::string>& paths);
00040 
00042       void parse(DtMetaFlightParser& parser);
00043 
00045       unsigned int numberOfGeometryDatasets() const;
00046 
00049       const std::string& geometryDatasetName(int index) const;
00050 
00052       const DtMetaFlightTypes::Position2D& geometryDatasetOrigin(
00053          const std::string& dsName) const;
00054 
00056       const DtMetaFlightTypes::Position2D& geometryDatasetExtent(
00057          const std::string& dsName) const;
00058 
00061       const double geometryDatasetRadius(const std::string& dsName) const;
00062 
00066       const std::string& geometryDatasetName(const std::string& dsName) const;
00067 
00070       const std::string& geometryDatasetTitle(const std::string& dsName) const;
00071 
00074       const std::string& geometryDatasetFileFormat(const std::string& dsName) const;
00075 
00077       DtMetaFlightTypes::CoordSysTypeSP geometryDatasetDataCoordinateSystem(
00078          const std::string& dsName) const;
00079 
00082       const std::string& geometryDatasetFileNamePattern(const std::string& dsName) const;
00083 
00085       DtMetaFlightTypes::CoordSysTypeSP geometryDatasetGridCoordinateSystem(
00086          const std::string& dsName) const;
00087 
00089       const DtMetaFlightTypes::HierarchyType& geometryDatasetGridHierarchyType(
00090          const std::string& dsName) const;
00091 
00094       unsigned int numberOfGeometryGridLevels(const std::string& dsName) const;
00095 
00098       const std::string& geometryGridLevelName(const std::string& dsName, 
00099          int index) const;
00100 
00103       DtMetaFlightTypes::TileType geometryGridLevelTileType(
00104          const std::string& dsName, int index) const;
00105 
00107       unsigned int geometryGridLevelColumns(const std::string& dsName, 
00108          int index) const;
00109 
00112       unsigned int geometryGridLevelColDivisions( const std::string& dsName, 
00113          int index ) const;
00114 
00116       unsigned int geometryGridLevelRows(const std::string& dsName, 
00117          int index) const;
00118 
00121       unsigned int geometryGridLevelRowDivisions( const std::string& dsName, 
00122          int index ) const;
00123 
00126       double geometryGridLevelSwitchIn(const std::string& dsName,int index) const;
00127 
00130       double geometryGridLevelSwitchOut(const std::string& dsName,int index) const;
00131 
00135       void geometryGridTileCenter(const std::string& dsName, unsigned int level,
00136          unsigned int row, unsigned int column, 
00137          double& centerX, double& centerY, double& centerZ) const;
00138 
00141       static void convertPosition( 
00142          DtMetaFlightTypes::CoordSysTypeSP sourceCoordSystem, 
00143          DtMetaFlightTypes::CoordSysTypeSP destCoordSystem, 
00144          double& centerX, double& centerY, double& centerZ );
00145 
00149       void geometryGridTileOffset(const std::string& dsName, unsigned int level,
00150          unsigned int row, unsigned int column, 
00151          double& offsetX, double& offsetY, double& offsetZ) const;
00152 
00156       std::string generateGeometryGridTileFilename(const std::string& dsName,
00157          int index, unsigned int row, unsigned int column);
00158 
00160       unsigned int numberOfVirtualTextureDatasets() const;
00161 
00164       const std::string& virtualTextureDatasetName(int index) const;
00165 
00167       DtMetaFlightTypes::CoordSysTypeSP virtualTextureCoordinateSystem(
00168          const std::string& dsName) const;
00169 
00172       DtMetaFlightTypes::Position2D virtualTextureDatasetOrigin(
00173          const std::string& dsName) const;
00174 
00177       DtMetaFlightTypes::Position2D virtualTextureDatasetOrigin(
00178          const std::string& dsName, 
00179          const DtMetaFlightTypes::CoordSysTypeSP& system) const;
00180 
00183       DtMetaFlightTypes::Position2D virtualTextureDatasetExtent(
00184          const std::string& dsName) const;
00185 
00188       DtMetaFlightTypes::Position2D virtualTextureDatasetExtent(
00189          const std::string& dsName, 
00190          const DtMetaFlightTypes::CoordSysTypeSP& system) const;
00191 
00194       const std::string& virtualTextureDatasetTitle(const std::string& dsName) const;
00195 
00198       const std::string& virtualTextureDatasetFileFormat(const std::string& dsName) const;     
00199 
00202       const std::string& virtualTextureDatasetFileNamePattern(const std::string& dsName) const;
00203 
00206       unsigned int virtualTextureDatasetTileTexels(const std::string& dsName) const;
00207       
00210       const std::string& virtualTextureDatasetSubstitutionTextureName(
00211          const std::string& dsName) const;
00212 
00215       unsigned int numberOfVirtualTextureGridLevels(const std::string& dsName) const;
00216 
00219       const std::string& virtualTextureGridLevelName(const std::string& dsName, 
00220          int index) const;
00221 
00223       unsigned int virtualTextureGridLevelColumns(const std::string& dsName, 
00224          int index) const;
00225 
00228       unsigned int virtualTextureGridLevelColDivisions(const std::string& dsName, 
00229          int index) const;
00230 
00232       unsigned int virtualTextureGridLevelRows(const std::string& dsName, 
00233          int index) const;
00234 
00237       unsigned int virtualTextureGridLevelRowDivisions(const std::string& dsName, 
00238          int index) const;      
00239 
00243       std::string generateVirtualTextureFileName(const std::string& dsName,
00244          int index, unsigned int row, unsigned int column) const;
00245 
00247       const std::string& virtualTexturePath() const;
00248 
00250       inline const DtMetaFlightTypes::Database* database() const 
00251       {
00252          return myDatabase; 
00253       }
00254 
00255       struct StringOrInt
00256       {
00257          bool isString;
00258          std::string s_data;
00259          int i_data;
00260 
00261          void operator=(const std::string& str)
00262          {
00263             isString = true;
00264             s_data = str;
00265          }
00266 
00267          void operator=(int i)
00268          {
00269             isString = false;
00270             i_data = i;
00271          }
00272       };
00273       typedef std::map<std::string,StringOrInt> PatternMap;
00274 
00275       static std::string generateFileName(const std::string& filenamePattern, 
00276          const PatternMap& patternMap);
00277 
00278    protected:
00279 
00280       static void setLonDtDegMinSecFromDegrees(DtDegMinSec& dmslon, double deg);
00281       static void setDtDegMinSecFromDegrees(DtDegMinSec& dms, double deg);
00282       static void setLatDtDegMinSecFromDegrees(DtDegMinSec& dmslat, double deg);
00283       
00284    protected:
00285 
00286       std::string myFilePath;
00287       std::string myVtFilePath;
00288 
00289       DtMetaFlightTypes::Database* myDatabase;
00290    };
00291 }

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)