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
const GeographicLib::GeodesicExact * m_pGeodesicExact
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 NETGeographicLib::NETGeographicLib objects.
GeodesicLineExact GenDirectLine(double lat1, double lon1, double azi1, bool arcmode, double s12_a12, NETGeographicLib::Mask caps)
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)
std::ptrdiff_t IntPtr
Definition: Meta.h:91
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
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)
GeodesicLineExact Line(double lat1, double lon1, double azi1, 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)
GeodesicLineExact InverseLine(double lat1, double lon1, double lat2, double lon2, NETGeographicLib::Mask caps)
Exact geodesic calculations.
GeodesicLineExact DirectLine(double lat1, double lon1, double azi1, double s12, NETGeographicLib::Mask caps)
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 ArcDirectLine(double lat1, double lon1, double azi1, double a12, NETGeographicLib::Mask caps)
.NET wrapper for GeographicLib::GeodesicLineExact.
.NET wrapper for GeographicLib::GeodesicExact.
Definition: GeodesicExact.h:86


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