dotnet/NETGeographicLib/GeodesicExact.cpp
Go to the documentation of this file.
1 
11 #include "stdafx.h"
14 #include "GeodesicExact.h"
15 #include "GeodesicLineExact.h"
16 
17 using namespace NETGeographicLib;
18 
19 const char BADALLOC[] = "Failed to allocate memory for a GeographicLib::GeodesicExact";
20 
21 //*****************************************************************************
23 {
24  if ( m_pGeodesicExact != NULL )
25  {
26  delete m_pGeodesicExact;
27  m_pGeodesicExact = NULL;
28  }
29 }
30 
31 //*****************************************************************************
33 {
34  try
35  {
37  }
38  catch ( std::bad_alloc err )
39  {
40  throw gcnew GeographicErr( BADALLOC );
41  }
42 }
43 
44 //*****************************************************************************
46 {
47  try
48  {
50  }
51  catch ( std::bad_alloc err )
52  {
53  throw gcnew GeographicErr( BADALLOC );
54  }
55  catch ( GeographicLib::GeographicErr err )
56  {
57  throw gcnew GeographicErr( err.what() );
58  }
59 }
60 
61 //*****************************************************************************
62 double GeodesicExact::Direct(double lat1, double lon1, double azi1, double s12,
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)
70 {
71  double llat2, llon2, lazi2, lm12, lM12, lM21, lS12;
72  double out = m_pGeodesicExact->Direct( lat1, lon1, azi1, s12,
73  llat2, llon2, lazi2, lm12, lM12, lM21, lS12 );
74  lat2 = llat2;
75  lon2 = llon2;
76  azi2 = lazi2;
77  m12 = lm12;
78  M12 = lM12;
79  M21 = lM21;
80  S12 = lS12;
81  return out;
82 }
83 
84 //*****************************************************************************
85 double GeodesicExact::Direct(double lat1, double lon1, double azi1, double s12,
86  [System::Runtime::InteropServices::Out] double% lat2,
87  [System::Runtime::InteropServices::Out] double% lon2)
88 {
89  double llat2, llon2;
90  double out = m_pGeodesicExact->Direct( lat1, lon1, azi1, s12,
91  llat2, llon2 );
92  lat2 = llat2;
93  lon2 = llon2;
94  return out;
95 }
96 
97 //*****************************************************************************
98 double GeodesicExact::Direct(double lat1, double lon1, double azi1, double s12,
99  [System::Runtime::InteropServices::Out] double% lat2,
100  [System::Runtime::InteropServices::Out] double% lon2,
101  [System::Runtime::InteropServices::Out] double% azi2)
102 {
103  double llat2, llon2, lazi2;
104  double out = m_pGeodesicExact->Direct( lat1, lon1, azi1, s12,
105  llat2, llon2, lazi2 );
106  lat2 = llat2;
107  lon2 = llon2;
108  azi2 = lazi2;
109  return out;
110 }
111 
112 //*****************************************************************************
113 double GeodesicExact::Direct(double lat1, double lon1, double azi1, double s12,
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)
118 {
119  double llat2, llon2, lazi2, lm12;
120  double out = m_pGeodesicExact->Direct( lat1, lon1, azi1, s12,
121  llat2, llon2, lazi2, lm12 );
122  lat2 = llat2;
123  lon2 = llon2;
124  azi2 = lazi2;
125  m12 = lm12;
126  return out;
127 }
128 
129 //*****************************************************************************
130 double GeodesicExact::Direct(double lat1, double lon1, double azi1, double s12,
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)
136 {
137  double llat2, llon2, lazi2, lM12, lM21;
138  double out = m_pGeodesicExact->Direct( lat1, lon1, azi1, s12,
139  llat2, llon2, lazi2, lM12, lM21 );
140  lat2 = llat2;
141  lon2 = llon2;
142  azi2 = lazi2;
143  M12 = lM12;
144  M21 = lM21;
145  return out;
146 }
147 
148 //*****************************************************************************
149 double GeodesicExact::Direct(double lat1, double lon1, double azi1, double s12,
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)
156 {
157  double llat2, llon2, lazi2, lm12, lM12, lM21;
158  double out = m_pGeodesicExact->Direct( lat1, lon1, azi1, s12,
159  llat2, llon2, lazi2, lm12, lM12, lM21 );
160  lat2 = llat2;
161  lon2 = llon2;
162  azi2 = lazi2;
163  m12 = lm12;
164  M12 = lM12;
165  M21 = lM21;
166  return out;
167 }
168 
169 //*****************************************************************************
170 void GeodesicExact::ArcDirect(double lat1, double lon1, double azi1, double a12,
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)
179 {
180  double llat2, llon2, lazi2, ls12, lm12, lM12, lM21, lS12;
181  m_pGeodesicExact->ArcDirect( lat1, lon1, azi1, a12,
182  llat2, llon2, lazi2, ls12, lm12, lM12, lM21, lS12 );
183  lat2 = llat2;
184  lon2 = llon2;
185  azi2 = lazi2;
186  s12 = ls12;
187  m12 = lm12;
188  M12 = lM12;
189  M21 = lM21;
190  S12 = lS12;
191 }
192 
193 //*****************************************************************************
194 void GeodesicExact::ArcDirect(double lat1, double lon1, double azi1, double a12,
195  [System::Runtime::InteropServices::Out] double% lat2,
196  [System::Runtime::InteropServices::Out] double% lon2)
197 {
198  double llat2, llon2;
199  m_pGeodesicExact->ArcDirect( lat1, lon1, azi1, a12,
200  llat2, llon2 );
201  lat2 = llat2;
202  lon2 = llon2;
203 }
204 
205 //*****************************************************************************
206 void GeodesicExact::ArcDirect(double lat1, double lon1, double azi1, double a12,
207  [System::Runtime::InteropServices::Out] double% lat2,
208  [System::Runtime::InteropServices::Out] double% lon2,
209  [System::Runtime::InteropServices::Out] double% azi2)
210 {
211  double llat2, llon2, lazi2;
212  m_pGeodesicExact->ArcDirect( lat1, lon1, azi1, a12,
213  llat2, llon2, lazi2 );
214  lat2 = llat2;
215  lon2 = llon2;
216  azi2 = lazi2;
217 }
218 
219 //*****************************************************************************
220 void GeodesicExact::ArcDirect(double lat1, double lon1, double azi1, double a12,
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)
225 {
226  double llat2, llon2, lazi2, ls12;
227  m_pGeodesicExact->ArcDirect( lat1, lon1, azi1, a12,
228  llat2, llon2, lazi2, ls12 );
229  lat2 = llat2;
230  lon2 = llon2;
231  azi2 = lazi2;
232  s12 = ls12;
233 }
234 
235 //*****************************************************************************
236 void GeodesicExact::ArcDirect(double lat1, double lon1, double azi1, double a12,
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)
242 {
243  double llat2, llon2, lazi2, ls12, lm12;
244  m_pGeodesicExact->ArcDirect( lat1, lon1, azi1, a12,
245  llat2, llon2, lazi2, ls12, lm12 );
246  lat2 = llat2;
247  lon2 = llon2;
248  azi2 = lazi2;
249  s12 = ls12;
250  m12 = lm12;
251 }
252 
253 //*****************************************************************************
254 void GeodesicExact::ArcDirect(double lat1, double lon1, double azi1, double a12,
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)
261 {
262  double llat2, llon2, lazi2, ls12, lM12, lM21;
263  m_pGeodesicExact->ArcDirect( lat1, lon1, azi1, a12,
264  llat2, llon2, lazi2, ls12, lM12, lM21 );
265  lat2 = llat2;
266  lon2 = llon2;
267  azi2 = lazi2;
268  s12 = ls12;
269  M12 = lM12;
270  M21 = lM21;
271 }
272 
273 //*****************************************************************************
274 void GeodesicExact::ArcDirect(double lat1, double lon1, double azi1, double a12,
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)
282 {
283  double llat2, llon2, lazi2, ls12, lm12, lM12, lM21;
284  m_pGeodesicExact->ArcDirect( lat1, lon1, azi1, a12,
285  llat2, llon2, lazi2, ls12, lm12, lM12, lM21 );
286  lat2 = llat2;
287  lon2 = llon2;
288  azi2 = lazi2;
289  s12 = ls12;
290  m12 = lm12;
291  M12 = lM12;
292  M21 = lM21;
293 }
294 
295 //*****************************************************************************
296 double GeodesicExact::GenDirect(double lat1, double lon1, double azi1,
297  bool arcmode, double s12_a12,
298  GeodesicExact::mask outmask,
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)
307 {
308  double llat2, llon2, lazi2, ls12, lm12, lM12, lM21, lS12;
309  double out = m_pGeodesicExact->GenDirect( lat1, lon1, azi1, arcmode, s12_a12,
310  static_cast<unsigned>(outmask), llat2, llon2, lazi2, ls12, lm12, lM12,
311  lM21, lS12 );
312  lat2 = llat2;
313  lon2 = llon2;
314  azi2 = lazi2;
315  s12 = ls12;
316  m12 = lm12;
317  M12 = lM12;
318  M21 = lM21;
319  S12 = lS12;
320  return out;
321 }
322 
323 //*****************************************************************************
324 double GeodesicExact::Inverse(double lat1, double lon1, double lat2, double lon2,
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)
332 {
333  double ls12, lazi1, lazi2, lm12, lM12, lM21, lS12;
334  double out = m_pGeodesicExact->Inverse( lat1, lon1, lat2, lon2,
335  ls12, lazi1, lazi2, lm12, lM12, lM21, lS12 );
336  s12 = ls12;
337  azi1 = lazi1;
338  azi2 = lazi2;
339  m12 = lm12;
340  M12 = lM12;
341  M21 = lM21;
342  S12 = lS12;
343  return out;
344 }
345 
346 //*****************************************************************************
347 double GeodesicExact::Inverse(double lat1, double lon1, double lat2, double lon2,
348  [System::Runtime::InteropServices::Out] double% s12)
349 {
350  double ls12;
351  double out = m_pGeodesicExact->Inverse( lat1, lon1, lat2, lon2, ls12 );
352  s12 = ls12;
353  return out;
354 }
355 
356 //*****************************************************************************
357 double GeodesicExact::Inverse(double lat1, double lon1, double lat2, double lon2,
358  [System::Runtime::InteropServices::Out] double% azi1,
359  [System::Runtime::InteropServices::Out] double% azi2)
360 {
361  double lazi1, lazi2;
362  double out = m_pGeodesicExact->Inverse( lat1, lon1, lat2, lon2,
363  lazi1, lazi2 );
364  azi1 = lazi1;
365  azi2 = lazi2;
366  return out;
367 }
368 
369 //*****************************************************************************
370 double GeodesicExact::Inverse(double lat1, double lon1, double lat2, double lon2,
371  [System::Runtime::InteropServices::Out] double% s12,
372  [System::Runtime::InteropServices::Out] double% azi1,
373  [System::Runtime::InteropServices::Out] double% azi2)
374 {
375  double ls12, lazi1, lazi2;
376  double out = m_pGeodesicExact->Inverse( lat1, lon1, lat2, lon2,
377  ls12, lazi1, lazi2 );
378  s12 = ls12;
379  azi1 = lazi1;
380  azi2 = lazi2;
381  return out;
382 }
383 
384 //*****************************************************************************
385 double GeodesicExact::Inverse(double lat1, double lon1, double lat2, double lon2,
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)
390 {
391  double ls12, lazi1, lazi2, lm12;
392  double out = m_pGeodesicExact->Inverse( lat1, lon1, lat2, lon2,
393  ls12, lazi1, lazi2, lm12 );
394  s12 = ls12;
395  azi1 = lazi1;
396  azi2 = lazi2;
397  m12 = lm12;
398  return out;
399 }
400 
401 //*****************************************************************************
402 double GeodesicExact::Inverse(double lat1, double lon1, double lat2, double lon2,
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)
408 {
409  double ls12, lazi1, lazi2, lM12, lM21;
410  double out = m_pGeodesicExact->Inverse( lat1, lon1, lat2, lon2,
411  ls12, lazi1, lazi2, lM12, lM21 );
412  s12 = ls12;
413  azi1 = lazi1;
414  azi2 = lazi2;
415  M12 = lM12;
416  M21 = lM21;
417  return out;
418 }
419 
420 //*****************************************************************************
421 double GeodesicExact::Inverse(double lat1, double lon1, double lat2, double lon2,
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)
428 {
429  double ls12, lazi1, lazi2, lm12, lM12, lM21;
430  double out = m_pGeodesicExact->Inverse( lat1, lon1, lat2, lon2,
431  ls12, lazi1, lazi2, lm12, lM12, lM21 );
432  s12 = ls12;
433  azi1 = lazi1;
434  azi2 = lazi2;
435  m12 = lm12;
436  M12 = lM12;
437  M21 = lM21;
438  return out;
439 }
440 
441 //*****************************************************************************
442 double GeodesicExact::GenInverse(double lat1, double lon1, double lat2, double lon2,
443  GeodesicExact::mask outmask,
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)
451 {
452  double ls12, lazi1, lazi2, lm12, lM12, lM21, lS12;
453  double out = m_pGeodesicExact->GenInverse( lat1, lon1, lat2, lon2,
454  static_cast<unsigned>(outmask), ls12, lazi1, lazi2, lm12, lM12,
455  lM21, lS12 );
456  s12 = ls12;
457  azi1 = lazi1;
458  azi2 = lazi2;
459  m12 = lm12;
460  M12 = lM12;
461  M21 = lM21;
462  S12 = lS12;
463  return out;
464 }
465 
466 //*****************************************************************************
468 {
469  return gcnew System::IntPtr( const_cast<void*>(
470  reinterpret_cast<const void*>(m_pGeodesicExact) ) );
471 }
472 
473 //*****************************************************************************
474 GeodesicLineExact^ GeodesicExact::Line(double lat1, double lon1, double azi1,
476 {
477  return gcnew GeodesicLineExact( this, lat1, lon1, azi1, caps );
478 }
479 
480 //*****************************************************************************
482  double lat2, double lon2, NETGeographicLib::Mask caps)
483 {
485  lat1, lon1, lat2, lon2, static_cast<unsigned>(caps)));
486 }
487 
488 //*****************************************************************************
490  double azi1, double s12, NETGeographicLib::Mask caps)
491 {
493  lat1, lon1, azi1, s12, static_cast<unsigned>(caps)));
494 }
495 
496 //*****************************************************************************
498  double azi1, double a12, NETGeographicLib::Mask caps)
499 {
501  lat1, lon1, azi1, a12, static_cast<unsigned>(caps)));
502 }
503 
504 //*****************************************************************************
506  double azi1, bool arcmode, double s12_a12, NETGeographicLib::Mask caps)
507 {
509  lat1, lon1, azi1, arcmode, s12_a12, static_cast<unsigned>(caps)));
510 }
511 
512 //*****************************************************************************
514 { return m_pGeodesicExact->MajorRadius(); }
515 
516 //*****************************************************************************
518 { return m_pGeodesicExact->Flattening(); }
519 
520 //*****************************************************************************
522 { return m_pGeodesicExact->EllipsoidArea(); }
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)
Array33i a
std::ptrdiff_t IntPtr
Definition: Meta.h:50
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)
#define NULL
Definition: ccolamd.c:609
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.
Definition: Constants.hpp:389
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.
Definition: GeodesicExact.h:86
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)
static const GeodesicExact & WGS84()


gtsam
Author(s):
autogenerated on Sat May 8 2021 02:42:08