dotnet/NETGeographicLib/Geodesic.cpp
Go to the documentation of this file.
1 
11 #include "stdafx.h"
14 #include "Geodesic.h"
15 #include "GeodesicLine.h"
16 #include "NETGeographicLib.h"
17 
18 using namespace NETGeographicLib;
19 
20 const char BADALLOC[] = "Failed to allocate memory for a GeographicLib::Geodesic";
21 
22 //*****************************************************************************
24 {
25  if ( m_pGeodesic != NULL )
26  {
27  delete m_pGeodesic;
28  m_pGeodesic = NULL;
29  }
30 }
31 
32 //*****************************************************************************
33 Geodesic::Geodesic(double a, double f)
34 {
35  try
36  {
38  }
39  catch ( std::bad_alloc err )
40  {
41  throw gcnew GeographicErr( BADALLOC );
42  }
43  catch ( GeographicLib::GeographicErr err )
44  {
45  throw gcnew GeographicErr( err.what() );
46  }
47 }
48 
49 //*****************************************************************************
51 {
52  try
53  {
55  }
56  catch ( std::bad_alloc )
57  {
58  throw gcnew GeographicErr( BADALLOC );
59  }
60 }
61 
62 //*****************************************************************************
63 double Geodesic::Direct(double lat1, double lon1, double azi1, double s12,
64  [System::Runtime::InteropServices::Out] double% lat2,
65  [System::Runtime::InteropServices::Out] double% lon2,
66  [System::Runtime::InteropServices::Out] double% azi2,
67  [System::Runtime::InteropServices::Out] double% m12,
68  [System::Runtime::InteropServices::Out] double% M12,
69  [System::Runtime::InteropServices::Out] double% M21,
70  [System::Runtime::InteropServices::Out] double% S12)
71 {
72  double llat2, llon2, lazi2, lm12, lM12, lM21, lS12;
73  double out = m_pGeodesic->Direct(lat1, lon1, azi1, s12,
74  llat2, llon2, lazi2, lm12, lM12, lM21, lS12);
75  lat2 = llat2;
76  lon2 = llon2;
77  azi2 = lazi2;
78  m12 = lm12;
79  M12 = lM12;
80  M21 = lM21;
81  S12 = lS12;
82  return out;
83 }
84 
85 //*****************************************************************************
86 double Geodesic::Direct(double lat1, double lon1, double azi1, double s12,
87  [System::Runtime::InteropServices::Out] double% lat2,
88  [System::Runtime::InteropServices::Out] double% lon2)
89 {
90  double llat2, llon2;
91  double out = m_pGeodesic->Direct(lat1, lon1, azi1, s12,
92  llat2, llon2 );
93  lat2 = llat2;
94  lon2 = llon2;
95  return out;
96 }
97 
98 //*****************************************************************************
99 double Geodesic::Direct(double lat1, double lon1, double azi1, double s12,
100  [System::Runtime::InteropServices::Out] double% lat2,
101  [System::Runtime::InteropServices::Out] double% lon2,
102  [System::Runtime::InteropServices::Out] double% azi2)
103 {
104  double llat2, llon2, lazi2;
105  double out = m_pGeodesic->Direct(lat1, lon1, azi1, s12,
106  llat2, llon2, lazi2 );
107  lat2 = llat2;
108  lon2 = llon2;
109  azi2 = lazi2;
110  return out;
111 }
112 
113 //*****************************************************************************
114 double Geodesic::Direct(double lat1, double lon1, double azi1, double s12,
115  [System::Runtime::InteropServices::Out] double% lat2,
116  [System::Runtime::InteropServices::Out] double% lon2,
117  [System::Runtime::InteropServices::Out] double% azi2,
118  [System::Runtime::InteropServices::Out] double% m12)
119 {
120  double llat2, llon2, lazi2, lm12;
121  double out = m_pGeodesic->Direct(lat1, lon1, azi1, s12,
122  llat2, llon2, lazi2, lm12 );
123  lat2 = llat2;
124  lon2 = llon2;
125  azi2 = lazi2;
126  m12 = lm12;
127  return out;
128 }
129 
130 //*****************************************************************************
131 double Geodesic::Direct(double lat1, double lon1, double azi1, double s12,
132  [System::Runtime::InteropServices::Out] double% lat2,
133  [System::Runtime::InteropServices::Out] double% lon2,
134  [System::Runtime::InteropServices::Out] double% azi2,
135  [System::Runtime::InteropServices::Out] double% M12,
136  [System::Runtime::InteropServices::Out] double% M21)
137 {
138  double llat2, llon2, lazi2, lM12, lM21;
139  double out = m_pGeodesic->Direct(lat1, lon1, azi1, s12,
140  llat2, llon2, lazi2, lM12, lM21);
141  lat2 = llat2;
142  lon2 = llon2;
143  azi2 = lazi2;
144  M12 = lM12;
145  M21 = lM21;
146  return out;
147 }
148 
149 //*****************************************************************************
150 double Geodesic::Direct(double lat1, double lon1, double azi1, double s12,
151  [System::Runtime::InteropServices::Out] double% lat2,
152  [System::Runtime::InteropServices::Out] double% lon2,
153  [System::Runtime::InteropServices::Out] double% azi2,
154  [System::Runtime::InteropServices::Out] double% m12,
155  [System::Runtime::InteropServices::Out] double% M12,
156  [System::Runtime::InteropServices::Out] double% M21)
157 {
158  double llat2, llon2, lazi2, lm12, lM12, lM21;
159  double out = m_pGeodesic->Direct(lat1, lon1, azi1, s12,
160  llat2, llon2, lazi2, lm12, lM12, lM21 );
161  lat2 = llat2;
162  lon2 = llon2;
163  azi2 = lazi2;
164  m12 = lm12;
165  M12 = lM12;
166  M21 = lM21;
167  return out;
168 }
169 
170 //*****************************************************************************
171 void Geodesic::ArcDirect(double lat1, double lon1, double azi1, double a12,
172  [System::Runtime::InteropServices::Out] double% lat2,
173  [System::Runtime::InteropServices::Out] double% lon2,
174  [System::Runtime::InteropServices::Out] double% azi2,
175  [System::Runtime::InteropServices::Out] double% s12,
176  [System::Runtime::InteropServices::Out] double% m12,
177  [System::Runtime::InteropServices::Out] double% M12,
178  [System::Runtime::InteropServices::Out] double% M21,
179  [System::Runtime::InteropServices::Out] double% S12)
180 {
181  double llat2, llon2, lazi2, ls12, lm12, lM12, lM21, lS12;
182  m_pGeodesic->ArcDirect(lat1, lon1, azi1, a12,
183  llat2, llon2, lazi2, ls12, lm12, lM12, lM21, lS12);
184  lat2 = llat2;
185  lon2 = llon2;
186  azi2 = lazi2;
187  s12 = ls12;
188  m12 = lm12;
189  M12 = lM12;
190  M21 = lM21;
191  S12 = lS12;
192 }
193 
194 //*****************************************************************************
195 void Geodesic::ArcDirect(double lat1, double lon1, double azi1, double a12,
196  [System::Runtime::InteropServices::Out] double% lat2,
197  [System::Runtime::InteropServices::Out] double% lon2)
198 {
199  double llat2, llon2;
200  m_pGeodesic->ArcDirect(lat1, lon1, azi1, a12, llat2, llon2 );
201  lat2 = llat2;
202  lon2 = llon2;
203 }
204 
205 //*****************************************************************************
206 void Geodesic::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_pGeodesic->ArcDirect(lat1, lon1, azi1, a12, llat2, llon2, lazi2 );
213  lat2 = llat2;
214  lon2 = llon2;
215  azi2 = lazi2;
216 }
217 
218 //*****************************************************************************
219 void Geodesic::ArcDirect(double lat1, double lon1, double azi1, double a12,
220  [System::Runtime::InteropServices::Out] double% lat2,
221  [System::Runtime::InteropServices::Out] double% lon2,
222  [System::Runtime::InteropServices::Out] double% azi2,
223  [System::Runtime::InteropServices::Out] double% s12)
224 {
225  double llat2, llon2, lazi2, ls12;
226  m_pGeodesic->ArcDirect(lat1, lon1, azi1, a12,
227  llat2, llon2, lazi2, ls12 );
228  lat2 = llat2;
229  lon2 = llon2;
230  azi2 = lazi2;
231  s12 = ls12;
232 }
233 
234 //*****************************************************************************
235 void Geodesic::ArcDirect(double lat1, double lon1, double azi1, double a12,
236  [System::Runtime::InteropServices::Out] double% lat2,
237  [System::Runtime::InteropServices::Out] double% lon2,
238  [System::Runtime::InteropServices::Out] double% azi2,
239  [System::Runtime::InteropServices::Out] double% s12,
240  [System::Runtime::InteropServices::Out] double% m12)
241 {
242  double llat2, llon2, lazi2, ls12, lm12;
243  m_pGeodesic->ArcDirect(lat1, lon1, azi1, a12,
244  llat2, llon2, lazi2, ls12, lm12 );
245  lat2 = llat2;
246  lon2 = llon2;
247  azi2 = lazi2;
248  s12 = ls12;
249  m12 = lm12;
250 }
251 
252 //*****************************************************************************
253 void Geodesic::ArcDirect(double lat1, double lon1, double azi1, double a12,
254  [System::Runtime::InteropServices::Out] double% lat2,
255  [System::Runtime::InteropServices::Out] double% lon2,
256  [System::Runtime::InteropServices::Out] double% azi2,
257  [System::Runtime::InteropServices::Out] double% s12,
258  [System::Runtime::InteropServices::Out] double% M12,
259  [System::Runtime::InteropServices::Out] double% M21)
260 {
261  double llat2, llon2, lazi2, ls12, lM12, lM21;
262  m_pGeodesic->ArcDirect(lat1, lon1, azi1, a12,
263  llat2, llon2, lazi2, ls12, lM12, lM21 );
264  lat2 = llat2;
265  lon2 = llon2;
266  azi2 = lazi2;
267  s12 = ls12;
268  M12 = lM12;
269  M21 = lM21;
270 }
271 
272 //*****************************************************************************
273 void Geodesic::ArcDirect(double lat1, double lon1, double azi1, double a12,
274  [System::Runtime::InteropServices::Out] double% lat2,
275  [System::Runtime::InteropServices::Out] double% lon2,
276  [System::Runtime::InteropServices::Out] double% azi2,
277  [System::Runtime::InteropServices::Out] double% s12,
278  [System::Runtime::InteropServices::Out] double% m12,
279  [System::Runtime::InteropServices::Out] double% M12,
280  [System::Runtime::InteropServices::Out] double% M21)
281 {
282  double llat2, llon2, lazi2, ls12, lm12, lM12, lM21;
283  m_pGeodesic->ArcDirect(lat1, lon1, azi1, a12,
284  llat2, llon2, lazi2, ls12, lm12, lM12, lM21);
285  lat2 = llat2;
286  lon2 = llon2;
287  azi2 = lazi2;
288  m12 = lm12;
289  s12 = ls12;
290  M12 = lM12;
291  M21 = lM21;
292 }
293 
294 //*****************************************************************************
295 double Geodesic::GenDirect(double lat1, double lon1, double azi1,
296  bool arcmode, double s12_a12,
297  Geodesic::mask outmask,
298  [System::Runtime::InteropServices::Out] double% lat2,
299  [System::Runtime::InteropServices::Out] double% lon2,
300  [System::Runtime::InteropServices::Out] double% azi2,
301  [System::Runtime::InteropServices::Out] double% s12,
302  [System::Runtime::InteropServices::Out] double% m12,
303  [System::Runtime::InteropServices::Out] double% M12,
304  [System::Runtime::InteropServices::Out] double% M21,
305  [System::Runtime::InteropServices::Out] double% S12)
306 {
307  double llat2, llon2, lazi2, lm12, lM12, lM21, ls12, lS12;
308  double out = m_pGeodesic->GenDirect(lat1, lon1, azi1, arcmode, s12_a12,
309  static_cast<unsigned>(outmask),
310  llat2, llon2, lazi2, ls12, lm12, lM12, lM21, lS12);
311  lat2 = llat2;
312  lon2 = llon2;
313  azi2 = lazi2;
314  m12 = lm12;
315  M12 = lM12;
316  M21 = lM21;
317  s12 = ls12;
318  S12 = lS12;
319  return out;
320 }
321 
322 //*****************************************************************************
323 double Geodesic::Inverse(double lat1, double lon1, double lat2, double lon2,
324  [System::Runtime::InteropServices::Out] double% s12,
325  [System::Runtime::InteropServices::Out] double% azi1,
326  [System::Runtime::InteropServices::Out] double% azi2,
327  [System::Runtime::InteropServices::Out] double% m12,
328  [System::Runtime::InteropServices::Out] double% M12,
329  [System::Runtime::InteropServices::Out] double% M21,
330  [System::Runtime::InteropServices::Out] double% S12)
331 {
332  double ls12, lazi1, lazi2, lm12, lM12, lM21, lS12;
333  double out = m_pGeodesic->Inverse(lat1, lon1, lat2, lon2,
334  ls12, lazi1, lazi2, lm12, lM12, lM21, lS12);
335  s12 = ls12;
336  azi1 = lazi1;
337  azi2 = lazi2;
338  m12 = lm12;
339  M12 = lM12;
340  M21 = lM21;
341  S12 = lS12;
342  return out;
343 }
344 
345 //*****************************************************************************
346 double Geodesic::Inverse(double lat1, double lon1, double lat2, double lon2,
347  [System::Runtime::InteropServices::Out] double% s12)
348 {
349  double ls12;
350  double out = m_pGeodesic->Inverse(lat1, lon1, lat2, lon2, ls12 );
351  s12 = ls12;
352  return out;
353 }
354 
355 //*****************************************************************************
356 double Geodesic::Inverse(double lat1, double lon1, double lat2, double lon2,
357  [System::Runtime::InteropServices::Out] double% azi1,
358  [System::Runtime::InteropServices::Out] double% azi2)
359 {
360  double lazi1, lazi2;
361  double out = m_pGeodesic->Inverse(lat1, lon1, lat2, lon2, lazi1, lazi2);
362  azi1 = lazi1;
363  azi2 = lazi2;
364  return out;
365 }
366 
367 //*****************************************************************************
368 double Geodesic::Inverse(double lat1, double lon1, double lat2, double lon2,
369  [System::Runtime::InteropServices::Out] double% s12,
370  [System::Runtime::InteropServices::Out] double% azi1,
371  [System::Runtime::InteropServices::Out] double% azi2)
372 {
373  double ls12, lazi1, lazi2;
374  double out = m_pGeodesic->Inverse(lat1, lon1, lat2, lon2,
375  ls12, lazi1, lazi2 );
376  azi1 = lazi1;
377  azi2 = lazi2;
378  s12 = ls12;
379  return out;
380 }
381 
382 //*****************************************************************************
383 double Geodesic::Inverse(double lat1, double lon1, double lat2, double lon2,
384  [System::Runtime::InteropServices::Out] double% s12,
385  [System::Runtime::InteropServices::Out] double% azi1,
386  [System::Runtime::InteropServices::Out] double% azi2,
387  [System::Runtime::InteropServices::Out] double% m12)
388 {
389  double ls12, lazi1, lazi2, lm12;
390  double out = m_pGeodesic->Inverse(lat1, lon1, lat2, lon2,
391  ls12, lazi1, lazi2, lm12 );
392  azi1 = lazi1;
393  azi2 = lazi2;
394  s12 = ls12;
395  m12 = lm12;
396  return out;
397 }
398 
399 //*****************************************************************************
400 double Geodesic::Inverse(double lat1, double lon1, double lat2, double lon2,
401  [System::Runtime::InteropServices::Out] double% s12,
402  [System::Runtime::InteropServices::Out] double% azi1,
403  [System::Runtime::InteropServices::Out] double% azi2,
404  [System::Runtime::InteropServices::Out] double% M12,
405  [System::Runtime::InteropServices::Out] double% M21)
406 {
407  double ls12, lazi1, lazi2, lM12, lM21;
408  double out = m_pGeodesic->Inverse(lat1, lon1, lat2, lon2,
409  ls12, lazi1, lazi2, lM12, lM21 );
410  azi1 = lazi1;
411  azi2 = lazi2;
412  s12 = ls12;
413  M12 = lM12;
414  M21 = lM21;
415  return out;
416 }
417 
418 //*****************************************************************************
419 double Geodesic::Inverse(double lat1, double lon1, double lat2, double lon2,
420  [System::Runtime::InteropServices::Out] double% s12,
421  [System::Runtime::InteropServices::Out] double% azi1,
422  [System::Runtime::InteropServices::Out] double% azi2,
423  [System::Runtime::InteropServices::Out] double% m12,
424  [System::Runtime::InteropServices::Out] double% M12,
425  [System::Runtime::InteropServices::Out] double% M21)
426 {
427  double ls12, lazi1, lazi2, lm12, lM12, lM21;
428  double out = m_pGeodesic->Inverse(lat1, lon1, lat2, lon2,
429  ls12, lazi1, lazi2, lm12, lM12, lM21 );
430  azi1 = lazi1;
431  azi2 = lazi2;
432  s12 = ls12;
433  m12 = lm12;
434  M12 = lM12;
435  M21 = lM21;
436  return out;
437 }
438 
439 //*****************************************************************************
440 double Geodesic::GenInverse(double lat1, double lon1, double lat2, double lon2,
441  Geodesic::mask outmask,
442  [System::Runtime::InteropServices::Out] double% s12,
443  [System::Runtime::InteropServices::Out] double% azi1,
444  [System::Runtime::InteropServices::Out] double% azi2,
445  [System::Runtime::InteropServices::Out] double% m12,
446  [System::Runtime::InteropServices::Out] double% M12,
447  [System::Runtime::InteropServices::Out] double% M21,
448  [System::Runtime::InteropServices::Out] double% S12)
449 {
450  double ls12, lazi1, lazi2, lm12, lM12, lM21, lS12;
451  double out = m_pGeodesic->GenInverse(lat1, lon1, lat2, lon2,
452  static_cast<unsigned>(outmask),
453  ls12, lazi1, lazi2, lm12, lM12, lM21, lS12);
454  azi1 = lazi1;
455  azi2 = lazi2;
456  s12 = ls12;
457  m12 = lm12;
458  M12 = lM12;
459  M21 = lM21;
460  S12 = lS12;
461  return out;
462 }
463 
464 //*****************************************************************************
466 {
467  return gcnew System::IntPtr( const_cast<void*>(reinterpret_cast<const void*>(m_pGeodesic)) );
468 }
469 
470 //*****************************************************************************
471 GeodesicLine^ Geodesic::Line(double lat1, double lon1, double azi1,
473 {
474  return gcnew GeodesicLine( this, lat1, lon1, azi1, caps );
475 }
476 
477 //*****************************************************************************
478 GeodesicLine^ Geodesic::InverseLine(double lat1, double lon1, double lat2,
479  double lon2, NETGeographicLib::Mask caps)
480 {
481  return gcnew GeodesicLine(m_pGeodesic->InverseLine(lat1, lon1, lat2,
482  lon2, static_cast<unsigned int>(caps)));
483 }
484 
485 //*****************************************************************************
486 GeodesicLine^ Geodesic::DirectLine(double lat1, double lon1, double azi1,
487  double s12, NETGeographicLib::Mask caps)
488 {
489  return gcnew GeodesicLine(m_pGeodesic->DirectLine(lat1, lon1, azi1,
490  s12, static_cast<unsigned int>(caps)));
491 }
492 
493 //*****************************************************************************
494 GeodesicLine^ Geodesic::ArcDirectLine(double lat1, double lon1, double azi1,
495  double a12, NETGeographicLib::Mask caps)
496 {
497  return gcnew GeodesicLine(m_pGeodesic->ArcDirectLine(lat1, lon1, azi1,
498  a12, static_cast<unsigned int>(caps)));
499 }
500 
501 //*****************************************************************************
502 GeodesicLine^ Geodesic::GenDirectLine(double lat1, double lon1, double azi1,
503  bool arcmode, double s12_a12, NETGeographicLib::Mask caps)
504 {
505  return gcnew GeodesicLine(m_pGeodesic->GenDirectLine(lat1, lon1, azi1,
506  arcmode, s12_a12, static_cast<unsigned int>(caps)));
507 }
508 
509 //*****************************************************************************
510 double Geodesic::MajorRadius::get() { return m_pGeodesic->MajorRadius(); }
511 
512 //*****************************************************************************
513 double Geodesic::Flattening::get() { return m_pGeodesic->Flattening(); }
514 
515 //*****************************************************************************
GeodesicLine ArcDirectLine(real lat1, real lon1, real azi1, real a12, unsigned caps=ALL) const
Header for GeographicLib::GeodesicLine class.
GeodesicLine ArcDirectLine(double lat1, double lon1, double azi1, double a12, NETGeographicLib::Mask caps)
double GenInverse(double lat1, double lon1, double lat2, double lon2, Geodesic::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)
GeodesicLine Line(double lat1, double lon1, double azi1, NETGeographicLib::Mask caps)
Header for NETGeographicLib::NETGeographicLib objects.
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
Definition: Geodesic.hpp:379
static const Geodesic & WGS84()
Exception class for NETGeographicLib.
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
Definition: Geodesic.hpp:674
GeodesicLine GenDirectLine(double lat1, double lon1, double azi1, bool arcmode, double s12_a12, NETGeographicLib::Mask caps)
double GenDirect(double lat1, double lon1, double azi1, bool arcmode, double s12_a12, Geodesic::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)
const GeographicLib::Geodesic * m_pGeodesic
Definition: Geodesic.h:174
Math::real MajorRadius() const
Definition: Geodesic.hpp:943
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
Header for NETGeographicLib::GeodesicLine class.
GeodesicLine InverseLine(double lat1, double lon1, double lat2, double lon2, NETGeographicLib::Mask caps)
Array33i a
GeodesicLine DirectLine(real lat1, real lon1, real azi1, real s12, unsigned caps=ALL) const
std::ptrdiff_t IntPtr
Definition: Meta.h:50
Header for GeographicLib::Geodesic class.
.NET wrapper for GeographicLib::GeodesicLine.
Definition: GeodesicLine.h:75
const char BADALLOC[]
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
.NET wrapper for GeographicLib::Geodesic.
Definition: Geodesic.h:170
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
GeodesicLine DirectLine(double lat1, double lon1, double azi1, double s12, 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)
#define NULL
Definition: ccolamd.c:609
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)
Math::real EllipsoidArea() const
Definition: Geodesic.hpp:957
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
Definition: Geodesic.hpp:491
Exception handling for GeographicLib.
Definition: Constants.hpp:389
GeodesicLine InverseLine(real lat1, real lon1, real lat2, real lon2, unsigned caps=ALL) const
Math::real Flattening() const
Definition: Geodesic.hpp:949
GeodesicLine GenDirectLine(real lat1, real lon1, real azi1, bool arcmode, real s12_a12, unsigned caps=ALL) const
Container::iterator get(Container &c, Position position)
Header for NETGeographicLib::Geodesic class.
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)
Geodesic calculations
Definition: Geodesic.hpp:172


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