VR-Link API Documentation for HLA Evolved
Home
Namespaces
Classes
Files
Examples
Libraries
File List
File Members
include
matrix
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
16
enum
DtPolarDirection
{
DtEast
,
DtWest
,
DtNorth
,
DtSouth
};
17
18
24
class
DtDegMinSec
25
{
26
public
:
27
double
deg, min,
sec
;
28
DtPolarDirection
direction
;
29
};
30
41
class
DT_DLL_MATRIX
DtUtmReferencePoint
42
{
43
public
:
44
46
DtUtmReferencePoint
();
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
;
156
int
myStandardOffsets
;
157
double
myXOrigin
;
158
double
myYOrigin
;
159
160
long
myZoneOrigin
;
161
DtDegMinSec
myLatRef
;
162
DtDegMinSec
myLonRef
;
163
165
DtReferenceEllipsoid
myEllipsoid
;
166
168
DtFloat64
mySemiMajor
;
169
DtFloat64
mySemiMinor
;
170
DtFloat64
myE_sq
;
171
DtFloat64
myEp_sq
;
172
DtFloat64
myEf
;
173
174
DtFloat64
myScale
;
176
double
myStandardFalseEasting
;
177
double
myStandardFalseNorthing
;
178
double
myStandardFalseNorthingCrossover
;
179
180
protected
:
181
182
186
static
void
setLongitudeFudgeFactor(
double
val);
187
188
static
double
theLongitudeFudgeFactor
;
189
};
190
191
DT_DLL_MATRIX
DtUtmReferencePoint
*
DtGlobalUtmReferencePoint
();
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
)