Rhumb.h
Go to the documentation of this file.
1 #pragma once
2 
13 namespace NETGeographicLib {
14 
15  ref class RhumbLine;
16 
65  public ref class Rhumb {
66  private:
67  // pointer to the unmanaged Rhumb object
69 
70  // The finalizer destroys m_pRhumb when this object is destroyed.
71  !Rhumb(void);
72  public:
78  enum class mask {
83  NONE = 0U,
88  LATITUDE = 1U<<7,
93  LONGITUDE = 1U<<8,
98  AZIMUTH = 1U<<9,
103  DISTANCE = 1U<<10,
108  AREA = 1U<<14,
113  LONG_UNROLL = 1U<<15,
118  ALL = 0x7F80U,
119  };
120 
135  Rhumb(double a, double f, bool exact);
136 
140  ~Rhumb() { this->!Rhumb(); }
141 
164  void Direct(double lat1, double lon1, double azi12, double s12,
165  [System::Runtime::InteropServices::Out] double% lat2,
166  [System::Runtime::InteropServices::Out] double% lon2,
167  [System::Runtime::InteropServices::Out] double% S12);
168 
191  void Direct(double lat1, double lon1, double azi12, double s12,
192  [System::Runtime::InteropServices::Out] double% lat2,
193  [System::Runtime::InteropServices::Out] double% lon2);
194 
221  void GenDirect(double lat1, double lon1, double azi12, double s12,
222  Rhumb::mask outmask,
223  [System::Runtime::InteropServices::Out] double% lat2,
224  [System::Runtime::InteropServices::Out] double% lon2,
225  [System::Runtime::InteropServices::Out] double% S12);
226 
249  void Inverse(double lat1, double lon1, double lat2, double lon2,
250  [System::Runtime::InteropServices::Out] double% s12,
251  [System::Runtime::InteropServices::Out] double% azi12,
252  [System::Runtime::InteropServices::Out] double% S12);
253 
273  void Inverse(double lat1, double lon1, double lat2, double lon2,
274  [System::Runtime::InteropServices::Out] double% s12,
275  [System::Runtime::InteropServices::Out] double% azi12);
276 
297  void GenInverse(double lat1, double lon1, double lat2, double lon2,
298  Rhumb::mask outmask,
299  [System::Runtime::InteropServices::Out] double% s12,
300  [System::Runtime::InteropServices::Out] double% azi12,
301  [System::Runtime::InteropServices::Out] double% S12);
302 
318  RhumbLine^ Line(double lat1, double lon1, double azi12);
319 
322 
328  property double MajorRadius { double get(); }
329 
334  property double Flattening { double get(); }
335 
339  property double EllipsoidArea { double get(); }
340 
347 
352  static Rhumb^ WGS84();
353  };
354 
374  public ref class RhumbLine {
375  private:
376  // pointer to the unmanaged RhumbLine object.
378 
379  // The finalizer destroys m_pRhumbLine when this object is destroyed.
380  !RhumbLine(void);
381  public:
382  enum class mask {
387  NONE = 0, //NETGeographicLib::Rhumb::NONE,
392  LATITUDE = 1U<<7, //Rhumb::LATITUDE,
397  LONGITUDE = 1U<<8, //Rhumb::LONGITUDE,
402  AZIMUTH = 1U<<9, //Rhumb::AZIMUTH,
407  DISTANCE = 1U<<10, //Rhumb::DISTANCE,
412  AREA = 1U<<14, //Rhumb::AREA,
417  LONG_UNROLL = 1U<<15, //Rhumb::LONG_UNROLL,
422  ALL = 0x7F80U, //Rhumb::ALL,
423  };
430  RhumbLine( GeographicLib::RhumbLine* pRhumbLine );
431 
435  ~RhumbLine() { this->!RhumbLine(); }
436 
454  void Position(double s12,
455  [System::Runtime::InteropServices::Out] double% lat2,
456  [System::Runtime::InteropServices::Out] double% lon2,
457  [System::Runtime::InteropServices::Out] double% S12);
458 
474  void Position(double s12,
475  [System::Runtime::InteropServices::Out] double% lat2,
476  [System::Runtime::InteropServices::Out] double% lon2);
477 
506  void GenPosition(double s12, RhumbLine::mask outmask,
507  [System::Runtime::InteropServices::Out] double% lat2,
508  [System::Runtime::InteropServices::Out] double% lon2,
509  [System::Runtime::InteropServices::Out] double% S12);
510 
513 
518  property double Latitude { double get(); }
519 
523  property double Longitude { double get(); }
524 
528  property double Azimuth { double get(); }
529 
534  property double MajorRadius { double get(); }
535 
540  property double Flattening { double get(); }
541  };
542 
543 } // namespace NETGeographicLib
void Direct(double lat1, double lon1, double azi12, double s12, [System::Runtime::InteropServices::Out] double% lat2, [System::Runtime::InteropServices::Out] double% lon2, [System::Runtime::InteropServices::Out] double% S12)
property double MajorRadius
Definition: Rhumb.h:328
.NET wrapper for GeographicLib::RhumbLine.
Definition: Rhumb.h:374
void GenInverse(double lat1, double lon1, double lat2, double lon2, Rhumb::mask outmask, [System::Runtime::InteropServices::Out] double% s12, [System::Runtime::InteropServices::Out] double% azi12, [System::Runtime::InteropServices::Out] double% S12)
~Rhumb()
The destructor calls the finalizer.
Definition: Rhumb.h:140
GeographicLib::RhumbLine * m_pRhumbLine
Definition: Rhumb.h:377
std::ptrdiff_t IntPtr
Definition: Meta.h:91
Point2(* f)(const Point3 &, OptionalJacobian< 2, 3 >)
property double EllipsoidArea
Definition: Rhumb.h:339
RhumbLine Line(double lat1, double lon1, double azi12)
Solve of the direct and inverse rhumb problems.
Definition: Rhumb.hpp:66
.NET wrapper for GeographicLib::Rhumb.
Definition: Rhumb.h:65
Find a sequence of points on a single rhumb line.
Definition: Rhumb.hpp:437
GeographicLib::Rhumb * m_pRhumb
Definition: Rhumb.h:68
void GenDirect(double lat1, double lon1, double azi12, double s12, Rhumb::mask outmask, [System::Runtime::InteropServices::Out] double% lat2, [System::Runtime::InteropServices::Out] double% lon2, [System::Runtime::InteropServices::Out] double% S12)
void Inverse(double lat1, double lon1, double lat2, double lon2, [System::Runtime::InteropServices::Out] double% s12, [System::Runtime::InteropServices::Out] double% azi12, [System::Runtime::InteropServices::Out] double% S12)
property double Flattening
Definition: Rhumb.h:334
Rhumb(double a, double f, bool exact)
~RhumbLine()
The destructor calls the finalizer.
Definition: Rhumb.h:435


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