VR-Link API Documentation for HLA 4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
referenceEllipsoid.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 
7 #ifndef GeodeticEllipsoid_H_
8 #define GeodeticEllipsoid_H_
9 
10 #include <vlutil/vlNetTypes.h>
11 #include "vlVector.h"
12 #include <vlutil/vlMachineTypes.h>
13 #include "mapDatum.h"
14 
19 
20 #ifdef DtUSE_UTILITIES_NAMESPACE
21 namespace DtUSE_UTILITIES_NAMESPACE
22 {
23 #endif
24 
25 
42 {
43 public:
44  DtReferenceEllipsoid( const DtMapDatum& datum );
45  virtual ~DtReferenceEllipsoid();
46 
47  void useMapDatum( const DtMapDatum& datum );
48  const DtMapDatum& mapDatum() const;
49 
50  void geocentricToGeodetic( const DtVector& gc, DtVector& gd ) const;
51  void geodeticToGeocentric( const DtVector& gd, DtVector& gc ) const;
52 
53 protected:
54 
55  void initialize_ellipsoid( double a, double f );
56  void geo_to_rad( double deg, double min, double sec, double* radian ) const;
57  void rad_to_geo( double radian, double* deg, double* min, double* sec ) const;
58 
59 
60 
61  void geodetic_to_geocentric( double lat, double lon, double height,
62  double* x, double* y, double* z ) const;
63 
73  void geocentric_to_geodetic( double xp, double yp, double zp,
74  double* lat, double* lon, double* height ) const;
75 
76 public:
77 
81  static void setMaxIterationsForConvergence(unsigned int maxItr);
82 
84  static unsigned int maxIterationsForConvergence();
85 
89  static void setThrowExceptionOnConversionFrom0Geocentric(bool enable);
90 
93  static void setNotifyConversionFrom0Geocentric(bool enable);
94 
97  static void setNotifyOnceConversionFrom0Geocentric(bool enableNotifyOnce);
98 
99 protected:
100 
101  static unsigned int theMaxIterationsForConvergence;
102 
106 
108  int myInited;
109 
110  double ellipse_a;
111  double ellipse_a_sq;
112  double ellipse_f;
113  double ellipse_b;
114  double ellipse_b_sq;
116  double ellipse_e;
117  double ellipse_c1;
118 };
119 
123 
124 #ifdef DtUSE_UTILITIES_NAMESPACE
125 }
126 #endif
127 
128 #endif
129 
static bool theNotifyOnConversionFrom0Geocentric
Definition: referenceEllipsoid.h:104
static bool theThrowExceptionOnConversionFrom0Geocentric
Definition: referenceEllipsoid.h:103
double ellipse_b
flattening (a-b)/a
Definition: referenceEllipsoid.h:113
double ellipse_a_sq_over_b
polar semi-diameter squared
Definition: referenceEllipsoid.h:115
double ellipse_b_sq
polar semi-diameter
Definition: referenceEllipsoid.h:114
DtMapDatums represent a spheroid model of the earth, with a data shift to facilitate easy conversion ...
Definition: mapDatum.h:50
double ellipse_e
a*a/b
Definition: referenceEllipsoid.h:116
double ellipse_c1
ellipticity 2f-f*f
Definition: referenceEllipsoid.h:117
Instances of this class are used to store a particular mapDatum and perform useful calculations based...
Definition: referenceEllipsoid.h:41
This file declares DtVector and DtVector32.
double ellipse_f
radius squared
Definition: referenceEllipsoid.h:112
Definition: vlVector.h:224
DtMapDatum myMapDatum
Definition: referenceEllipsoid.h:107
#define DT_DLL_MATRIX
Definition: vlMachineTypes.h:107
This file contains the declaration of the DtMapDatum class as well as commonly used DtMapDatums...
static unsigned int theMaxIterationsForConvergence
Definition: referenceEllipsoid.h:101
DtReferenceEllipsoid * DtGlobalEllipsoid()
Call this function to obtain a ptr to the global ellipsoid which is used for geodetic coord conversio...
double ellipse_a
Definition: referenceEllipsoid.h:110
static bool theNotifyOnceOnConversionFrom0Geocentric
Definition: referenceEllipsoid.h:105
This file contains typedefs for machine dependant types.
int myInited
Definition: referenceEllipsoid.h:108
double ellipse_a_sq
equatorial radius
Definition: referenceEllipsoid.h:111

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)