118 #if !defined(GEODESIC_H) 125 #define GEODESIC_VERSION_MAJOR 1 130 #define GEODESIC_VERSION_MINOR 49 135 #define GEODESIC_VERSION_PATCH 0 142 #define GEODESIC_VERSION_NUM(a,b,c) ((((a) * 10000 + (b)) * 100) + (c)) 155 #define GEODESIC_VERSION \ 156 GEODESIC_VERSION_NUM(GEODESIC_VERSION_MAJOR, \ 157 GEODESIC_VERSION_MINOR, \ 158 GEODESIC_VERSION_PATCH) 160 #if defined(__cplusplus) 172 double f1, e2, ep2,
n,
b, c2, etol2;
173 double A3x[6], C3x[15], C4x[21];
193 double b, c2,
f1, salp0, calp0, k2,
194 ssig1, csig1, dn1, stau1, ctau1, somg1, comg1,
195 A1m1, A2m1, A3c, B11, B21, B31, A4, B41;
196 double C1a[6+1], C1pa[6+1], C2a[6+1], C3a[6], C4a[6];
266 double lat1,
double lon1,
double azi1,
double s12,
267 double* plat2,
double* plon2,
double* pazi2);
308 double lat1,
double lon1,
double azi1,
309 unsigned flags,
double s12_a12,
310 double* plat2,
double* plon2,
double* pazi2,
311 double* ps12,
double* pm12,
double* pM12,
double* pM21,
353 double lat1,
double lon1,
double lat2,
double lon2,
354 double* ps12,
double* pazi1,
double* pazi2);
384 double lat1,
double lon1,
double lat2,
double lon2,
385 double* ps12,
double* pazi1,
double* pazi2,
386 double* pm12,
double* pM12,
double* pM21,
430 double lat1,
double lon1,
double azi1,
unsigned caps);
455 double lat1,
double lon1,
double azi1,
double s12,
485 double lat1,
double lon1,
double azi1,
486 unsigned flags,
double s12_a12,
511 double lat1,
double lon1,
double lat2,
double lon2,
560 double* plat2,
double* plon2,
double* pazi2);
627 unsigned flags,
double s12_a12,
628 double* plat2,
double* plon2,
double* pazi2,
629 double* ps12,
double* pm12,
630 double* pM12,
double* pM21,
661 unsigned flags,
double s13_a13);
731 double azi,
double s);
779 double*
pA,
double* pP);
811 double*
pA,
double* pP);
840 double azi,
double s,
842 double*
pA,
double* pP);
877 double lats[],
double lons[],
int n,
878 double*
pA,
double* pP);
906 #if defined(__cplusplus)
unsigned geod_polygon_testedge(const struct geod_geodesic *g, const struct geod_polygon *p, double azi, double s, int reverse, int sign, double *pA, double *pP)
void geod_directline(struct geod_geodesicline *l, const struct geod_geodesic *g, double lat1, double lon1, double azi1, double s12, unsigned caps)
double geod_genposition(const struct geod_geodesicline *l, unsigned flags, double s12_a12, double *plat2, double *plon2, double *pazi2, double *ps12, double *pm12, double *pM12, double *pM21, double *pS12)
void geod_gendirectline(struct geod_geodesicline *l, const struct geod_geodesic *g, double lat1, double lon1, double azi1, unsigned flags, double s12_a12, unsigned caps)
void geod_polygon_addedge(const struct geod_geodesic *g, struct geod_polygon *p, double azi, double s)
void geod_position(const struct geod_geodesicline *l, double s12, double *plat2, double *plon2, double *pazi2)
void geod_lineinit(struct geod_geodesicline *l, const struct geod_geodesic *g, double lat1, double lon1, double azi1, unsigned caps)
void g(const string &key, int i)
void geod_setdistance(struct geod_geodesicline *l, double s13)
static const Line3 l(Rot3(), 1, 1)
void geod_inverseline(struct geod_geodesicline *l, const struct geod_geodesic *g, double lat1, double lon1, double lat2, double lon2, unsigned caps)
EIGEN_DEVICE_FUNC const SignReturnType sign() const
double geod_geninverse(const struct geod_geodesic *g, double lat1, double lon1, double lat2, double lon2, double *ps12, double *pazi1, double *pazi2, double *pm12, double *pM12, double *pM21, double *pS12)
void geod_polygon_addpoint(const struct geod_geodesic *g, struct geod_polygon *p, double lat, double lon)
void geod_polygon_clear(struct geod_polygon *p)
void geod_polygon_init(struct geod_polygon *p, int polylinep)
void geod_direct(const struct geod_geodesic *g, double lat1, double lon1, double azi1, double s12, double *plat2, double *plon2, double *pazi2)
unsigned geod_polygon_compute(const struct geod_geodesic *g, const struct geod_polygon *p, int reverse, int sign, double *pA, double *pP)
void geod_polygonarea(const struct geod_geodesic *g, double lats[], double lons[], int n, double *pA, double *pP)
void geod_gensetdistance(struct geod_geodesicline *l, unsigned flags, double s13_a13)
double geod_gendirect(const struct geod_geodesic *g, double lat1, double lon1, double azi1, unsigned flags, double s12_a12, double *plat2, double *plon2, double *pazi2, double *ps12, double *pm12, double *pM12, double *pM21, double *pS12)
void reverse(const MatrixType &m)
Point2 f1(const Point3 &p, OptionalJacobian< 2, 3 > H)
unsigned geod_polygon_testpoint(const struct geod_geodesic *g, const struct geod_polygon *p, double lat, double lon, int reverse, int sign, double *pA, double *pP)
void geod_inverse(const struct geod_geodesic *g, double lat1, double lon1, double lat2, double lon2, double *ps12, double *pazi1, double *pazi2)
void geod_init(struct geod_geodesic *g, double a, double f)