Geodesic.h
Go to the documentation of this file.
1 
11 #pragma once
12 #include "NETGeographicLib.h"
13 
14 namespace NETGeographicLib
15 {
16  ref class GeodesicLine;
170  public ref class Geodesic
171  {
172  private:
173  // The pointer to the unmanaged GeographicLib::Geodesic.
175 
176  // Frees the unmanaged memory when this object is destroyed.
177  !Geodesic();
178  public:
187  enum class mask {
192  NONE = 0U,
198  LATITUDE = 1U<<7 | unsigned(captype::CAP_NONE),
203  LONGITUDE = 1U<<8 | unsigned(captype::CAP_C3),
210  AZIMUTH = 1U<<9 | unsigned(captype::CAP_NONE),
215  DISTANCE = 1U<<10 | unsigned(captype::CAP_C1),
221  DISTANCE_IN = 1U<<11 | unsigned(captype::CAP_C1) | unsigned(captype::CAP_C1p),
226  REDUCEDLENGTH = 1U<<12 | unsigned(captype::CAP_C1) | unsigned(captype::CAP_C2),
231  GEODESICSCALE = 1U<<13 | unsigned(captype::CAP_C1) | unsigned(captype::CAP_C2),
236  AREA = 1U<<14 | unsigned(captype::CAP_C4),
241  LONG_UNROLL = 1U<<15,
247  ALL = unsigned(captype::OUT_ALL)| unsigned(captype::CAP_ALL),
248  };
251 
261  Geodesic(double a, double f);
262 
266  Geodesic();
268 
272  ~Geodesic() { this->!Geodesic(); }
273 
276 
312  double Direct(double lat1, double lon1, double azi1, double s12,
313  [System::Runtime::InteropServices::Out] double% lat2,
314  [System::Runtime::InteropServices::Out] double% lon2,
315  [System::Runtime::InteropServices::Out] double% azi2,
316  [System::Runtime::InteropServices::Out] double% m12,
317  [System::Runtime::InteropServices::Out] double% M12,
318  [System::Runtime::InteropServices::Out] double% M21,
319  [System::Runtime::InteropServices::Out] double% S12);
320 
324  double Direct(double lat1, double lon1, double azi1, double s12,
325  [System::Runtime::InteropServices::Out] double% lat2,
326  [System::Runtime::InteropServices::Out] double% lon2);
327 
331  double Direct(double lat1, double lon1, double azi1, double s12,
332  [System::Runtime::InteropServices::Out] double% lat2,
333  [System::Runtime::InteropServices::Out] double% lon2,
334  [System::Runtime::InteropServices::Out] double% azi2);
335 
339  double Direct(double lat1, double lon1, double azi1, double s12,
340  [System::Runtime::InteropServices::Out] double% lat2,
341  [System::Runtime::InteropServices::Out] double% lon2,
342  [System::Runtime::InteropServices::Out] double% azi2,
343  [System::Runtime::InteropServices::Out] double% m12);
344 
348  double Direct(double lat1, double lon1, double azi1, double s12,
349  [System::Runtime::InteropServices::Out] double% lat2,
350  [System::Runtime::InteropServices::Out] double% lon2,
351  [System::Runtime::InteropServices::Out] double% azi2,
352  [System::Runtime::InteropServices::Out] double% M12,
353  [System::Runtime::InteropServices::Out] double% M21);
354 
358  double Direct(double lat1, double lon1, double azi1, double s12,
359  [System::Runtime::InteropServices::Out] double% lat2,
360  [System::Runtime::InteropServices::Out] double% lon2,
361  [System::Runtime::InteropServices::Out] double% azi2,
362  [System::Runtime::InteropServices::Out] double% m12,
363  [System::Runtime::InteropServices::Out] double% M12,
364  [System::Runtime::InteropServices::Out] double% M21);
366 
369 
404  void ArcDirect(double lat1, double lon1, double azi1, double a12,
405  [System::Runtime::InteropServices::Out] double% lat2,
406  [System::Runtime::InteropServices::Out] double% lon2,
407  [System::Runtime::InteropServices::Out] double% azi2,
408  [System::Runtime::InteropServices::Out] double% s12,
409  [System::Runtime::InteropServices::Out] double% m12,
410  [System::Runtime::InteropServices::Out] double% M12,
411  [System::Runtime::InteropServices::Out] double% M21,
412  [System::Runtime::InteropServices::Out] double% S12);
413 
417  void ArcDirect(double lat1, double lon1, double azi1, double a12,
418  [System::Runtime::InteropServices::Out] double% lat2,
419  [System::Runtime::InteropServices::Out] double% lon2);
420 
424  void ArcDirect(double lat1, double lon1, double azi1, double a12,
425  [System::Runtime::InteropServices::Out] double% lat2,
426  [System::Runtime::InteropServices::Out] double% lon2,
427  [System::Runtime::InteropServices::Out] double% azi2);
428 
432  void ArcDirect(double lat1, double lon1, double azi1, double a12,
433  [System::Runtime::InteropServices::Out] double% lat2,
434  [System::Runtime::InteropServices::Out] double% lon2,
435  [System::Runtime::InteropServices::Out] double% azi2,
436  [System::Runtime::InteropServices::Out] double% s12);
437 
441  void ArcDirect(double lat1, double lon1, double azi1, double a12,
442  [System::Runtime::InteropServices::Out] double% lat2,
443  [System::Runtime::InteropServices::Out] double% lon2,
444  [System::Runtime::InteropServices::Out] double% azi2,
445  [System::Runtime::InteropServices::Out] double% s12,
446  [System::Runtime::InteropServices::Out] double% m12);
447 
451  void ArcDirect(double lat1, double lon1, double azi1, double a12,
452  [System::Runtime::InteropServices::Out] double% lat2,
453  [System::Runtime::InteropServices::Out] double% lon2,
454  [System::Runtime::InteropServices::Out] double% azi2,
455  [System::Runtime::InteropServices::Out] double% s12,
456  [System::Runtime::InteropServices::Out] double% M12,
457  [System::Runtime::InteropServices::Out] double% M21);
458 
462  void ArcDirect(double lat1, double lon1, double azi1, double a12,
463  [System::Runtime::InteropServices::Out] double% lat2,
464  [System::Runtime::InteropServices::Out] double% lon2,
465  [System::Runtime::InteropServices::Out] double% azi2,
466  [System::Runtime::InteropServices::Out] double% s12,
467  [System::Runtime::InteropServices::Out] double% m12,
468  [System::Runtime::InteropServices::Out] double% M12,
469  [System::Runtime::InteropServices::Out] double% M21);
471 
474 
526  double GenDirect(double lat1, double lon1, double azi1,
527  bool arcmode, double s12_a12,
528  Geodesic::mask outmask,
529  [System::Runtime::InteropServices::Out] double% lat2,
530  [System::Runtime::InteropServices::Out] double% lon2,
531  [System::Runtime::InteropServices::Out] double% azi2,
532  [System::Runtime::InteropServices::Out] double% s12,
533  [System::Runtime::InteropServices::Out] double% m12,
534  [System::Runtime::InteropServices::Out] double% M12,
535  [System::Runtime::InteropServices::Out] double% M21,
536  [System::Runtime::InteropServices::Out] double% S12);
538 
541 
577  double Inverse(double lat1, double lon1, double lat2, double lon2,
578  [System::Runtime::InteropServices::Out] double% s12,
579  [System::Runtime::InteropServices::Out] double% azi1,
580  [System::Runtime::InteropServices::Out] double% azi2,
581  [System::Runtime::InteropServices::Out] double% m12,
582  [System::Runtime::InteropServices::Out] double% M12,
583  [System::Runtime::InteropServices::Out] double% M21,
584  [System::Runtime::InteropServices::Out] double% S12);
585 
589  double Inverse(double lat1, double lon1, double lat2, double lon2,
590  [System::Runtime::InteropServices::Out] double% s12);
591 
595  double Inverse(double lat1, double lon1, double lat2, double lon2,
596  [System::Runtime::InteropServices::Out] double% azi1,
597  [System::Runtime::InteropServices::Out] double% azi2);
598 
602  double Inverse(double lat1, double lon1, double lat2, double lon2,
603  [System::Runtime::InteropServices::Out] double% s12,
604  [System::Runtime::InteropServices::Out] double% azi1,
605  [System::Runtime::InteropServices::Out] double% azi2);
606 
610  double Inverse(double lat1, double lon1, double lat2, double lon2,
611  [System::Runtime::InteropServices::Out] double% s12,
612  [System::Runtime::InteropServices::Out] double% azi1,
613  [System::Runtime::InteropServices::Out] double% azi2,
614  [System::Runtime::InteropServices::Out] double% m12);
615 
619  double Inverse(double lat1, double lon1, double lat2, double lon2,
620  [System::Runtime::InteropServices::Out] double% s12,
621  [System::Runtime::InteropServices::Out] double% azi1,
622  [System::Runtime::InteropServices::Out] double% azi2,
623  [System::Runtime::InteropServices::Out] double% M12,
624  [System::Runtime::InteropServices::Out] double% M21);
625 
629  double Inverse(double lat1, double lon1, double lat2, double lon2,
630  [System::Runtime::InteropServices::Out] double% s12,
631  [System::Runtime::InteropServices::Out] double% azi1,
632  [System::Runtime::InteropServices::Out] double% azi2,
633  [System::Runtime::InteropServices::Out] double% m12,
634  [System::Runtime::InteropServices::Out] double% M12,
635  [System::Runtime::InteropServices::Out] double% M21);
637 
640 
674  double GenInverse(double lat1, double lon1, double lat2, double lon2,
675  Geodesic::mask outmask,
676  [System::Runtime::InteropServices::Out] double% s12,
677  [System::Runtime::InteropServices::Out] double% azi1,
678  [System::Runtime::InteropServices::Out] double% azi2,
679  [System::Runtime::InteropServices::Out] double% m12,
680  [System::Runtime::InteropServices::Out] double% M12,
681  [System::Runtime::InteropServices::Out] double% M21,
682  [System::Runtime::InteropServices::Out] double% S12);
684 
687 
724  GeodesicLine^ Line(double lat1, double lon1, double azi1,
725  NETGeographicLib::Mask caps );
726 
745  GeodesicLine^ InverseLine(double lat1, double lon1, double lat2,
746  double lon2, NETGeographicLib::Mask caps);
747 
768  GeodesicLine^ DirectLine(double lat1, double lon1, double azi1,
769  double s12, NETGeographicLib::Mask caps);
770 
791  GeodesicLine^ ArcDirectLine(double lat1, double lon1, double azi1,
792  double a12, NETGeographicLib::Mask caps);
793 
817  GeodesicLine^ GenDirectLine(double lat1, double lon1, double azi1,
818  bool arcmode, double s12_a12,
821 
824 
830  property double MajorRadius { double get(); }
831 
836  property double Flattening { double get(); }
837 
844  property double EllipsoidArea { double get(); }
845 
853  };
854 } // namespace NETGeographicLib
GeodesicLine ArcDirectLine(double lat1, double lon1, double azi1, double a12, NETGeographicLib::Mask caps)
GeodesicLine Line(double lat1, double lon1, double azi1, NETGeographicLib::Mask caps)
Header for NETGeographicLib::NETGeographicLib objects.
property double EllipsoidArea
Definition: Geodesic.h:844
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)
GeodesicLine GenDirectLine(double lat1, double lon1, double azi1, bool arcmode, double s12_a12, NETGeographicLib::Mask caps)
property double MajorRadius
Definition: Geodesic.h:830
const GeographicLib::Geodesic * m_pGeodesic
Definition: Geodesic.h:174
GeodesicLine InverseLine(double lat1, double lon1, double lat2, double lon2, NETGeographicLib::Mask caps)
std::ptrdiff_t IntPtr
Definition: Meta.h:91
.NET wrapper for GeographicLib::GeodesicLine.
Definition: GeodesicLine.h:75
.NET wrapper for GeographicLib::Geodesic.
Definition: Geodesic.h:170
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)
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)
property double Flattening
Definition: Geodesic.h:836
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)
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)
Geodesic calculations
Definition: Geodesic.hpp:172
~Geodesic()
the destructor calls the finalizer.
Definition: Geodesic.h:272


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:34:17