VR-Link API Documentation for HLA 1516
 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-2010 VT MAK
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 
95 protected:
96 
97  static unsigned int theMaxIterationsForConvergence;
98 
101 
103  int myInited;
104 
105  double ellipse_a;
106  double ellipse_a_sq;
107  double ellipse_f;
108  double ellipse_b;
109  double ellipse_b_sq;
111  double ellipse_e;
112  double ellipse_c1;
113 };
114 
118 
119 #ifdef DtUSE_UTILITIES_NAMESPACE
120 }
121 #endif
122 
123 #endif
124 
static bool theNotifyOnConversionFrom0Geocentric
Definition: referenceEllipsoid.h:100
static bool theThrowExceptionOnConversionFrom0Geocentric
Definition: referenceEllipsoid.h:99
double ellipse_b
flattening (a-b)/a
Definition: referenceEllipsoid.h:108
double ellipse_a_sq_over_b
polar semi-diameter squared
Definition: referenceEllipsoid.h:110
double ellipse_b_sq
polar semi-diameter
Definition: referenceEllipsoid.h:109
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:111
double ellipse_c1
ellipticity 2f-f*f
Definition: referenceEllipsoid.h:112
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:107
Definition: vlVector.h:224
DtMapDatum myMapDatum
Definition: referenceEllipsoid.h:102
#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:97
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:105
This file contains typedefs for machine dependant types.
int myInited
Definition: referenceEllipsoid.h:103
double ellipse_a_sq
equatorial radius
Definition: referenceEllipsoid.h:106

Document ID: Generated on Tue Feb 2 21:02:17 EST 2021 from SVN revision 223668
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)