19 const char BADALLOC[] =
"Failed to allocate memory for a GeographicLib::GeodesicExact";
24 if ( m_pGeodesicExact !=
NULL )
26 delete m_pGeodesicExact;
27 m_pGeodesicExact =
NULL;
38 catch ( std::bad_alloc err )
51 catch ( std::bad_alloc err )
63 [System::Runtime::InteropServices::Out]
double% lat2,
64 [System::Runtime::InteropServices::Out]
double% lon2,
65 [System::Runtime::InteropServices::Out]
double% azi2,
66 [System::Runtime::InteropServices::Out]
double% m12,
67 [System::Runtime::InteropServices::Out]
double% M12,
68 [System::Runtime::InteropServices::Out]
double% M21,
69 [System::Runtime::InteropServices::Out]
double% S12)
71 double llat2, llon2, lazi2, lm12, lM12, lM21, lS12;
73 llat2, llon2, lazi2, lm12, lM12, lM21, lS12 );
86 [System::Runtime::InteropServices::Out]
double% lat2,
87 [System::Runtime::InteropServices::Out]
double% lon2)
99 [System::Runtime::InteropServices::Out]
double% lat2,
100 [System::Runtime::InteropServices::Out]
double% lon2,
101 [System::Runtime::InteropServices::Out]
double% azi2)
103 double llat2, llon2, lazi2;
105 llat2, llon2, lazi2 );
114 [System::Runtime::InteropServices::Out]
double% lat2,
115 [System::Runtime::InteropServices::Out]
double% lon2,
116 [System::Runtime::InteropServices::Out]
double% azi2,
117 [System::Runtime::InteropServices::Out]
double% m12)
119 double llat2, llon2, lazi2, lm12;
121 llat2, llon2, lazi2, lm12 );
131 [System::Runtime::InteropServices::Out]
double% lat2,
132 [System::Runtime::InteropServices::Out]
double% lon2,
133 [System::Runtime::InteropServices::Out]
double% azi2,
134 [System::Runtime::InteropServices::Out]
double% M12,
135 [System::Runtime::InteropServices::Out]
double% M21)
137 double llat2, llon2, lazi2, lM12, lM21;
139 llat2, llon2, lazi2, lM12, lM21 );
150 [System::Runtime::InteropServices::Out]
double% lat2,
151 [System::Runtime::InteropServices::Out]
double% lon2,
152 [System::Runtime::InteropServices::Out]
double% azi2,
153 [System::Runtime::InteropServices::Out]
double% m12,
154 [System::Runtime::InteropServices::Out]
double% M12,
155 [System::Runtime::InteropServices::Out]
double% M21)
157 double llat2, llon2, lazi2, lm12, lM12, lM21;
159 llat2, llon2, lazi2, lm12, lM12, lM21 );
171 [System::Runtime::InteropServices::Out]
double% lat2,
172 [System::Runtime::InteropServices::Out]
double% lon2,
173 [System::Runtime::InteropServices::Out]
double% azi2,
174 [System::Runtime::InteropServices::Out]
double% s12,
175 [System::Runtime::InteropServices::Out]
double% m12,
176 [System::Runtime::InteropServices::Out]
double% M12,
177 [System::Runtime::InteropServices::Out]
double% M21,
178 [System::Runtime::InteropServices::Out]
double% S12)
180 double llat2, llon2, lazi2, ls12, lm12, lM12, lM21, lS12;
182 llat2, llon2, lazi2, ls12, lm12, lM12, lM21, lS12 );
195 [System::Runtime::InteropServices::Out]
double% lat2,
196 [System::Runtime::InteropServices::Out]
double% lon2)
207 [System::Runtime::InteropServices::Out]
double% lat2,
208 [System::Runtime::InteropServices::Out]
double% lon2,
209 [System::Runtime::InteropServices::Out]
double% azi2)
211 double llat2, llon2, lazi2;
213 llat2, llon2, lazi2 );
221 [System::Runtime::InteropServices::Out]
double% lat2,
222 [System::Runtime::InteropServices::Out]
double% lon2,
223 [System::Runtime::InteropServices::Out]
double% azi2,
224 [System::Runtime::InteropServices::Out]
double% s12)
226 double llat2, llon2, lazi2, ls12;
228 llat2, llon2, lazi2, ls12 );
237 [System::Runtime::InteropServices::Out]
double% lat2,
238 [System::Runtime::InteropServices::Out]
double% lon2,
239 [System::Runtime::InteropServices::Out]
double% azi2,
240 [System::Runtime::InteropServices::Out]
double% s12,
241 [System::Runtime::InteropServices::Out]
double% m12)
243 double llat2, llon2, lazi2, ls12, lm12;
245 llat2, llon2, lazi2, ls12, lm12 );
255 [System::Runtime::InteropServices::Out]
double% lat2,
256 [System::Runtime::InteropServices::Out]
double% lon2,
257 [System::Runtime::InteropServices::Out]
double% azi2,
258 [System::Runtime::InteropServices::Out]
double% s12,
259 [System::Runtime::InteropServices::Out]
double% M12,
260 [System::Runtime::InteropServices::Out]
double% M21)
262 double llat2, llon2, lazi2, ls12, lM12, lM21;
264 llat2, llon2, lazi2, ls12, lM12, lM21 );
275 [System::Runtime::InteropServices::Out]
double% lat2,
276 [System::Runtime::InteropServices::Out]
double% lon2,
277 [System::Runtime::InteropServices::Out]
double% azi2,
278 [System::Runtime::InteropServices::Out]
double% s12,
279 [System::Runtime::InteropServices::Out]
double% m12,
280 [System::Runtime::InteropServices::Out]
double% M12,
281 [System::Runtime::InteropServices::Out]
double% M21)
283 double llat2, llon2, lazi2, ls12, lm12, lM12, lM21;
285 llat2, llon2, lazi2, ls12, lm12, lM12, lM21 );
297 bool arcmode,
double s12_a12,
299 [System::Runtime::InteropServices::Out]
double% lat2,
300 [System::Runtime::InteropServices::Out]
double% lon2,
301 [System::Runtime::InteropServices::Out]
double% azi2,
302 [System::Runtime::InteropServices::Out]
double% s12,
303 [System::Runtime::InteropServices::Out]
double% m12,
304 [System::Runtime::InteropServices::Out]
double% M12,
305 [System::Runtime::InteropServices::Out]
double% M21,
306 [System::Runtime::InteropServices::Out]
double% S12)
308 double llat2, llon2, lazi2, ls12, lm12, lM12, lM21, lS12;
310 static_cast<unsigned>(outmask), llat2, llon2, lazi2, ls12, lm12, lM12,
325 [System::Runtime::InteropServices::Out]
double% s12,
326 [System::Runtime::InteropServices::Out]
double% azi1,
327 [System::Runtime::InteropServices::Out]
double% azi2,
328 [System::Runtime::InteropServices::Out]
double% m12,
329 [System::Runtime::InteropServices::Out]
double% M12,
330 [System::Runtime::InteropServices::Out]
double% M21,
331 [System::Runtime::InteropServices::Out]
double% S12)
333 double ls12, lazi1, lazi2, lm12, lM12, lM21, lS12;
335 ls12, lazi1, lazi2, lm12, lM12, lM21, lS12 );
348 [System::Runtime::InteropServices::Out]
double% s12)
358 [System::Runtime::InteropServices::Out]
double% azi1,
359 [System::Runtime::InteropServices::Out]
double% azi2)
371 [System::Runtime::InteropServices::Out]
double% s12,
372 [System::Runtime::InteropServices::Out]
double% azi1,
373 [System::Runtime::InteropServices::Out]
double% azi2)
375 double ls12, lazi1, lazi2;
377 ls12, lazi1, lazi2 );
386 [System::Runtime::InteropServices::Out]
double% s12,
387 [System::Runtime::InteropServices::Out]
double% azi1,
388 [System::Runtime::InteropServices::Out]
double% azi2,
389 [System::Runtime::InteropServices::Out]
double% m12)
391 double ls12, lazi1, lazi2, lm12;
393 ls12, lazi1, lazi2, lm12 );
403 [System::Runtime::InteropServices::Out]
double% s12,
404 [System::Runtime::InteropServices::Out]
double% azi1,
405 [System::Runtime::InteropServices::Out]
double% azi2,
406 [System::Runtime::InteropServices::Out]
double% M12,
407 [System::Runtime::InteropServices::Out]
double% M21)
409 double ls12, lazi1, lazi2, lM12, lM21;
411 ls12, lazi1, lazi2, lM12, lM21 );
422 [System::Runtime::InteropServices::Out]
double% s12,
423 [System::Runtime::InteropServices::Out]
double% azi1,
424 [System::Runtime::InteropServices::Out]
double% azi2,
425 [System::Runtime::InteropServices::Out]
double% m12,
426 [System::Runtime::InteropServices::Out]
double% M12,
427 [System::Runtime::InteropServices::Out]
double% M21)
429 double ls12, lazi1, lazi2, lm12, lM12, lM21;
431 ls12, lazi1, lazi2, lm12, lM12, lM21 );
444 [System::Runtime::InteropServices::Out]
double% s12,
445 [System::Runtime::InteropServices::Out]
double% azi1,
446 [System::Runtime::InteropServices::Out]
double% azi2,
447 [System::Runtime::InteropServices::Out]
double% m12,
448 [System::Runtime::InteropServices::Out]
double% M12,
449 [System::Runtime::InteropServices::Out]
double% M21,
450 [System::Runtime::InteropServices::Out]
double% S12)
452 double ls12, lazi1, lazi2, lm12, lM12, lM21, lS12;
454 static_cast<unsigned>(outmask), ls12, lazi1, lazi2, lm12, lM12,
485 lat1, lon1, lat2, lon2, static_cast<unsigned>(caps)));
493 lat1, lon1, azi1, s12, static_cast<unsigned>(caps)));
501 lat1, lon1, azi1, a12, static_cast<unsigned>(caps)));
509 lat1, lon1, azi1, arcmode, s12_a12, static_cast<unsigned>(caps)));
void ArcDirect(real lat1, real lon1, real azi1, real a12, real &lat2, real &lon2, real &azi2, real &s12, real &m12, real &M12, real &M21, real &S12) const
const GeographicLib::GeodesicExact * m_pGeodesicExact
GeodesicLineExact InverseLine(real lat1, real lon1, real lat2, real lon2, unsigned caps=ALL) const
double GenInverse(double lat1, double lon1, double lat2, double lon2, GeodesicExact::mask outmask, [System::Runtime::InteropServices::Out] double%s12, [System::Runtime::InteropServices::Out] double%azi1, [System::Runtime::InteropServices::Out] double%azi2, [System::Runtime::InteropServices::Out] double%m12, [System::Runtime::InteropServices::Out] double%M12, [System::Runtime::InteropServices::Out] double%M21, [System::Runtime::InteropServices::Out] double%S12)
Math::real Flattening() const
Math::real EllipsoidArea() const
real GenInverse(real lat1, real lon1, real lat2, real lon2, unsigned outmask, real &s12, real &salp1, real &calp1, real &salp2, real &calp2, real &m12, real &M12, real &M21, real &S12) const
Exception class for NETGeographicLib.
GeodesicLineExact ArcDirectLine(real lat1, real lon1, real azi1, real a12, unsigned caps=ALL) const
Math::real Direct(real lat1, real lon1, real azi1, real s12, real &lat2, real &lon2, real &azi2, real &m12, real &M12, real &M21, real &S12) const
GeodesicLineExact GenDirectLine(double lat1, double lon1, double azi1, bool arcmode, double s12_a12, NETGeographicLib::Mask caps)
double Inverse(double lat1, double lon1, double lat2, double lon2, [System::Runtime::InteropServices::Out] double%s12, [System::Runtime::InteropServices::Out] double%azi1, [System::Runtime::InteropServices::Out] double%azi2, [System::Runtime::InteropServices::Out] double%m12, [System::Runtime::InteropServices::Out] double%M12, [System::Runtime::InteropServices::Out] double%M21, [System::Runtime::InteropServices::Out] double%S12)
double GenDirect(double lat1, double lon1, double azi1, bool arcmode, double s12_a12, GeodesicExact::mask outmask, [System::Runtime::InteropServices::Out] double%lat2, [System::Runtime::InteropServices::Out] double%lon2, [System::Runtime::InteropServices::Out] double%azi2, [System::Runtime::InteropServices::Out] double%s12, [System::Runtime::InteropServices::Out] double%m12, [System::Runtime::InteropServices::Out] double%M12, [System::Runtime::InteropServices::Out] double%M21, [System::Runtime::InteropServices::Out] double%S12)
Header for GeographicLib::GeodesicLineExact class.
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
GeodesicLineExact Line(double lat1, double lon1, double azi1, NETGeographicLib::Mask caps)
GeodesicLineExact DirectLine(real lat1, real lon1, real azi1, real s12, unsigned caps=ALL) const
double Direct(double lat1, double lon1, double azi1, double s12, [System::Runtime::InteropServices::Out] double%lat2, [System::Runtime::InteropServices::Out] double%lon2, [System::Runtime::InteropServices::Out] double%azi2, [System::Runtime::InteropServices::Out] double%m12, [System::Runtime::InteropServices::Out] double%M12, [System::Runtime::InteropServices::Out] double%M21, [System::Runtime::InteropServices::Out] double%S12)
GeodesicLineExact InverseLine(double lat1, double lon1, double lat2, double lon2, NETGeographicLib::Mask caps)
Math::real GenDirect(real lat1, real lon1, real azi1, bool arcmode, real s12_a12, unsigned outmask, real &lat2, real &lon2, real &azi2, real &s12, real &m12, real &M12, real &M21, real &S12) const
Exact geodesic calculations.
GeodesicLineExact DirectLine(double lat1, double lon1, double azi1, double s12, NETGeographicLib::Mask caps)
Header for GeographicLib::GeodesicExact class.
GeodesicLineExact GenDirectLine(real lat1, real lon1, real azi1, bool arcmode, real s12_a12, unsigned caps=ALL) const
Exception handling for GeographicLib.
GeodesicLineExact ArcDirectLine(double lat1, double lon1, double azi1, double a12, NETGeographicLib::Mask caps)
Header for NETGeographicLib::GeodesicLineExact class.
Math::real MajorRadius() const
.NET wrapper for GeographicLib::GeodesicLineExact.
.NET wrapper for GeographicLib::GeodesicExact.
Header for NETGeographicLib::GeodesicExact class.
Math::real Inverse(real lat1, real lon1, real lat2, real lon2, real &s12, real &azi1, real &azi2, real &m12, real &M12, real &M21, real &S12) const
Container::iterator get(Container &c, Position position)
void ArcDirect(double lat1, double lon1, double azi1, double a12, [System::Runtime::InteropServices::Out] double%lat2, [System::Runtime::InteropServices::Out] double%lon2, [System::Runtime::InteropServices::Out] double%azi2, [System::Runtime::InteropServices::Out] double%s12, [System::Runtime::InteropServices::Out] double%m12, [System::Runtime::InteropServices::Out] double%M12, [System::Runtime::InteropServices::Out] double%M21, [System::Runtime::InteropServices::Out] double%S12)
System::IntPtr GetUnmanaged()
static const GeodesicExact & WGS84()