GeodesicExact.h
Go to the documentation of this file.
1 #pragma once
2 
12 #include "NETGeographicLib.h"
13 
14 namespace NETGeographicLib
15 {
16  ref class GeodesicLineExact;
86  public ref class GeodesicExact
87  {
88  private:
89  enum class captype {
90  CAP_NONE = 0U,
91  CAP_E = 1U<<0,
92  // Skip 1U<<1 for compatibility with Geodesic (not required)
93  CAP_D = 1U<<2,
94  CAP_H = 1U<<3,
95  CAP_C4 = 1U<<4,
96  CAP_ALL = 0x1FU,
97  CAP_MASK = CAP_ALL,
98  OUT_ALL = 0x7F80U,
99  OUT_MASK = 0xFF80U, // Includes LONG_UNROLL
100  };
101  // pointer to the unmanaged GeographicLib::GeodesicExact.
103 
104  // the finalizer deletes the unmanaged memory.
105  !GeodesicExact();
106  public:
116  enum class mask {
121  NONE = 0U,
127  LATITUDE = 1U<<7 | unsigned(captype::CAP_NONE),
132  LONGITUDE = 1U<<8 | unsigned(captype::CAP_H),
139  AZIMUTH = 1U<<9 | unsigned(captype::CAP_NONE),
144  DISTANCE = 1U<<10 | unsigned(captype::CAP_E),
150  DISTANCE_IN = 1U<<11 | unsigned(captype::CAP_E),
155  REDUCEDLENGTH = 1U<<12 | unsigned(captype::CAP_D),
160  GEODESICSCALE = 1U<<13 | unsigned(captype::CAP_D),
165  AREA = 1U<<14 | unsigned(captype::CAP_C4),
170  LONG_UNROLL = 1U<<15,
176  ALL = unsigned(captype::OUT_ALL)| unsigned(captype::CAP_ALL),
177  };
178 
181 
185  GeodesicExact();
186 
196  GeodesicExact(double a, double f);
198 
203  { this->!GeodesicExact(); }
204 
207 
243  double Direct(double lat1, double lon1, double azi1, double s12,
244  [System::Runtime::InteropServices::Out] double% lat2,
245  [System::Runtime::InteropServices::Out] double% lon2,
246  [System::Runtime::InteropServices::Out] double% azi2,
247  [System::Runtime::InteropServices::Out] double% m12,
248  [System::Runtime::InteropServices::Out] double% M12,
249  [System::Runtime::InteropServices::Out] double% M21,
250  [System::Runtime::InteropServices::Out] double% S12);
251 
255  double Direct(double lat1, double lon1, double azi1, double s12,
256  [System::Runtime::InteropServices::Out] double% lat2,
257  [System::Runtime::InteropServices::Out] double% lon2);
258 
262  double Direct(double lat1, double lon1, double azi1, double s12,
263  [System::Runtime::InteropServices::Out] double% lat2,
264  [System::Runtime::InteropServices::Out] double% lon2,
265  [System::Runtime::InteropServices::Out] double% azi2);
266 
270  double Direct(double lat1, double lon1, double azi1, double s12,
271  [System::Runtime::InteropServices::Out] double% lat2,
272  [System::Runtime::InteropServices::Out] double% lon2,
273  [System::Runtime::InteropServices::Out] double% azi2,
274  [System::Runtime::InteropServices::Out] double% m12);
275 
279  double Direct(double lat1, double lon1, double azi1, double s12,
280  [System::Runtime::InteropServices::Out] double% lat2,
281  [System::Runtime::InteropServices::Out] double% lon2,
282  [System::Runtime::InteropServices::Out] double% azi2,
283  [System::Runtime::InteropServices::Out] double% M12,
284  [System::Runtime::InteropServices::Out] double% M21);
285 
289  double Direct(double lat1, double lon1, double azi1, double s12,
290  [System::Runtime::InteropServices::Out] double% lat2,
291  [System::Runtime::InteropServices::Out] double% lon2,
292  [System::Runtime::InteropServices::Out] double% azi2,
293  [System::Runtime::InteropServices::Out] double% m12,
294  [System::Runtime::InteropServices::Out] double% M12,
295  [System::Runtime::InteropServices::Out] double% M21);
297 
300 
335  void ArcDirect(double lat1, double lon1, double azi1, double a12,
336  [System::Runtime::InteropServices::Out] double% lat2,
337  [System::Runtime::InteropServices::Out] double% lon2,
338  [System::Runtime::InteropServices::Out] double% azi2,
339  [System::Runtime::InteropServices::Out] double% s12,
340  [System::Runtime::InteropServices::Out] double% m12,
341  [System::Runtime::InteropServices::Out] double% M12,
342  [System::Runtime::InteropServices::Out] double% M21,
343  [System::Runtime::InteropServices::Out] double% S12);
344 
348  void ArcDirect(double lat1, double lon1, double azi1, double a12,
349  [System::Runtime::InteropServices::Out] double% lat2,
350  [System::Runtime::InteropServices::Out] double% lon2);
351 
355  void ArcDirect(double lat1, double lon1, double azi1, double a12,
356  [System::Runtime::InteropServices::Out] double% lat2,
357  [System::Runtime::InteropServices::Out] double% lon2,
358  [System::Runtime::InteropServices::Out] double% azi2);
359 
363  void ArcDirect(double lat1, double lon1, double azi1, double a12,
364  [System::Runtime::InteropServices::Out] double% lat2,
365  [System::Runtime::InteropServices::Out] double% lon2,
366  [System::Runtime::InteropServices::Out] double% azi2,
367  [System::Runtime::InteropServices::Out] double% s12);
368 
372  void ArcDirect(double lat1, double lon1, double azi1, double a12,
373  [System::Runtime::InteropServices::Out] double% lat2,
374  [System::Runtime::InteropServices::Out] double% lon2,
375  [System::Runtime::InteropServices::Out] double% azi2,
376  [System::Runtime::InteropServices::Out] double% s12,
377  [System::Runtime::InteropServices::Out] double% m12);
378 
382  void ArcDirect(double lat1, double lon1, double azi1, double a12,
383  [System::Runtime::InteropServices::Out] double% lat2,
384  [System::Runtime::InteropServices::Out] double% lon2,
385  [System::Runtime::InteropServices::Out] double% azi2,
386  [System::Runtime::InteropServices::Out] double% s12,
387  [System::Runtime::InteropServices::Out] double% M12,
388  [System::Runtime::InteropServices::Out] double% M21);
389 
393  void ArcDirect(double lat1, double lon1, double azi1, double a12,
394  [System::Runtime::InteropServices::Out] double% lat2,
395  [System::Runtime::InteropServices::Out] double% lon2,
396  [System::Runtime::InteropServices::Out] double% azi2,
397  [System::Runtime::InteropServices::Out] double% s12,
398  [System::Runtime::InteropServices::Out] double% m12,
399  [System::Runtime::InteropServices::Out] double% M12,
400  [System::Runtime::InteropServices::Out] double% M21);
402 
405 
457  double GenDirect(double lat1, double lon1, double azi1,
458  bool arcmode, double s12_a12, GeodesicExact::mask outmask,
459  [System::Runtime::InteropServices::Out] double% lat2,
460  [System::Runtime::InteropServices::Out] double% lon2,
461  [System::Runtime::InteropServices::Out] double% azi2,
462  [System::Runtime::InteropServices::Out] double% s12,
463  [System::Runtime::InteropServices::Out] double% m12,
464  [System::Runtime::InteropServices::Out] double% M12,
465  [System::Runtime::InteropServices::Out] double% M21,
466  [System::Runtime::InteropServices::Out] double% S12);
468 
471 
502  double Inverse(double lat1, double lon1, double lat2, double lon2,
503  [System::Runtime::InteropServices::Out] double% s12,
504  [System::Runtime::InteropServices::Out] double% azi1,
505  [System::Runtime::InteropServices::Out] double% azi2,
506  [System::Runtime::InteropServices::Out] double% m12,
507  [System::Runtime::InteropServices::Out] double% M12,
508  [System::Runtime::InteropServices::Out] double% M21,
509  [System::Runtime::InteropServices::Out] double% S12);
510 
514  double Inverse(double lat1, double lon1, double lat2, double lon2,
515  [System::Runtime::InteropServices::Out] double% s12);
516 
520  double Inverse(double lat1, double lon1, double lat2, double lon2,
521  [System::Runtime::InteropServices::Out] double% azi1,
522  [System::Runtime::InteropServices::Out] double% azi2);
523 
527  double Inverse(double lat1, double lon1, double lat2, double lon2,
528  [System::Runtime::InteropServices::Out] double% s12,
529  [System::Runtime::InteropServices::Out] double% azi1,
530  [System::Runtime::InteropServices::Out] double% azi2);
531 
535  double Inverse(double lat1, double lon1, double lat2, double lon2,
536  [System::Runtime::InteropServices::Out] double% s12,
537  [System::Runtime::InteropServices::Out] double% azi1,
538  [System::Runtime::InteropServices::Out] double% azi2,
539  [System::Runtime::InteropServices::Out] double% m12);
540 
544  double Inverse(double lat1, double lon1, double lat2, double lon2,
545  [System::Runtime::InteropServices::Out] double% s12,
546  [System::Runtime::InteropServices::Out] double% azi1,
547  [System::Runtime::InteropServices::Out] double% azi2,
548  [System::Runtime::InteropServices::Out] double% M12,
549  [System::Runtime::InteropServices::Out] double% M21);
550 
554  double Inverse(double lat1, double lon1, double lat2, double lon2,
555  [System::Runtime::InteropServices::Out] double% s12,
556  [System::Runtime::InteropServices::Out] double% azi1,
557  [System::Runtime::InteropServices::Out] double% azi2,
558  [System::Runtime::InteropServices::Out] double% m12,
559  [System::Runtime::InteropServices::Out] double% M12,
560  [System::Runtime::InteropServices::Out] double% M21);
562 
565 
599  double GenInverse(double lat1, double lon1, double lat2, double lon2,
600  GeodesicExact::mask outmask,
601  [System::Runtime::InteropServices::Out] double% s12,
602  [System::Runtime::InteropServices::Out] double% azi1,
603  [System::Runtime::InteropServices::Out] double% azi2,
604  [System::Runtime::InteropServices::Out] double% m12,
605  [System::Runtime::InteropServices::Out] double% M12,
606  [System::Runtime::InteropServices::Out] double% M21,
607  [System::Runtime::InteropServices::Out] double% S12);
609 
612 
651  GeodesicLineExact^ Line(double lat1, double lon1, double azi1,
652  NETGeographicLib::Mask caps );
653 
672  GeodesicLineExact^ InverseLine(double lat1, double lon1, double lat2,
673  double lon2, NETGeographicLib::Mask caps );
674 
695  GeodesicLineExact^ DirectLine(double lat1, double lon1, double azi1,
696  double s12, NETGeographicLib::Mask caps);
697 
718  GeodesicLineExact^ ArcDirectLine(double lat1, double lon1, double azi1,
719  double a12, NETGeographicLib::Mask caps);
720 
744  GeodesicLineExact^ GenDirectLine(double lat1, double lon1, double azi1,
745  bool arcmode, double s12_a12, NETGeographicLib::Mask caps);
747 
750 
756  property double MajorRadius { double get(); }
757 
762  property double Flattening { double get(); }
763 
770  property double EllipsoidArea { double get(); }
772 
779  };
780 } // namespace NETGeographicLib
NETGeographicLib::GeodesicExact::captype::CAP_MASK
@ CAP_MASK
NETGeographicLib::GeodesicExact::Flattening
property double Flattening
Definition: GeodesicExact.h:762
NETGeographicLib::GeodesicExact::GetUnmanaged
System::IntPtr GetUnmanaged()
Definition: dotnet/NETGeographicLib/GeodesicExact.cpp:467
NETGeographicLib::GeodesicExact::mask::LONG_UNROLL
@ LONG_UNROLL
NETGeographicLib::GeodesicLineExact
.NET wrapper for GeographicLib::GeodesicLineExact.
Definition: GeodesicLineExact.h:50
GeographicLib::GeodesicExact
Exact geodesic calculations.
Definition: GeodesicExact.hpp:80
NETGeographicLib::GeodesicExact::captype::CAP_C4
@ CAP_C4
NETGeographicLib::GeodesicExact::m_pGeodesicExact
const GeographicLib::GeodesicExact * m_pGeodesicExact
Definition: GeodesicExact.h:102
NETGeographicLib::GeodesicExact::GenDirectLine
GeodesicLineExact GenDirectLine(double lat1, double lon1, double azi1, bool arcmode, double s12_a12, NETGeographicLib::Mask caps)
Definition: dotnet/NETGeographicLib/GeodesicExact.cpp:505
NETGeographicLib::GeodesicExact::mask
mask
Definition: GeodesicExact.h:116
NETGeographicLib::GeodesicExact::mask::DISTANCE
@ DISTANCE
NETGeographicLib::GeodesicExact::MajorRadius
property double MajorRadius
Definition: GeodesicExact.h:756
NETGeographicLib::GeodesicExact::ArcDirect
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)
Definition: dotnet/NETGeographicLib/GeodesicExact.cpp:170
NETGeographicLib::GeodesicExact::Line
GeodesicLineExact Line(double lat1, double lon1, double azi1, NETGeographicLib::Mask caps)
Definition: dotnet/NETGeographicLib/GeodesicExact.cpp:474
NETGeographicLib::GeodesicExact::GenDirect
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)
Definition: dotnet/NETGeographicLib/GeodesicExact.cpp:296
NETGeographicLib::GeodesicExact::GeodesicExact
GeodesicExact()
Definition: dotnet/NETGeographicLib/GeodesicExact.cpp:32
NETGeographicLib::GeodesicExact::ArcDirectLine
GeodesicLineExact ArcDirectLine(double lat1, double lon1, double azi1, double a12, NETGeographicLib::Mask caps)
Definition: dotnet/NETGeographicLib/GeodesicExact.cpp:497
NETGeographicLib::GeodesicExact::mask::AREA
@ AREA
NETGeographicLib::GeodesicExact::captype::CAP_H
@ CAP_H
NETGeographicLib::GeodesicExact::captype::CAP_NONE
@ CAP_NONE
NETGeographicLib::GeodesicExact::mask::AZIMUTH
@ AZIMUTH
NETGeographicLib::GeodesicExact::mask::DISTANCE_IN
@ DISTANCE_IN
NETGeographicLib::GeodesicExact::EllipsoidArea
property double EllipsoidArea
Definition: GeodesicExact.h:770
NETGeographicLib::GeodesicExact::captype::CAP_D
@ CAP_D
NETGeographicLib::GeodesicExact
.NET wrapper for GeographicLib::GeodesicExact.
Definition: GeodesicExact.h:86
NETGeographicLib::GeodesicExact::captype::OUT_ALL
@ OUT_ALL
NETGeographicLib::GeodesicExact::captype
captype
Definition: GeodesicExact.h:89
NETGeographicLib.h
Header for NETGeographicLib::NETGeographicLib objects.
tree::f
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
Definition: testExpression.cpp:218
NETGeographicLib::GeodesicExact::mask::LONGITUDE
@ LONGITUDE
a
ArrayXXi a
Definition: Array_initializer_list_23_cxx11.cpp:1
NETGeographicLib::GeodesicExact::~GeodesicExact
~GeodesicExact()
Definition: GeodesicExact.h:202
NETGeographicLib::GeodesicExact::captype::CAP_ALL
@ CAP_ALL
NETGeographicLib::GeodesicExact::captype::OUT_MASK
@ OUT_MASK
NETGeographicLib::GeodesicExact::Inverse
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)
Definition: dotnet/NETGeographicLib/GeodesicExact.cpp:324
NETGeographicLib::GeodesicExact::mask::NONE
@ NONE
NETGeographicLib::Mask
Mask
Definition: NETGeographicLib.h:38
U
@ U
Definition: testDecisionTree.cpp:296
NETGeographicLib::GeodesicExact::Direct
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)
Definition: dotnet/NETGeographicLib/GeodesicExact.cpp:62
NETGeographicLib::GeodesicExact::GenInverse
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)
Definition: dotnet/NETGeographicLib/GeodesicExact.cpp:442
NETGeographicLib::GeodesicExact::InverseLine
GeodesicLineExact InverseLine(double lat1, double lon1, double lat2, double lon2, NETGeographicLib::Mask caps)
Definition: dotnet/NETGeographicLib/GeodesicExact.cpp:481
get
Container::iterator get(Container &c, Position position)
Definition: stdlist_overload.cpp:29
NETGeographicLib::GeodesicExact::mask::GEODESICSCALE
@ GEODESICSCALE
NETGeographicLib::GeodesicExact::mask::LATITUDE
@ LATITUDE
NETGeographicLib
Definition: Accumulator.h:13
Eigen::internal::IntPtr
std::ptrdiff_t IntPtr
Definition: Meta.h:91
NETGeographicLib::GeodesicExact::mask::ALL
@ ALL
NETGeographicLib::GeodesicExact::captype::CAP_E
@ CAP_E
NETGeographicLib::GeodesicExact::DirectLine
GeodesicLineExact DirectLine(double lat1, double lon1, double azi1, double s12, NETGeographicLib::Mask caps)
Definition: dotnet/NETGeographicLib/GeodesicExact.cpp:489
NETGeographicLib::GeodesicExact::mask::REDUCEDLENGTH
@ REDUCEDLENGTH


gtsam
Author(s):
autogenerated on Mon Jul 1 2024 03:01:21