GeodesicLineExact.h
Go to the documentation of this file.
1 #pragma once
2 
12 #include "NETGeographicLib.h"
13 
14 namespace NETGeographicLib
15 {
16  ref class GeodesicExact;
50  public ref class GeodesicLineExact
51  {
52  private:
53  enum class captype {
54  CAP_NONE = 0U,
55  CAP_E = 1U<<0,
56  // Skip 1U<<1 for compatibility with Geodesic (not required)
57  CAP_D = 1U<<2,
58  CAP_H = 1U<<3,
59  CAP_C4 = 1U<<4,
60  CAP_ALL = 0x1FU,
61  CAP_MASK = CAP_ALL,
62  OUT_ALL = 0x7F80U,
63  OUT_MASK = 0xFF80U, // Includes LONG_UNROLL
64  };
65  // a pointer to the GeographicLib::GeodesicLineExact.
67 
68  // the finalizer frees the unmanaged memory when the object is destroyed.
69  !GeodesicLineExact(void);
70  public:
80  enum class mask {
85  NONE = 0U,
91  LATITUDE = 1U<<7 | unsigned(captype::CAP_NONE),
96  LONGITUDE = 1U<<8 | unsigned(captype::CAP_H),
103  AZIMUTH = 1U<<9 | unsigned(captype::CAP_NONE),
108  DISTANCE = 1U<<10 | unsigned(captype::CAP_E),
114  DISTANCE_IN = 1U<<11 | unsigned(captype::CAP_E),
119  REDUCEDLENGTH = 1U<<12 | unsigned(captype::CAP_D),
124  GEODESICSCALE = 1U<<13 | unsigned(captype::CAP_D),
129  AREA = 1U<<14 | unsigned(captype::CAP_C4),
134  LONG_UNROLL = 1U<<15,
140  ALL = unsigned(captype::OUT_ALL)| unsigned(captype::CAP_ALL),
141  };
142 
145 
185  GeodesicLineExact(GeodesicExact^ g, double lat1, double lon1, double azi1,
186  NETGeographicLib::Mask caps );
187 
192  GeodesicLineExact(double lat1, double lon1, double azi1,
194 
202 
207  { this->!GeodesicLineExact(); }
208 
211 
252  double Position(double s12,
253  [System::Runtime::InteropServices::Out] double% lat2,
254  [System::Runtime::InteropServices::Out] double% lon2,
255  [System::Runtime::InteropServices::Out] double% azi2,
256  [System::Runtime::InteropServices::Out] double% m12,
257  [System::Runtime::InteropServices::Out] double% M12,
258  [System::Runtime::InteropServices::Out] double% M21,
259  [System::Runtime::InteropServices::Out] double% S12);
260 
264  double Position(double s12,
265  [System::Runtime::InteropServices::Out] double% lat2,
266  [System::Runtime::InteropServices::Out] double% lon2);
267 
271  double Position(double s12,
272  [System::Runtime::InteropServices::Out] double% lat2,
273  [System::Runtime::InteropServices::Out] double% lon2,
274  [System::Runtime::InteropServices::Out] double% azi2);
275 
279  double Position(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 
288  double Position(double s12,
289  [System::Runtime::InteropServices::Out] double% lat2,
290  [System::Runtime::InteropServices::Out] double% lon2,
291  [System::Runtime::InteropServices::Out] double% azi2,
292  [System::Runtime::InteropServices::Out] double% M12,
293  [System::Runtime::InteropServices::Out] double% M21);
294 
298  double Position(double s12,
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% m12,
303  [System::Runtime::InteropServices::Out] double% M12,
304  [System::Runtime::InteropServices::Out] double% M21);
305 
307 
310 
349  void ArcPosition(double a12,
350  [System::Runtime::InteropServices::Out] double% lat2,
351  [System::Runtime::InteropServices::Out] double% lon2,
352  [System::Runtime::InteropServices::Out] double% azi2,
353  [System::Runtime::InteropServices::Out] double% s12,
354  [System::Runtime::InteropServices::Out] double% m12,
355  [System::Runtime::InteropServices::Out] double% M12,
356  [System::Runtime::InteropServices::Out] double% M21,
357  [System::Runtime::InteropServices::Out] double% S12);
358 
362  void ArcPosition(double a12,
363  [System::Runtime::InteropServices::Out] double% lat2,
364  [System::Runtime::InteropServices::Out] double% lon2);
365 
369  void ArcPosition(double a12,
370  [System::Runtime::InteropServices::Out] double% lat2,
371  [System::Runtime::InteropServices::Out] double% lon2,
372  [System::Runtime::InteropServices::Out] double% azi2);
373 
377  void ArcPosition(double a12,
378  [System::Runtime::InteropServices::Out] double% lat2,
379  [System::Runtime::InteropServices::Out] double% lon2,
380  [System::Runtime::InteropServices::Out] double% azi2,
381  [System::Runtime::InteropServices::Out] double% s12);
382 
386  void ArcPosition(double a12,
387  [System::Runtime::InteropServices::Out] double% lat2,
388  [System::Runtime::InteropServices::Out] double% lon2,
389  [System::Runtime::InteropServices::Out] double% azi2,
390  [System::Runtime::InteropServices::Out] double% s12,
391  [System::Runtime::InteropServices::Out] double% m12);
392 
396  void ArcPosition(double a12,
397  [System::Runtime::InteropServices::Out] double% lat2,
398  [System::Runtime::InteropServices::Out] double% lon2,
399  [System::Runtime::InteropServices::Out] double% azi2,
400  [System::Runtime::InteropServices::Out] double% s12,
401  [System::Runtime::InteropServices::Out] double% M12,
402  [System::Runtime::InteropServices::Out] double% M21);
403 
407  void ArcPosition(double a12,
408  [System::Runtime::InteropServices::Out] double% lat2,
409  [System::Runtime::InteropServices::Out] double% lon2,
410  [System::Runtime::InteropServices::Out] double% azi2,
411  [System::Runtime::InteropServices::Out] double% s12,
412  [System::Runtime::InteropServices::Out] double% m12,
413  [System::Runtime::InteropServices::Out] double% M12,
414  [System::Runtime::InteropServices::Out] double% M21);
416 
419 
478  double GenPosition(bool arcmode, double s12_a12,
479  GeodesicLineExact::mask outmask,
480  [System::Runtime::InteropServices::Out] double% lat2,
481  [System::Runtime::InteropServices::Out] double% lon2,
482  [System::Runtime::InteropServices::Out] double% azi2,
483  [System::Runtime::InteropServices::Out] double% s12,
484  [System::Runtime::InteropServices::Out] double% m12,
485  [System::Runtime::InteropServices::Out] double% M12,
486  [System::Runtime::InteropServices::Out] double% M21,
487  [System::Runtime::InteropServices::Out] double% S12);
488 
490 
493 
504  void SetDistance(double s13);
505 
515  void SetArc(double a13);
516 
528  void GenSetDistance(bool arcmode, double s13_a13);
529 
537  double GenDistance(bool arcmode);
539 
542 
549  void AzimuthSinCos(
550  [System::Runtime::InteropServices::Out] double% sazi1,
551  [System::Runtime::InteropServices::Out] double% cazi1);
552 
560  [System::Runtime::InteropServices::Out] double% sazi0,
561  [System::Runtime::InteropServices::Out] double% cazi0);
563 
566 
570  property double Latitude { double get(); }
571 
575  property double Longitude { double get(); }
576 
580  property double Azimuth { double get(); }
581 
586  property double EquatorialAzimuth { double get(); }
587 
592  property double EquatorialArc { double get(); }
593 
599  property double MajorRadius { double get(); }
600 
605  property double Flattening { double get(); }
606 
610  property double Distance { double get(); }
611 
615  property double Arc { double get(); }
616 
622 
627  bool Capabilities(NETGeographicLib::Mask testcaps);
629  };
630 } // namespace NETGeographicLib
Header for NETGeographicLib::NETGeographicLib objects.
double Position(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)
void ArcPosition(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)
void g(const string &key, int i)
Definition: testBTree.cpp:43
GeodesicLineExact(GeodesicExact^g, double lat1, double lon1, double azi1, NETGeographicLib::Mask caps)
void EquatorialAzimuthSinCos([System::Runtime::InteropServices::Out] double%sazi0, [System::Runtime::InteropServices::Out] double%cazi0)
void AzimuthSinCos([System::Runtime::InteropServices::Out] double%sazi1, [System::Runtime::InteropServices::Out] double%cazi1)
.NET wrapper for GeographicLib::GeodesicLineExact.
.NET wrapper for GeographicLib::GeodesicExact.
Definition: GeodesicExact.h:86
GeographicLib::GeodesicLineExact * m_pGeodesicLineExact
double GenPosition(bool arcmode, double s12_a12, GeodesicLineExact::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)


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