VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
geoidDatum.h
Go to the documentation of this file.
1 
2 /*******************************************************************************
3 ** Copyright (c) 1992-2025 MAK Technologies, Inc
4 ** All rights reserved.
5 *******************************************************************************/
6 #pragma once
8 #include <vlutil/vlString.h>
13 
14 #ifdef DtUSE_UTILITIES_NAMESPACE
15 namespace DtUSE_UTILITIES_NAMESPACE
16 {
17 #endif
18 
31 
32 
33  namespace GeographicLib
34  {
35  class Geoid;
36  };
37 
38 
41  {
42  DtNoGeoid = 0,
43  DtEGM8430 = 1, //EGM 84 30 minute resolution
44  DtEGM8415 = 2, //EGM 84 15 minute resolution
45  DtEGM9615 = 3, //EGM 96 15 minute resolution
46  DtEGM9605 = 4, //EGM 96 5 minute resolution
47  DtEGM0805 = 5, //EGM 2008 5 minute resolution
48  DtEGM08025 = 6, //EGM 2008 2.5 minute resolution
49  DtEGM0801 = 7 //EGM 2008 1 minute resolution
50  };
51 
54 
55 
58 
60  {
61  public:
65  DtGeoidDatum(bool cubic = true, bool threadsafe = false);
66 
68  DtGeoidDatum(DtGeoidType geoidType, bool cubic = true, bool threadsafe = false);
69 
71  DtGeoidDatum(DtString geoidPath, bool cubic = true, bool threadsafe = false);
72 
73 
74 
75  ~DtGeoidDatum();
76 
78  void initGeoid(DtGeoidType geoidType, DtString geoidPath, bool cubic, bool threadsafe);
79 
81  virtual double undulation(double latitude, double longitude);
82 
84  virtual void cacheArea(double south, double west, double north, double east);
85 
87  virtual void cacheAll();
88 
89  virtual DtGeoidType geoidType();
90 
91  virtual DtString geoidPath();
92 
93  virtual bool cubic();
94 
95  virtual bool threadsafe();
96 
97  private:
99  DtGeoidDatum& operator=(const DtGeoidDatum& src);
100 
102  DtGeoidDatum(const DtGeoidDatum& src);
103 
104  protected:
105 #ifdef ENABLE_GEOGRAPHICLIB
106  GeographicLib::Geoid* myGeoid;
107 #else
108  void* myGeoid;
109 #endif
112  bool myCubic;
114  };
115 
117  extern DT_DLL_MATRIX void setTheGeoidDatumType(DtGeoidType newType);
118 
120  extern DT_DLL_MATRIX void setTheGeoidDatumPath(DtString newPath);
121 
122 #ifdef DtUSE_UTILITIES_NAMESPACE
123 }
124 #endif
125 
126 
Definition: geoidDatum.h:42
Definition: geoidDatum.h:47
Definition: geoidDatum.h:43
Definition: geoidDatum.h:46
Contains the DtString class declaration.
DtGeoidType myType
Definition: geoidDatum.h:110
void setTheGeoidDatumType(DtGeoidType newType)
set the default Geoid Datum type, all DtGeodeticCoord instances will default to using this Geoid Type...
Definition: geoidDatum.h:59
void setTheGeoidDatumPath(DtString newPath)
set the default path (relative to the application) where the Geoid PGM files are stored.
Definition: geoidDatum.h:44
bool myCubic
Definition: geoidDatum.h:112
void * myGeoid
Definition: geoidDatum.h:108
DtGeoidType theGeoidDatumType
Static variable to set the Geoid Datum to use. Default value is DtNoGeoid which preserves backwards c...
DtString theGeoidDataPath
Static variable to control where the Geoid PGM files are stored. Default is ../data/geoids.
#define DT_DLL_MATRIX
Definition: vlMachineTypes.h:107
bool myThreadSafe
Definition: geoidDatum.h:113
Definition: geoidDatum.h:49
Definition: geoidDatum.h:48
Instances of DtString are used to represent strings.
Definition: vlString.h:36
Definition: geoidDatum.h:45
DtString myGeoidPath
Definition: geoidDatum.h:111
This file contains typedefs for machine dependant types.
DtGeoidType
Geoid Type enumerations. Default is DtNoGeoid. There are 3 supported EGM models, EGM84, EGM96, EGM2008 in different resolutions.
Definition: geoidDatum.h:40

Document ID: Generated on Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)