119 #if !defined(GEODESIC_H)
126 #define GEODESIC_VERSION_MAJOR 1
131 #define GEODESIC_VERSION_MINOR 40
136 #define GEODESIC_VERSION_PATCH 0
138 #if defined(__cplusplus)
150 double f1, e2, ep2, n, b, c2, etol2;
151 double A3x[6], C3x[15], C4x[21];
166 double b, c2, f1, salp0, calp0, k2,
167 salp1, calp1, ssig1, csig1, dn1, stau1, ctau1, somg1, comg1,
168 A1m1, A2m1, A3c, B11, B21, B31, A4, B41;
169 double C1a[6+1], C1pa[6+1], C2a[6+1], C3a[6], C4a[6];
241 double lat1,
double lon1,
double azi1,
unsigned caps);
281 double lat1,
double lon1,
double azi1,
double s12,
282 double* plat2,
double* plon2,
double* pazi2);
324 double lat1,
double lon1,
double lat2,
double lon2,
325 double* ps12,
double* pazi1,
double* pazi2);
374 double* plat2,
double* plon2,
double* pazi2);
420 double lat1,
double lon1,
double azi1,
421 unsigned flags,
double s12_a12,
422 double* plat2,
double* plon2,
double* pazi2,
423 double* ps12,
double* pm12,
double* pM12,
double* pM21,
455 double lat1,
double lon1,
double lat2,
double lon2,
456 double* ps12,
double* pazi1,
double* pazi2,
457 double* pm12,
double* pM12,
double* pM21,
531 unsigned flags,
double s12_a12,
532 double* plat2,
double* plon2,
double* pazi2,
533 double* ps12,
double* pm12,
534 double* pM12,
double* pM21,
579 double lat,
double lon);
600 double azi,
double s);
645 int reverse,
int sign,
646 double* pA,
double* pP);
677 double lat,
double lon,
678 int reverse,
int sign,
679 double* pA,
double* pP);
710 double azi,
double s,
711 int reverse,
int sign,
712 double* pA,
double* pP);
748 double lats[],
double lons[],
int n,
749 double* pA,
double* pP);
777 #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)
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_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)
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_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)
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)
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)