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)));
514 {
return m_pGeodesicExact->MajorRadius(); }
518 {
return m_pGeodesicExact->Flattening(); }
522 {
return m_pGeodesicExact->EllipsoidArea(); }