VR-Link API Documentation for HLA 1.3
utmReferencePoint.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *******************************************************************************/
8 #pragma once
9 #include "geodeticCoord.h"
10 
11 #ifdef DtUSE_UTILITIES_NAMESPACE
12 namespace DtUSE_UTILITIES_NAMESPACE
13 {
14 #endif
15 
17 
18 
25 {
26 public:
27  double deg, min, sec;
29 };
30 
42 {
43 public:
44 
47 
51  DtUtmReferencePoint( const DtDegMinSec& latRef,
52  const DtDegMinSec& lonRef,
53  int standardOffsets=1,
54  long zone = 0,
55  const DtMapDatum& mapDatum = DtCurrentMapDatum(),
56  double scaleFactor = 0.9996);
57 
59  virtual ~DtUtmReferencePoint();
60 
63  virtual void geod2utm( double alat, double alon, double* x, double* y );
64 
67  virtual void utm2geod( double x, double y, double* lat, double* lon );
68 
70  virtual const DtMapDatum& mapDatum() const;
71 
73  virtual void useMapDatum( const DtMapDatum& mapDatum );
74 
76  virtual const DtReferenceEllipsoid* ellipsoid() const;
77 
79  void init(const DtDegMinSec& latRef,
80  const DtDegMinSec& lonRef,
81  int standardOffsets=1,
82  long zone = 0,
83  const DtMapDatum& mapDatum = DtCurrentMapDatum() );
84 
89  virtual void uninitialize();
90 
92  virtual bool isInitialized() const;
93 
95  virtual double scale() const;
97  virtual void setScale(double scale);
98 
99  virtual double xOrigin() const;
100  virtual void setXOrgin(double x_origin);
101 
102  virtual double yOrigin() const;
103  virtual void setYOrgin(double y_origin);
104 
105  virtual int standardOffsets() const;
106  virtual void setStandardOffsets(int so);
107 
108  virtual DtDegMinSec latRef() const;
109  virtual void setLatRef(const DtDegMinSec &lat_ref);
110 
111  virtual DtDegMinSec longRef() const;
112  virtual void setLongRef(const DtDegMinSec &lat_ref);
113 
114  virtual long zoneOrigin() const;
115  virtual void setZoneOrigin(long zo);
116 
117  virtual double standardFalseEasting() const;
118  virtual void setStandardFalseEasting(double sfe);
119 
120  virtual double standardFalseNorthing() const;
121  virtual void setStandardFalseNorthing(double sfn);
122 
133  virtual double standardFalseNorthingCrossover() const;
134  virtual void setStandardFalseNorthingCrossover(double sfnc);
135 
136 protected:
137 
138  void initDatumConstants();
139  void initUtm( const double lat[4], const double lon[4], long zone = 0 );
140  void degree( const double a[3], double* b ) const ;
141 
143 
144 
145 
146 
147  virtual void geod2utm( double lat, double lon,
148  long* zone, double* northing, double* easting );
149  virtual void utm2geod( double northing, double easting,
150  long zone, double* lat, double* lon );
152 
153 protected:
154 
155  int myInited;
157  double myXOrigin;
158  double myYOrigin;
159 
163 
166 
173 
179 
180 protected:
181 
182 
186  static void setLongitudeFudgeFactor(double val);
187 
188  static double theLongitudeFudgeFactor;
189 };
190 
192 
196 int DtUtmGridZoneFromLatLon(double latitude, double longitude);
197 
198 #ifdef DtUSE_UTILITIES_NAMESPACE
199 }
200 #endif
201 
202 
203 

Document ID: Generated on Wed Oct 23 22:25:48 EDT 2013 from SVN revision 132765
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)