From e1edf114105b0f528ef662f79297603617297a6b Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 26 Dec 2018 11:20:31 +0100 Subject: Allocate PJ* as a C++ object --- src/malloc.cpp | 13 +++- src/projects.h | 188 +++++++++++++++++++++++++++++---------------------------- 2 files changed, 109 insertions(+), 92 deletions(-) diff --git a/src/malloc.cpp b/src/malloc.cpp index c8681570..0e80912e 100644 --- a/src/malloc.cpp +++ b/src/malloc.cpp @@ -44,6 +44,8 @@ #include #include +#include + #include "proj.h" #include "projects.h" @@ -188,7 +190,16 @@ void pj_free(PJ *P) { P->destructor (P, proj_errno(P)); } +/*****************************************************************************/ +// cppcheck-suppress uninitMemberVar +PJconsts::PJconsts(): destructor(pj_default_destructor) {} +/*****************************************************************************/ +/*****************************************************************************/ +PJ *pj_new() { +/*****************************************************************************/ + return new(std::nothrow) PJ(); +} /*****************************************************************************/ @@ -235,6 +246,6 @@ PJ *pj_default_destructor (PJ *P, int errlev) { /* Destructor */ pj_free (P->vgridshift); pj_dealloc (static_cast(P->opaque)); - pj_dealloc(P); + delete P; return nullptr; } diff --git a/src/projects.h b/src/projects.h index b76205a5..8371b99f 100644 --- a/src/projects.h +++ b/src/projects.h @@ -264,6 +264,13 @@ typedef PJ_COORD (* PJ_OPERATOR) (PJ_COORD, PJ *); /****************************************************************************/ +/* datum_type values */ +#define PJD_UNKNOWN 0 +#define PJD_3PARAM 1 +#define PJD_7PARAM 2 +#define PJD_GRIDSHIFT 3 +#define PJD_WGS84 4 /* WGS84 (or anything considered equivalent) */ + /* base projection data structure */ struct PJconsts { @@ -279,18 +286,18 @@ struct PJconsts { **************************************************************************************/ - projCtx_t *ctx; - const char *descr; /* From pj_list.h or individual PJ_*.c file */ - paralist *params; /* Parameter list */ - char *def_full; /* Full textual definition (usually 0 - set by proj_pj_info) */ - char *def_size; /* Shape and size parameters extracted from params */ - char *def_shape; - char *def_spherification; - char *def_ellps; + projCtx_t *ctx = nullptr; + const char *descr = nullptr; /* From pj_list.h or individual PJ_*.c file */ + paralist *params = nullptr; /* Parameter list */ + char *def_full = nullptr; /* Full textual definition (usually 0 - set by proj_pj_info) */ + char *def_size = nullptr; /* Shape and size parameters extracted from params */ + char *def_shape = nullptr; + char *def_spherification = nullptr; + char *def_ellps = nullptr; - struct geod_geodesic *geod; /* For geodesic computations */ - void *opaque; /* Projection specific parameters, Defined in PJ_*.c */ - int inverted; /* Tell high level API functions to swap inv/fwd */ + struct geod_geodesic *geod = nullptr; /* For geodesic computations */ + void *opaque = nullptr; /* Projection specific parameters, Defined in PJ_*.c */ + int inverted = 0; /* Tell high level API functions to swap inv/fwd */ /************************************************************************************* @@ -309,14 +316,14 @@ struct PJconsts { **************************************************************************************/ - XY (*fwd)(LP, PJ *); - LP (*inv)(XY, PJ *); - XYZ (*fwd3d)(LPZ, PJ *); - LPZ (*inv3d)(XYZ, PJ *); - PJ_OPERATOR fwd4d; - PJ_OPERATOR inv4d; + XY (*fwd)(LP, PJ *) = nullptr; + LP (*inv)(XY, PJ *) = nullptr; + XYZ (*fwd3d)(LPZ, PJ *) = nullptr; + LPZ (*inv3d)(XYZ, PJ *) = nullptr; + PJ_OPERATOR fwd4d = nullptr; + PJ_OPERATOR inv4d = nullptr; - PJ_DESTRUCTOR destructor; + PJ_DESTRUCTOR destructor = nullptr; /************************************************************************************* @@ -341,36 +348,37 @@ struct PJconsts { /* The linear parameters */ - double a; /* semimajor axis (radius if eccentricity==0) */ - double b; /* semiminor axis */ - double ra; /* 1/a */ - double rb; /* 1/b */ + double a = 0.0; /* semimajor axis (radius if eccentricity==0) */ + double b = 0.0; /* semiminor axis */ + double ra = 0.0; /* 1/a */ + double rb = 0.0; /* 1/b */ /* The eccentricities */ - double alpha; /* angular eccentricity */ - double e; /* first eccentricity */ - double es; /* first eccentricity squared */ - double e2; /* second eccentricity */ - double e2s; /* second eccentricity squared */ - double e3; /* third eccentricity */ - double e3s; /* third eccentricity squared */ - double one_es; /* 1 - e^2 */ - double rone_es; /* 1/one_es */ + double alpha = 0.0; /* angular eccentricity */ + double e = 0.0; /* first eccentricity */ + double es = 0.0; /* first eccentricity squared */ + double e2 = 0.0; /* second eccentricity */ + double e2s = 0.0; /* second eccentricity squared */ + double e3 = 0.0; /* third eccentricity */ + double e3s = 0.0; /* third eccentricity squared */ + double one_es = 0.0; /* 1 - e^2 */ + double rone_es = 0.0; /* 1/one_es */ /* The flattenings */ - double f; /* first flattening */ - double f2; /* second flattening */ - double n; /* third flattening */ - double rf; /* 1/f */ - double rf2; /* 1/f2 */ - double rn; /* 1/n */ + double f = 0.0; /* first flattening */ + double f2 = 0.0; /* second flattening */ + double n = 0.0; /* third flattening */ + double rf = 0.0; /* 1/f */ + double rf2 = 0.0; /* 1/f2 */ + double rn = 0.0; /* 1/n */ /* This one's for GRS80 */ - double J; /* "Dynamic form factor" */ + double J = 0.0; /* "Dynamic form factor" */ - double es_orig, a_orig; /* es and a before any +proj related adjustment */ + double es_orig = 0.0; /* es and a before any +proj related adjustment */ + double a_orig = 0.0; /************************************************************************************* @@ -379,27 +387,27 @@ struct PJconsts { **************************************************************************************/ - int over; /* Over-range flag */ - int geoc; /* Geocentric latitude flag */ - int is_latlong; /* proj=latlong ... not really a projection at all */ - int is_geocent; /* proj=geocent ... not really a projection at all */ - int is_pipeline; /* 1 if PJ represents a pipeline */ - int need_ellps; /* 0 for operations that are purely cartesian */ - int skip_fwd_prepare; - int skip_fwd_finalize; - int skip_inv_prepare; - int skip_inv_finalize; + int over = 0; /* Over-range flag */ + int geoc = 0; /* Geocentric latitude flag */ + int is_latlong = 0; /* proj=latlong ... not really a projection at all */ + int is_geocent = 0; /* proj=geocent ... not really a projection at all */ + int is_pipeline = 0; /* 1 if PJ represents a pipeline */ + int need_ellps = 0; /* 0 for operations that are purely cartesian */ + int skip_fwd_prepare = 0; + int skip_fwd_finalize = 0; + int skip_inv_prepare = 0; + int skip_inv_finalize = 0; - enum pj_io_units left; /* Flags for input/output coordinate types */ - enum pj_io_units right; + enum pj_io_units left = PJ_IO_UNITS_WHATEVER; /* Flags for input/output coordinate types */ + enum pj_io_units right = PJ_IO_UNITS_WHATEVER; /* These PJs are used for implementing cs2cs style coordinate handling in the 4D API */ - PJ *axisswap; - PJ *cart; - PJ *cart_wgs84; - PJ *helmert; - PJ *hgridshift; - PJ *vgridshift; + PJ *axisswap = nullptr; + PJ *cart = nullptr; + PJ *cart_wgs84 = nullptr; + PJ *helmert = nullptr; + PJ *hgridshift = nullptr; + PJ *vgridshift = nullptr; /************************************************************************************* @@ -408,8 +416,12 @@ struct PJconsts { **************************************************************************************/ - double lam0, phi0; /* central meridian, parallel */ - double x0, y0, z0, t0; /* false easting and northing (and height and time) */ + double lam0 = 0.0; /* central meridian */ + double phi0 = 0.0; /* central parallel */ + double x0 = 0.0; /* false easting */ + double y0 = 0.0; /* false northing */ + double z0 = 0.0; /* height origin */ + double t0 = 0.0; /* time origin */ /************************************************************************************* @@ -418,9 +430,9 @@ struct PJconsts { **************************************************************************************/ - double k0; /* General scaling factor - e.g. the 0.9996 of UTM */ - double to_meter, fr_meter; /* Plane coordinate scaling. Internal unit [m] */ - double vto_meter, vfr_meter; /* Vertical scaling. Internal unit [m] */ + double k0 = 0.0; /* General scaling factor - e.g. the 0.9996 of UTM */ + double to_meter = 0.0, fr_meter = 0.0; /* Plane coordinate scaling. Internal unit [m] */ + double vto_meter = 0.0, vfr_meter = 0.0; /* Vertical scaling. Internal unit [m] */ /************************************************************************************* @@ -434,33 +446,33 @@ struct PJconsts { **************************************************************************************/ - int datum_type; /* PJD_UNKNOWN/3PARAM/7PARAM/GRIDSHIFT/WGS84 */ - double datum_params[7]; /* Parameters for 3PARAM and 7PARAM */ - struct _pj_gi **gridlist; /* TODO: Description needed */ - int gridlist_count; + int datum_type = PJD_UNKNOWN; /* PJD_UNKNOWN/3PARAM/7PARAM/GRIDSHIFT/WGS84 */ + double datum_params[7] = {0,0,0,0,0,0,0}; /* Parameters for 3PARAM and 7PARAM */ + struct _pj_gi **gridlist = nullptr; /* TODO: Description needed */ + int gridlist_count = 0; - int has_geoid_vgrids; /* TODO: Description needed */ - struct _pj_gi **vgridlist_geoid; /* TODO: Description needed */ - int vgridlist_geoid_count; + int has_geoid_vgrids = 0; /* TODO: Description needed */ + struct _pj_gi **vgridlist_geoid = nullptr; /* TODO: Description needed */ + int vgridlist_geoid_count = 0; - double from_greenwich; /* prime meridian offset (in radians) */ - double long_wrap_center; /* 0.0 for -180 to 180, actually in radians*/ - int is_long_wrap_set; - char axis[4]; /* Axis order, pj_transform/pj_adjust_axis */ + double from_greenwich = 0.0; /* prime meridian offset (in radians) */ + double long_wrap_center = 0.0; /* 0.0 for -180 to 180, actually in radians*/ + int is_long_wrap_set = 0; + char axis[4] = {0,0,0,0}; /* Axis order, pj_transform/pj_adjust_axis */ /* New Datum Shift Grid Catalogs */ - char *catalog_name; - struct _PJ_GridCatalog *catalog; + char *catalog_name = nullptr; + struct _PJ_GridCatalog *catalog = nullptr; - double datum_date; /* TODO: Description needed */ + double datum_date = 0.0; /* TODO: Description needed */ - struct _pj_gi *last_before_grid; /* TODO: Description needed */ - PJ_Region last_before_region; /* TODO: Description needed */ - double last_before_date; /* TODO: Description needed */ + struct _pj_gi *last_before_grid = nullptr; /* TODO: Description needed */ + PJ_Region last_before_region = {0,0,0,0}; /* TODO: Description needed */ + double last_before_date = 0.0; /* TODO: Description needed */ - struct _pj_gi *last_after_grid; /* TODO: Description needed */ - PJ_Region last_after_region; /* TODO: Description needed */ - double last_after_date; /* TODO: Description needed */ + struct _pj_gi *last_after_grid = nullptr; /* TODO: Description needed */ + PJ_Region last_after_region = {0,0,0,0}; /* TODO: Description needed */ + double last_after_date = 0.0; /* TODO: Description needed */ /************************************************************************************* @@ -469,6 +481,7 @@ struct PJconsts { **************************************************************************************/ + PJconsts(); }; @@ -514,13 +527,6 @@ struct FACTORS { int code; /* always 0 */ }; -/* datum_type values */ -#define PJD_UNKNOWN 0 -#define PJD_3PARAM 1 -#define PJD_7PARAM 2 -#define PJD_GRIDSHIFT 3 -#define PJD_WGS84 4 /* WGS84 (or anything considered equivalent) */ - /* library errors */ #define PJD_ERR_NO_ARGS -1 #define PJD_ERR_NO_OPTION_IN_INIT_FILE -2 @@ -626,10 +632,9 @@ C_NAMESPACE_VAR const char * const pj_s_##name = des_##name; \ C_NAMESPACE PJ *pj_##name (PJ *P) { \ if (P) \ return pj_projection_specific_setup_##name (P); \ - P = (PJ*) pj_calloc (1, sizeof(PJ)); \ + P = pj_new(); \ if (nullptr==P) \ return nullptr; \ - P->destructor = pj_default_destructor; \ P->descr = des_##name; \ P->need_ellps = NEED_ELLPS; \ P->left = PJ_IO_UNITS_ANGULAR; \ @@ -827,6 +832,7 @@ extern char const PROJ_DLL pj_release[]; struct PJ_DATUMS PROJ_DLL *pj_get_datums_ref( void ); +PJ *pj_new(void); PJ *pj_default_destructor (PJ *P, int errlev); double PROJ_DLL pj_atof( const char* nptr ); -- cgit v1.2.3 From 53a81c447114ee34b744c01ae2656cce0f250a9c Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 26 Dec 2018 11:55:11 +0100 Subject: Move PJ_OBJ members into struct PJconsts --- src/ell_set.cpp | 50 +++++++++++++++++--------------------------------- src/proj_internal.h | 1 - src/projects.h | 18 ++++++++++++++++++ 3 files changed, 35 insertions(+), 34 deletions(-) diff --git a/src/ell_set.cpp b/src/ell_set.cpp index 486230a5..ee819917 100644 --- a/src/ell_set.cpp +++ b/src/ell_set.cpp @@ -127,7 +127,6 @@ int pj_ellipsoid (PJ *P) { /***************************************************************************************/ static int ellps_ellps (PJ *P) { /***************************************************************************************/ - PJ B; const PJ_ELLPS *ellps; paralist *par = nullptr; char *name; @@ -138,11 +137,6 @@ static int ellps_ellps (PJ *P) { if (nullptr==par) return 0; - /* Otherwise produce a fake PJ to make ellps_size/ellps_shape do the hard work for us */ - - /* First move B into P's context to get error messages onto the right channel */ - B.ctx = P->ctx; - /* Then look up the right size and shape parameters from the builtin list */ if (strlen (par->param) < 7) return proj_errno_set (P, PJD_ERR_INVALID_ARG); @@ -151,23 +145,28 @@ static int ellps_ellps (PJ *P) { if (nullptr==ellps) return proj_errno_set (P, PJD_ERR_UNKNOWN_ELLP_PARAM); - /* Now, get things ready for ellps_size/ellps_shape, make them do their thing, and clean up */ + /* Now, get things ready for ellps_size/ellps_shape, make them do their thing */ err = proj_errno_reset (P); - B = *P; - pj_erase_ellipsoid_def (&B); - B.params = pj_mkparam (ellps->major); - B.params->next = pj_mkparam (ellps->ell); - ellps_size (&B); - ellps_shape (&B); + paralist* new_params = pj_mkparam (ellps->major); + new_params->next = pj_mkparam (ellps->ell); + paralist* old_params = P->params; + P->params = new_params; + + { + PJ empty_PJ; + pj_inherit_ellipsoid_def(&empty_PJ, P); + } + ellps_size (P); + ellps_shape (P); - pj_dealloc (B.params->next); - pj_dealloc (B.params); - if (proj_errno (&B)) - return proj_errno (&B); + P->params = old_params; + pj_dealloc (new_params->next); + pj_dealloc (new_params); + if (proj_errno (P)) + return proj_errno (P); /* Finally update P and sail home */ - pj_inherit_ellipsoid_def (&B, P); P->def_ellps = par->param; par->used = 1; @@ -439,21 +438,6 @@ static const PJ_ELLPS *pj_find_ellps (const char *name) { } -/**************************************************************************************/ -void pj_erase_ellipsoid_def (PJ *P) { -/*************************************************************************************** - Erase all ellipsoidal parameters in P -***************************************************************************************/ - PJ B; - - /* Make a blank PJ to copy from */ - memset (&B, 0, sizeof (B)); - - /* And use it to overwrite all existing ellipsoid defs */ - pj_inherit_ellipsoid_def (&B, P); -} - - /**************************************************************************************/ void pj_inherit_ellipsoid_def (const PJ *src, PJ *dst) { /*************************************************************************************** diff --git a/src/proj_internal.h b/src/proj_internal.h index e0999d88..d5c807fb 100644 --- a/src/proj_internal.h +++ b/src/proj_internal.h @@ -115,7 +115,6 @@ void proj_context_log_debug (PJ_CONTEXT *ctx, const char *fmt, ...); int pj_ellipsoid (PJ *); void pj_inherit_ellipsoid_def (const PJ *src, PJ *dst); -void pj_erase_ellipsoid_def (PJ *P); int pj_calc_ellipsoid_params (PJ *P, double a, double es); /* Geographical to geocentric latitude - another of the "simple, but useful" */ diff --git a/src/projects.h b/src/projects.h index 8371b99f..4be56d8a 100644 --- a/src/projects.h +++ b/src/projects.h @@ -57,6 +57,11 @@ #include #include +#include "proj/common.hpp" +#include "proj/coordinateoperation.hpp" +#include +#include + #ifndef PROJ_DLL #ifdef PROJ_MSVC_DLL_EXPORT #define PROJ_DLL __declspec(dllexport) @@ -474,6 +479,17 @@ struct PJconsts { PJ_Region last_after_region = {0,0,0,0}; /* TODO: Description needed */ double last_after_date = 0.0; /* TODO: Description needed */ + /************************************************************************************* + ISO-19111 interface + **************************************************************************************/ + + NS_PROJ::common::IdentifiedObjectPtr iso_obj{}; + + // cached results + mutable std::string lastWKT{}; + mutable std::string lastPROJString{}; + mutable bool gridsNeededAsked = false; + mutable std::vector gridsNeeded{}; /************************************************************************************* @@ -482,6 +498,8 @@ struct PJconsts { **************************************************************************************/ PJconsts(); + PJconsts(const PJconsts &) = delete; + PJconsts &operator=(const PJconsts &) = delete; }; -- cgit v1.2.3 From a2fd4206924fedc96c3fd12607fb61e84c4841c0 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 26 Dec 2018 12:34:47 +0100 Subject: Remove PJ_OBJ type since it is now merged into PJ --- scripts/create_c_api_projections.py | 4 +- src/4D_api.cpp | 37 +- src/apps/cs2cs.cpp | 26 +- src/init.cpp | 6 +- src/iso19111/c_api.cpp | 763 ++++++++++++++++++------------------ src/malloc.cpp | 2 +- src/proj.h | 104 +++-- src/proj_experimental.h | 222 +++++------ test/unit/test_c_api.cpp | 33 +- 9 files changed, 606 insertions(+), 591 deletions(-) diff --git a/scripts/create_c_api_projections.py b/scripts/create_c_api_projections.py index 897212ee..76b54e1e 100755 --- a/scripts/create_c_api_projections.py +++ b/scripts/create_c_api_projections.py @@ -122,7 +122,7 @@ for sectiondef in compounddef.iter('sectiondef'): decl += " const char* linear_unit_name, double linear_unit_conv_factor" decl += ")" - header.write("PJ_OBJ PROJ_DLL *" + decl + ";\n\n") + header.write("PJ PROJ_DLL *" + decl + ";\n\n") briefdescription = func.find('briefdescription/para').xpath("normalize-space()") briefdescription = briefdescription.replace("Instanciate ", "Instanciate a ProjectedCRS with ") @@ -136,7 +136,7 @@ for sectiondef in compounddef.iter('sectiondef'): if has_angle: cppfile.write(" * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor).\n") cppfile.write(" */\n") - cppfile.write("PJ_OBJ* " + decl + "{\n"); + cppfile.write("PJ* " + decl + "{\n"); cppfile.write(" SANITIZE_CTX(ctx);\n"); cppfile.write(" try {\n"); if has_linear: diff --git a/src/4D_api.cpp b/src/4D_api.cpp index 71144a75..96d76ad8 100644 --- a/src/4D_api.cpp +++ b/src/4D_api.cpp @@ -83,6 +83,9 @@ int proj_angular_output (PJ *P, enum PJ_DIRECTION dir) { /* Geodesic distance (in meter) + fwd and rev azimuth between two points on the ellipsoid */ PJ_COORD proj_geod (const PJ *P, PJ_COORD a, PJ_COORD b) { PJ_COORD c; + if( !P->geod ) { + return proj_coord_error(); + } /* Note: the geodesic code takes arguments in degrees */ geod_inverse (P->geod, PJ_TODEG(a.lpz.phi), PJ_TODEG(a.lpz.lam), @@ -98,6 +101,9 @@ PJ_COORD proj_geod (const PJ *P, PJ_COORD a, PJ_COORD b) { double proj_lp_dist (const PJ *P, PJ_COORD a, PJ_COORD b) { double s12, azi1, azi2; /* Note: the geodesic code takes arguments in degrees */ + if( !P->geod ) { + return HUGE_VAL; + } geod_inverse (P->geod, PJ_TODEG(a.lpz.phi), PJ_TODEG(a.lpz.lam), PJ_TODEG(b.lpz.phi), PJ_TODEG(b.lpz.lam), @@ -744,12 +750,6 @@ PJ *proj_create_crs_to_crs (PJ_CONTEXT *ctx, const char *source_crs, const char PJ *P = proj_create_crs_to_crs(0, "EPSG:25832", "EPSG:25833", NULL); ******************************************************************************/ - PJ *P; - PJ_OBJ* src; - PJ_OBJ* dst; - PJ_OPERATION_FACTORY_CONTEXT* operation_ctx; - PJ_OBJ_LIST* op_list; - PJ_OBJ* op; const char* proj_string; const char* const optionsProj4Mode[] = { "USE_PROJ4_INIT_RULES=YES", nullptr }; @@ -760,23 +760,23 @@ PJ *proj_create_crs_to_crs (PJ_CONTEXT *ctx, const char *source_crs, const char const char* const* optionsImportCRS = proj_context_get_use_proj4_init_rules(ctx, FALSE) ? optionsProj4Mode : nullptr; - src = proj_obj_create_from_user_input(ctx, source_crs, optionsImportCRS); + auto src = proj_obj_create_from_user_input(ctx, source_crs, optionsImportCRS); if( !src ) { proj_context_log_debug(ctx, "Cannot instanciate source_crs"); return nullptr; } - dst = proj_obj_create_from_user_input(ctx, target_crs, optionsImportCRS); + auto dst = proj_obj_create_from_user_input(ctx, target_crs, optionsImportCRS); if( !dst ) { proj_context_log_debug(ctx, "Cannot instanciate target_crs"); - proj_obj_destroy(src); + proj_destroy(src); return nullptr; } - operation_ctx = proj_create_operation_factory_context(ctx, nullptr); + auto operation_ctx = proj_create_operation_factory_context(ctx, nullptr); if( !operation_ctx ) { - proj_obj_destroy(src); - proj_obj_destroy(dst); + proj_destroy(src); + proj_destroy(dst); return nullptr; } @@ -793,11 +793,11 @@ PJ *proj_create_crs_to_crs (PJ_CONTEXT *ctx, const char *source_crs, const char proj_operation_factory_context_set_grid_availability_use( ctx, operation_ctx, PROJ_GRID_AVAILABILITY_DISCARD_OPERATION_IF_MISSING_GRID); - op_list = proj_obj_create_operations(ctx, src, dst, operation_ctx); + auto op_list = proj_obj_create_operations(ctx, src, dst, operation_ctx); proj_operation_factory_context_destroy(operation_ctx); - proj_obj_destroy(src); - proj_obj_destroy(dst); + proj_destroy(src); + proj_destroy(dst); if( !op_list ) { return nullptr; @@ -809,7 +809,7 @@ PJ *proj_create_crs_to_crs (PJ_CONTEXT *ctx, const char *source_crs, const char return nullptr; } - op = proj_obj_list_get(ctx, op_list, 0); + auto op = proj_obj_list_get(ctx, op_list, 0); proj_obj_list_destroy(op_list); if( !op ) { return nullptr; @@ -817,11 +817,12 @@ PJ *proj_create_crs_to_crs (PJ_CONTEXT *ctx, const char *source_crs, const char proj_string = proj_obj_as_proj_string(ctx, op, PJ_PROJ_5, nullptr); if( !proj_string) { - proj_obj_destroy(op); + proj_destroy(op); proj_context_log_debug(ctx, "Cannot export operation as a PROJ string"); return nullptr; } + PJ* P; if( proj_string[0] == '\0' ) { /* Null transform ? */ P = proj_create(ctx, "proj=affine"); @@ -829,7 +830,7 @@ PJ *proj_create_crs_to_crs (PJ_CONTEXT *ctx, const char *source_crs, const char P = proj_create(ctx, proj_string); } - proj_obj_destroy(op); + proj_destroy(op); return P; } diff --git a/src/apps/cs2cs.cpp b/src/apps/cs2cs.cpp index f63bedcc..937d3d58 100644 --- a/src/apps/cs2cs.cpp +++ b/src/apps/cs2cs.cpp @@ -209,11 +209,11 @@ static void process(FILE *fid) /* instanciate_crs() */ /************************************************************************/ -static PJ_OBJ *instanciate_crs(const std::string &definition, +static PJ *instanciate_crs(const std::string &definition, const char *const *optionsImportCRS, bool &isGeog, double &toRadians, bool &isLatFirst) { - PJ_OBJ *crs = proj_obj_create_from_user_input(nullptr, definition.c_str(), + PJ *crs = proj_obj_create_from_user_input(nullptr, definition.c_str(), optionsImportCRS); if (!crs) { return nullptr; @@ -226,7 +226,7 @@ static PJ_OBJ *instanciate_crs(const std::string &definition, auto type = proj_obj_get_type(crs); if (type == PJ_OBJ_TYPE_BOUND_CRS) { auto base = proj_obj_get_source_crs(nullptr, crs); - proj_obj_destroy(crs); + proj_destroy(crs); crs = base; type = proj_obj_get_type(crs); } @@ -250,7 +250,7 @@ static PJ_OBJ *instanciate_crs(const std::string &definition, NS_PROJ::internal::ci_find(std::string(axisName), "latitude") != std::string::npos; - proj_obj_destroy(cs); + proj_destroy(cs); } return crs; @@ -260,14 +260,14 @@ static PJ_OBJ *instanciate_crs(const std::string &definition, /* get_geog_crs_proj_string_from_proj_crs() */ /************************************************************************/ -static std::string get_geog_crs_proj_string_from_proj_crs(PJ_OBJ *src, +static std::string get_geog_crs_proj_string_from_proj_crs(PJ *src, double &toRadians, bool &isLatFirst) { auto srcType = proj_obj_get_type(src); if (srcType == PJ_OBJ_TYPE_BOUND_CRS) { auto base = proj_obj_get_source_crs(nullptr, src); assert(base); - proj_obj_destroy(src); + proj_destroy(src); src = base; srcType = proj_obj_get_type(src); } @@ -280,7 +280,7 @@ static std::string get_geog_crs_proj_string_from_proj_crs(PJ_OBJ *src, auto baseType = proj_obj_get_type(base); if (baseType != PJ_OBJ_TYPE_GEOGRAPHIC_2D_CRS && baseType != PJ_OBJ_TYPE_GEOGRAPHIC_3D_CRS) { - proj_obj_destroy(base); + proj_destroy(base); return std::string(); } @@ -300,11 +300,11 @@ static std::string get_geog_crs_proj_string_from_proj_crs(PJ_OBJ *src, isLatFirst = NS_PROJ::internal::ci_find(std::string(axisName), "latitude") != std::string::npos; - proj_obj_destroy(cs); + proj_destroy(cs); auto retCStr = proj_obj_as_proj_string(nullptr, base, PJ_PROJ_5, nullptr); std::string ret(retCStr ? retCStr : ""); - proj_obj_destroy(base); + proj_destroy(base); return ret; } @@ -541,7 +541,7 @@ int main(int argc, char **argv) { proj_context_get_use_proj4_init_rules(nullptr, TRUE) ? optionsProj4Mode : nullptr; - PJ_OBJ *src = nullptr; + PJ *src = nullptr; if (!fromStr.empty()) { bool ignored; src = instanciate_crs(fromStr, optionsImportCRS, srcIsGeog, @@ -551,7 +551,7 @@ int main(int argc, char **argv) { } } - PJ_OBJ *dst = nullptr; + PJ *dst = nullptr; if (!toStr.empty()) { dst = instanciate_crs(toStr, optionsImportCRS, destIsGeog, destToRadians, destIsLatLong); @@ -581,8 +581,8 @@ int main(int argc, char **argv) { srcIsGeog = true; } - proj_obj_destroy(src); - proj_obj_destroy(dst); + proj_destroy(src); + proj_destroy(dst); transformation = proj_create_crs_to_crs(nullptr, fromStr.c_str(), toStr.c_str(), nullptr); diff --git a/src/init.cpp b/src/init.cpp index 4274f5b4..bc5f6dcb 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -272,7 +272,7 @@ Expand key from buffer or (if not in buffer) from init file if( !exists ) { const char* const optionsProj4Mode[] = { "USE_PROJ4_INIT_RULES=YES", nullptr }; char szInitStr[7 + 64]; - PJ_OBJ* src; + PJ* src; const char* proj_string; pj_ctx_set_errno( ctx, 0 ); @@ -294,7 +294,7 @@ Expand key from buffer or (if not in buffer) from init file proj_string = proj_obj_as_proj_string(ctx, src, PJ_PROJ_4, nullptr); if( !proj_string ) { - proj_obj_destroy(src); + proj_destroy(src); return nullptr; } definition = (char*)calloc(1, strlen(proj_string)+1); @@ -302,7 +302,7 @@ Expand key from buffer or (if not in buffer) from init file strcpy(definition, proj_string); } - proj_obj_destroy(src); + proj_destroy(src); } } diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index d0b5d720..150b9f1b 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -90,29 +90,12 @@ static void PROJ_NO_INLINE proj_log_debug(PJ_CONTEXT *ctx, const char *function, // --------------------------------------------------------------------------- -/** \brief Opaque object representing a Ellipsoid, Datum, CRS or Coordinate - * Operation. Should be used by at most one thread at a time. */ -struct PJ_OBJ { - //! @cond Doxygen_Suppress - IdentifiedObjectNNPtr obj; - - // cached results - mutable std::string lastWKT{}; - mutable std::string lastPROJString{}; - mutable bool gridsNeededAsked = false; - mutable std::vector gridsNeeded{}; - - explicit PJ_OBJ(const IdentifiedObjectNNPtr &objIn) : obj(objIn) {} - static PJ_OBJ *create(const IdentifiedObjectNNPtr &objIn); - - PJ_OBJ(const PJ_OBJ &) = delete; - PJ_OBJ &operator=(const PJ_OBJ &) = delete; - //! @endcond -}; - //! @cond Doxygen_Suppress -PJ_OBJ *PJ_OBJ::create(const IdentifiedObjectNNPtr &objIn) { - return new PJ_OBJ(objIn); +static PJ *pj_obj_create(const IdentifiedObjectNNPtr &objIn) { + auto pj = new PJ(); + pj->descr = "ISO-19111 object"; + pj->iso_obj = objIn; + return pj; } //! @endcond @@ -313,20 +296,23 @@ static const char *getOptionValue(const char *option, /** \brief "Clone" an object. * * Technically this just increases the reference counter on the object, since - * PJ_OBJ objects are immutable. + * PJ objects are immutable. * - * The returned object must be unreferenced with proj_obj_destroy() after use. + * The returned object must be unreferenced with proj_destroy() after use. * It should be used by at most one thread at a time. * * @param ctx PROJ context, or NULL for default context * @param obj Object to clone. Must not be NULL. - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL in + * @return Object that must be unreferenced with proj_destroy(), or NULL in * case of error. */ -PJ_OBJ *proj_obj_clone(PJ_CONTEXT *ctx, const PJ_OBJ *obj) { +PJ *proj_obj_clone(PJ_CONTEXT *ctx, const PJ *obj) { SANITIZE_CTX(ctx); + if( !obj->iso_obj ) { + return nullptr; + } try { - return PJ_OBJ::create(obj->obj); + return pj_obj_create(NN_NO_CHECK(obj->iso_obj)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -341,7 +327,7 @@ PJ_OBJ *proj_obj_clone(PJ_CONTEXT *ctx, const PJ_OBJ *obj) { * * This function calls osgeo::proj::io::createFromUserInput() * - * The returned object must be unreferenced with proj_obj_destroy() after use. + * The returned object must be unreferenced with proj_destroy() after use. * It should be used by at most one thread at a time. * * @param ctx PROJ context, or NULL for default context @@ -357,10 +343,10 @@ PJ_OBJ *proj_obj_clone(PJ_CONTEXT *ctx, const PJ_OBJ *obj) { * Orientated projection). In that mode, the epsg:XXXX syntax will be also * interprated the same way. * - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL in + * @return Object that must be unreferenced with proj_destroy(), or NULL in * case of error. */ -PJ_OBJ *proj_obj_create_from_user_input(PJ_CONTEXT *ctx, const char *text, +PJ *proj_obj_create_from_user_input(PJ_CONTEXT *ctx, const char *text, const char *const *options) { SANITIZE_CTX(ctx); assert(text); @@ -382,7 +368,7 @@ PJ_OBJ *proj_obj_create_from_user_input(PJ_CONTEXT *ctx, const char *text, auto identifiedObject = nn_dynamic_pointer_cast( createFromUserInput(text, dbContext, usePROJ4InitRules)); if (identifiedObject) { - return PJ_OBJ::create(NN_NO_CHECK(identifiedObject)); + return pj_obj_create(NN_NO_CHECK(identifiedObject)); } } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -418,7 +404,7 @@ template static PROJ_STRING_LIST to_string_list(T &&set) { * * This function calls osgeo::proj::io::WKTParser::createFromWKT() * - * The returned object must be unreferenced with proj_obj_destroy() after use. + * The returned object must be unreferenced with proj_destroy() after use. * It should be used by at most one thread at a time. * * @param ctx PROJ context, or NULL for default context @@ -436,10 +422,10 @@ template static PROJ_STRING_LIST to_string_list(T &&set) { * @param out_grammar_errors Pointer to a PROJ_STRING_LIST object, or NULL. * If provided, *out_grammar_errors will contain a list of errors regarding the * WKT grammaer. It must be freed with proj_string_list_destroy(). - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL in + * @return Object that must be unreferenced with proj_destroy(), or NULL in * case of error. */ -PJ_OBJ *proj_obj_create_from_wkt(PJ_CONTEXT *ctx, const char *wkt, +PJ *proj_obj_create_from_wkt(PJ_CONTEXT *ctx, const char *wkt, const char *const *options, PROJ_STRING_LIST *out_warnings, PROJ_STRING_LIST *out_grammar_errors) { @@ -501,7 +487,7 @@ PJ_OBJ *proj_obj_create_from_wkt(PJ_CONTEXT *ctx, const char *wkt, } if (obj) { - return PJ_OBJ::create(NN_NO_CHECK(obj)); + return pj_obj_create(NN_NO_CHECK(obj)); } } catch (const std::exception &e) { if (out_grammar_errors) { @@ -524,16 +510,16 @@ PJ_OBJ *proj_obj_create_from_wkt(PJ_CONTEXT *ctx, const char *wkt, * * This function calls osgeo::proj::io::PROJStringParser::createFromPROJString() * - * The returned object must be unreferenced with proj_obj_destroy() after use. + * The returned object must be unreferenced with proj_destroy() after use. * It should be used by at most one thread at a time. * * @param ctx PROJ context, or NULL for default context * @param proj_string PROJ string (must not be NULL) * @param options should be set to NULL for now - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL in + * @return Object that must be unreferenced with proj_destroy(), or NULL in * case of error. */ -PJ_OBJ *proj_obj_create_from_proj_string(PJ_CONTEXT *ctx, +PJ *proj_obj_create_from_proj_string(PJ_CONTEXT *ctx, const char *proj_string, const char *const *options) { SANITIZE_CTX(ctx); @@ -548,7 +534,7 @@ PJ_OBJ *proj_obj_create_from_proj_string(PJ_CONTEXT *ctx, auto identifiedObject = nn_dynamic_pointer_cast( parser.createFromPROJString(proj_string)); if (identifiedObject) { - return PJ_OBJ::create(NN_NO_CHECK(identifiedObject)); + return pj_obj_create(NN_NO_CHECK(identifiedObject)); } } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -560,7 +546,7 @@ PJ_OBJ *proj_obj_create_from_proj_string(PJ_CONTEXT *ctx, /** \brief Instanciate an object from a database lookup. * - * The returned object must be unreferenced with proj_obj_destroy() after use. + * The returned object must be unreferenced with proj_destroy() after use. * It should be used by at most one thread at a time. * * @param ctx Context, or NULL for default context. @@ -571,10 +557,10 @@ PJ_OBJ *proj_obj_create_from_proj_string(PJ_CONTEXT *ctx, * should be substituted to the official grid names. Only used on * transformations * @param options should be set to NULL for now - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL in + * @return Object that must be unreferenced with proj_destroy(), or NULL in * case of error. */ -PJ_OBJ *proj_obj_create_from_database(PJ_CONTEXT *ctx, const char *auth_name, +PJ *proj_obj_create_from_database(PJ_CONTEXT *ctx, const char *auth_name, const char *code, PJ_OBJ_CATEGORY category, int usePROJAlternativeGridNames, @@ -608,7 +594,7 @@ PJ_OBJ *proj_obj_create_from_database(PJ_CONTEXT *ctx, const char *auth_name, .as_nullable(); break; } - return PJ_OBJ::create(NN_NO_CHECK(obj)); + return pj_obj_create(NN_NO_CHECK(obj)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -729,17 +715,6 @@ PJ_OBJ_LIST *proj_obj_query_geodetic_crs_from_datum(PJ_CONTEXT *ctx, // --------------------------------------------------------------------------- -/** \brief Drops a reference on an object. - * - * This method should be called one and exactly one for each function - * returning a PJ_OBJ* - * - * @param obj Object, or NULL. - */ -void proj_obj_destroy(PJ_OBJ *obj) { delete obj; } - -// --------------------------------------------------------------------------- - //! @cond Doxygen_Suppress static AuthorityFactory::ObjectType convertPJObjectTypeToObjectType(PJ_OBJ_TYPE type, bool &valid) { @@ -905,9 +880,12 @@ PJ_OBJ_LIST *proj_obj_create_from_name(PJ_CONTEXT *ctx, const char *auth_name, * @param obj Object (must not be NULL) * @return its type. */ -PJ_OBJ_TYPE proj_obj_get_type(const PJ_OBJ *obj) { +PJ_OBJ_TYPE proj_obj_get_type(const PJ *obj) { assert(obj); - auto ptr = obj->obj.get(); + if( !obj->iso_obj ) { + return PJ_OBJ_TYPE_UNKNOWN; + } + auto ptr = obj->iso_obj.get(); if (dynamic_cast(ptr)) { return PJ_OBJ_TYPE_ELLIPSOID; } @@ -999,9 +977,12 @@ PJ_OBJ_TYPE proj_obj_get_type(const PJ_OBJ *obj) { * @param obj Object (must not be NULL) * @return TRUE if it is deprecated, FALSE otherwise */ -int proj_obj_is_deprecated(const PJ_OBJ *obj) { +int proj_obj_is_deprecated(const PJ *obj) { assert(obj); - return obj->obj->isDeprecated(); + if( !obj->iso_obj ) { + return false; + } + return obj->iso_obj->isDeprecated(); } // --------------------------------------------------------------------------- @@ -1014,10 +995,10 @@ int proj_obj_is_deprecated(const PJ_OBJ *obj) { * @return a result set that must be unreferenced with * proj_obj_list_destroy(), or NULL in case of error. */ -PJ_OBJ_LIST *proj_obj_get_non_deprecated(PJ_CONTEXT *ctx, const PJ_OBJ *obj) { +PJ_OBJ_LIST *proj_obj_get_non_deprecated(PJ_CONTEXT *ctx, const PJ *obj) { assert(obj); SANITIZE_CTX(ctx); - auto crs = dynamic_cast(obj->obj.get()); + auto crs = dynamic_cast(obj->iso_obj.get()); if (!crs) { return nullptr; } @@ -1043,10 +1024,16 @@ PJ_OBJ_LIST *proj_obj_get_non_deprecated(PJ_CONTEXT *ctx, const PJ_OBJ *obj) { * @param criterion Comparison criterion * @return TRUE if they are equivalent */ -int proj_obj_is_equivalent_to(const PJ_OBJ *obj, const PJ_OBJ *other, +int proj_obj_is_equivalent_to(const PJ *obj, const PJ *other, PJ_COMPARISON_CRITERION criterion) { assert(obj); assert(other); + if( !obj->iso_obj ) { + return false; + } + if( !other->iso_obj ) { + return false; + } // Make sure that the C and C++ enumerations match static_assert(static_cast(PJ_COMP_STRICT) == @@ -1071,7 +1058,7 @@ int proj_obj_is_equivalent_to(const PJ_OBJ *obj, const PJ_OBJ *other, } const IComparable::Criterion cppCriterion = static_cast(criterion); - return obj->obj->isEquivalentTo(other->obj.get(), cppCriterion); + return obj->iso_obj->isEquivalentTo(other->iso_obj.get(), cppCriterion); } // --------------------------------------------------------------------------- @@ -1080,9 +1067,9 @@ int proj_obj_is_equivalent_to(const PJ_OBJ *obj, const PJ_OBJ *other, * * @param obj Object (must not be NULL) */ -int proj_obj_is_crs(const PJ_OBJ *obj) { +int proj_obj_is_crs(const PJ *obj) { assert(obj); - return dynamic_cast(obj->obj.get()) != nullptr; + return dynamic_cast(obj->iso_obj.get()) != nullptr; } // --------------------------------------------------------------------------- @@ -1094,9 +1081,12 @@ int proj_obj_is_crs(const PJ_OBJ *obj) { * @param obj Object (must not be NULL) * @return a string, or NULL in case of error or missing name. */ -const char *proj_obj_get_name(const PJ_OBJ *obj) { +const char *proj_obj_get_name(const PJ *obj) { assert(obj); - const auto &desc = obj->obj->name()->description(); + if( !obj->iso_obj ) { + return nullptr; + } + const auto &desc = obj->iso_obj->name()->description(); if (!desc.has_value()) { return nullptr; } @@ -1115,9 +1105,12 @@ const char *proj_obj_get_name(const PJ_OBJ *obj) { * @param index Index of the identifier. 0 = first identifier * @return a string, or NULL in case of error or missing name. */ -const char *proj_obj_get_id_auth_name(const PJ_OBJ *obj, int index) { +const char *proj_obj_get_id_auth_name(const PJ *obj, int index) { assert(obj); - const auto &ids = obj->obj->identifiers(); + if( !obj->iso_obj ) { + return nullptr; + } + const auto &ids = obj->iso_obj->identifiers(); if (static_cast(index) >= ids.size()) { return nullptr; } @@ -1140,9 +1133,12 @@ const char *proj_obj_get_id_auth_name(const PJ_OBJ *obj, int index) { * @param index Index of the identifier. 0 = first identifier * @return a string, or NULL in case of error or missing name. */ -const char *proj_obj_get_id_code(const PJ_OBJ *obj, int index) { +const char *proj_obj_get_id_code(const PJ *obj, int index) { assert(obj); - const auto &ids = obj->obj->identifiers(); + if( !obj->iso_obj ) { + return nullptr; + } + const auto &ids = obj->iso_obj->identifiers(); if (static_cast(index) >= ids.size()) { return nullptr; } @@ -1177,10 +1173,13 @@ const char *proj_obj_get_id_code(const PJ_OBJ *obj, int index) { * * @return a string, or NULL in case of error. */ -const char *proj_obj_as_wkt(PJ_CONTEXT *ctx, const PJ_OBJ *obj, +const char *proj_obj_as_wkt(PJ_CONTEXT *ctx, const PJ *obj, PJ_WKT_TYPE type, const char *const *options) { SANITIZE_CTX(ctx); assert(obj); + if( !obj->iso_obj ) { + return nullptr; + } // Make sure that the C and C++ enumerations match static_assert(static_cast(PJ_WKT2_2015) == @@ -1239,7 +1238,7 @@ const char *proj_obj_as_wkt(PJ_CONTEXT *ctx, const PJ_OBJ *obj, return nullptr; } } - obj->lastWKT = obj->obj->exportToWKT(formatter.get()); + obj->lastWKT = obj->iso_obj->exportToWKT(formatter.get()); return obj->lastWKT.c_str(); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -1271,13 +1270,13 @@ const char *proj_obj_as_wkt(PJ_CONTEXT *ctx, const PJ_OBJ *obj, * use of etmerc by utm conversions) * @return a string, or NULL in case of error. */ -const char *proj_obj_as_proj_string(PJ_CONTEXT *ctx, const PJ_OBJ *obj, +const char *proj_obj_as_proj_string(PJ_CONTEXT *ctx, const PJ *obj, PJ_PROJ_STRING_TYPE type, const char *const *options) { SANITIZE_CTX(ctx); assert(obj); auto exportable = - dynamic_cast(obj->obj.get()); + dynamic_cast(obj->iso_obj.get()); if (!exportable) { proj_log_error(ctx, __FUNCTION__, "Object type not exportable to PROJ"); return nullptr; @@ -1339,7 +1338,7 @@ const char *proj_obj_as_proj_string(PJ_CONTEXT *ctx, const PJ_OBJ *obj, * @return TRUE in case of success, FALSE in case of error or if the area * of use is unknown. */ -int proj_obj_get_area_of_use(PJ_CONTEXT *ctx, const PJ_OBJ *obj, +int proj_obj_get_area_of_use(PJ_CONTEXT *ctx, const PJ *obj, double *out_west_lon_degree, double *out_south_lat_degree, double *out_east_lon_degree, @@ -1349,7 +1348,7 @@ int proj_obj_get_area_of_use(PJ_CONTEXT *ctx, const PJ_OBJ *obj, if (out_area_name) { *out_area_name = nullptr; } - auto objectUsage = dynamic_cast(obj->obj.get()); + auto objectUsage = dynamic_cast(obj->iso_obj.get()); if (!objectUsage) { return false; } @@ -1403,10 +1402,10 @@ int proj_obj_get_area_of_use(PJ_CONTEXT *ctx, const PJ_OBJ *obj, // --------------------------------------------------------------------------- -static const GeodeticCRS *extractGeodeticCRS(PJ_CONTEXT *ctx, const PJ_OBJ *crs, +static const GeodeticCRS *extractGeodeticCRS(PJ_CONTEXT *ctx, const PJ *crs, const char *fname) { assert(crs); - auto l_crs = dynamic_cast(crs->obj.get()); + auto l_crs = dynamic_cast(crs->iso_obj.get()); if (!l_crs) { proj_log_error(ctx, fname, "Object is not a CRS"); return nullptr; @@ -1422,22 +1421,22 @@ static const GeodeticCRS *extractGeodeticCRS(PJ_CONTEXT *ctx, const PJ_OBJ *crs, /** \brief Get the geodeticCRS / geographicCRS from a CRS * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * * @param ctx PROJ context, or NULL for default context * @param crs Objet of type CRS (must not be NULL) - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL + * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error. */ -PJ_OBJ *proj_obj_crs_get_geodetic_crs(PJ_CONTEXT *ctx, const PJ_OBJ *crs) { +PJ *proj_obj_crs_get_geodetic_crs(PJ_CONTEXT *ctx, const PJ *crs) { SANITIZE_CTX(ctx); auto geodCRS = extractGeodeticCRS(ctx, crs, __FUNCTION__); if (!geodCRS) { return nullptr; } - return PJ_OBJ::create(NN_NO_CHECK(nn_dynamic_pointer_cast( + return pj_obj_create(NN_NO_CHECK(nn_dynamic_pointer_cast( geodCRS->shared_from_this()))); } @@ -1445,7 +1444,7 @@ PJ_OBJ *proj_obj_crs_get_geodetic_crs(PJ_CONTEXT *ctx, const PJ_OBJ *crs) { /** \brief Get a CRS component from a CompoundCRS * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -1453,14 +1452,14 @@ PJ_OBJ *proj_obj_crs_get_geodetic_crs(PJ_CONTEXT *ctx, const PJ_OBJ *crs) { * @param crs Objet of type CRS (must not be NULL) * @param index Index of the CRS component (typically 0 = horizontal, 1 = * vertical) - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL + * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error. */ -PJ_OBJ *proj_obj_crs_get_sub_crs(PJ_CONTEXT *ctx, const PJ_OBJ *crs, +PJ *proj_obj_crs_get_sub_crs(PJ_CONTEXT *ctx, const PJ *crs, int index) { SANITIZE_CTX(ctx); assert(crs); - auto l_crs = dynamic_cast(crs->obj.get()); + auto l_crs = dynamic_cast(crs->iso_obj.get()); if (!l_crs) { proj_log_error(ctx, __FUNCTION__, "Object is not a CompoundCRS"); return nullptr; @@ -1469,14 +1468,14 @@ PJ_OBJ *proj_obj_crs_get_sub_crs(PJ_CONTEXT *ctx, const PJ_OBJ *crs, if (static_cast(index) >= components.size()) { return nullptr; } - return PJ_OBJ::create(components[index]); + return pj_obj_create(components[index]); } // --------------------------------------------------------------------------- /** \brief Returns a BoundCRS * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -1484,34 +1483,34 @@ PJ_OBJ *proj_obj_crs_get_sub_crs(PJ_CONTEXT *ctx, const PJ_OBJ *crs, * @param base_crs Base CRS (must not be NULL) * @param hub_crs Hub CRS (must not be NULL) * @param transformation Transformation (must not be NULL) - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL + * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error. */ -PJ_OBJ *proj_obj_crs_create_bound_crs(PJ_CONTEXT *ctx, const PJ_OBJ *base_crs, - const PJ_OBJ *hub_crs, - const PJ_OBJ *transformation) { +PJ *proj_obj_crs_create_bound_crs(PJ_CONTEXT *ctx, const PJ *base_crs, + const PJ *hub_crs, + const PJ *transformation) { SANITIZE_CTX(ctx); assert(base_crs); assert(hub_crs); assert(transformation); - auto l_base_crs = util::nn_dynamic_pointer_cast(base_crs->obj); + auto l_base_crs = std::dynamic_pointer_cast(base_crs->iso_obj); if (!l_base_crs) { proj_log_error(ctx, __FUNCTION__, "base_crs is not a CRS"); return nullptr; } - auto l_hub_crs = util::nn_dynamic_pointer_cast(hub_crs->obj); + auto l_hub_crs = std::dynamic_pointer_cast(hub_crs->iso_obj); if (!l_hub_crs) { proj_log_error(ctx, __FUNCTION__, "hub_crs is not a CRS"); return nullptr; } auto l_transformation = - util::nn_dynamic_pointer_cast(transformation->obj); + std::dynamic_pointer_cast(transformation->iso_obj); if (!l_transformation) { proj_log_error(ctx, __FUNCTION__, "transformation is not a CRS"); return nullptr; } try { - return PJ_OBJ::create(BoundCRS::create(NN_NO_CHECK(l_base_crs), + return pj_obj_create(BoundCRS::create(NN_NO_CHECK(l_base_crs), NN_NO_CHECK(l_hub_crs), NN_NO_CHECK(l_transformation))); } catch (const std::exception &e) { @@ -1525,7 +1524,7 @@ PJ_OBJ *proj_obj_crs_create_bound_crs(PJ_CONTEXT *ctx, const PJ_OBJ *base_crs, /** \brief Returns potentially * a BoundCRS, with a transformation to EPSG:4326, wrapping this CRS * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -1541,15 +1540,15 @@ PJ_OBJ *proj_obj_crs_create_bound_crs(PJ_CONTEXT *ctx, const PJ_OBJ *base_crs, * intermediate CRS may be considered when computing the possible * tranformations. Slower. * - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL + * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error. */ -PJ_OBJ *proj_obj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, - const PJ_OBJ *crs, +PJ *proj_obj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, + const PJ *crs, const char *const *options) { SANITIZE_CTX(ctx); assert(crs); - auto l_crs = dynamic_cast(crs->obj.get()); + auto l_crs = dynamic_cast(crs->iso_obj.get()); if (!l_crs) { proj_log_error(ctx, __FUNCTION__, "Object is not a CRS"); return nullptr; @@ -1568,7 +1567,7 @@ PJ_OBJ *proj_obj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, return nullptr; } } - return PJ_OBJ::create(l_crs->createBoundCRSToWGS84IfPossible( + return pj_obj_create(l_crs->createBoundCRSToWGS84IfPossible( dbContext, allowIntermediateCRS)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -1580,27 +1579,27 @@ PJ_OBJ *proj_obj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, /** \brief Get the ellipsoid from a CRS or a GeodeticReferenceFrame. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * * @param ctx PROJ context, or NULL for default context * @param obj Objet of type CRS or GeodeticReferenceFrame (must not be NULL) - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL + * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error. */ -PJ_OBJ *proj_obj_get_ellipsoid(PJ_CONTEXT *ctx, const PJ_OBJ *obj) { +PJ *proj_obj_get_ellipsoid(PJ_CONTEXT *ctx, const PJ *obj) { SANITIZE_CTX(ctx); - auto ptr = obj->obj.get(); + auto ptr = obj->iso_obj.get(); if (dynamic_cast(ptr)) { auto geodCRS = extractGeodeticCRS(ctx, obj, __FUNCTION__); if (geodCRS) { - return PJ_OBJ::create(geodCRS->ellipsoid()); + return pj_obj_create(geodCRS->ellipsoid()); } } else { auto datum = dynamic_cast(ptr); if (datum) { - return PJ_OBJ::create(datum->ellipsoid()); + return pj_obj_create(datum->ellipsoid()); } } proj_log_error(ctx, __FUNCTION__, @@ -1612,16 +1611,16 @@ PJ_OBJ *proj_obj_get_ellipsoid(PJ_CONTEXT *ctx, const PJ_OBJ *obj) { /** \brief Get the horizontal datum from a CRS * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * * @param ctx PROJ context, or NULL for default context * @param crs Objet of type CRS (must not be NULL) - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL + * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error. */ -PJ_OBJ *proj_obj_crs_get_horizontal_datum(PJ_CONTEXT *ctx, const PJ_OBJ *crs) { +PJ *proj_obj_crs_get_horizontal_datum(PJ_CONTEXT *ctx, const PJ *crs) { SANITIZE_CTX(ctx); auto geodCRS = extractGeodeticCRS(ctx, crs, __FUNCTION__); if (!geodCRS) { @@ -1629,12 +1628,12 @@ PJ_OBJ *proj_obj_crs_get_horizontal_datum(PJ_CONTEXT *ctx, const PJ_OBJ *crs) { } const auto &datum = geodCRS->datum(); if (datum) { - return PJ_OBJ::create(NN_NO_CHECK(datum)); + return pj_obj_create(NN_NO_CHECK(datum)); } const auto &datumEnsemble = geodCRS->datumEnsemble(); if (datumEnsemble) { - return PJ_OBJ::create(NN_NO_CHECK(datumEnsemble)); + return pj_obj_create(NN_NO_CHECK(datumEnsemble)); } proj_log_error(ctx, __FUNCTION__, "CRS has no datum"); return nullptr; @@ -1660,14 +1659,14 @@ PJ_OBJ *proj_obj_crs_get_horizontal_datum(PJ_CONTEXT *ctx, const PJ_OBJ *crs) { * flattening. or NULL * @return TRUE in case of success. */ -int proj_obj_ellipsoid_get_parameters(PJ_CONTEXT *ctx, const PJ_OBJ *ellipsoid, +int proj_obj_ellipsoid_get_parameters(PJ_CONTEXT *ctx, const PJ *ellipsoid, double *out_semi_major_metre, double *out_semi_minor_metre, int *out_is_semi_minor_computed, double *out_inv_flattening) { SANITIZE_CTX(ctx); assert(ellipsoid); - auto l_ellipsoid = dynamic_cast(ellipsoid->obj.get()); + auto l_ellipsoid = dynamic_cast(ellipsoid->iso_obj.get()); if (!l_ellipsoid) { proj_log_error(ctx, __FUNCTION__, "Object is not a Ellipsoid"); return FALSE; @@ -1694,28 +1693,28 @@ int proj_obj_ellipsoid_get_parameters(PJ_CONTEXT *ctx, const PJ_OBJ *ellipsoid, /** \brief Get the prime meridian of a CRS or a GeodeticReferenceFrame. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * * @param ctx PROJ context, or NULL for default context * @param obj Objet of type CRS or GeodeticReferenceFrame (must not be NULL) - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL + * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error. */ -PJ_OBJ *proj_obj_get_prime_meridian(PJ_CONTEXT *ctx, const PJ_OBJ *obj) { +PJ *proj_obj_get_prime_meridian(PJ_CONTEXT *ctx, const PJ *obj) { SANITIZE_CTX(ctx); - auto ptr = obj->obj.get(); + auto ptr = obj->iso_obj.get(); if (dynamic_cast(ptr)) { auto geodCRS = extractGeodeticCRS(ctx, obj, __FUNCTION__); if (geodCRS) { - return PJ_OBJ::create(geodCRS->primeMeridian()); + return pj_obj_create(geodCRS->primeMeridian()); } } else { auto datum = dynamic_cast(ptr); if (datum) { - return PJ_OBJ::create(datum->primeMeridian()); + return pj_obj_create(datum->primeMeridian()); } } proj_log_error(ctx, __FUNCTION__, @@ -1738,13 +1737,13 @@ PJ_OBJ *proj_obj_get_prime_meridian(PJ_CONTEXT *ctx, const PJ_OBJ *obj) { * @return TRUE in case of success. */ int proj_obj_prime_meridian_get_parameters(PJ_CONTEXT *ctx, - const PJ_OBJ *prime_meridian, + const PJ *prime_meridian, double *out_longitude, double *out_unit_conv_factor, const char **out_unit_name) { SANITIZE_CTX(ctx); assert(prime_meridian); - auto l_pm = dynamic_cast(prime_meridian->obj.get()); + auto l_pm = dynamic_cast(prime_meridian->iso_obj.get()); if (!l_pm) { proj_log_error(ctx, __FUNCTION__, "Object is not a PrimeMeridian"); return false; @@ -1768,32 +1767,32 @@ int proj_obj_prime_meridian_get_parameters(PJ_CONTEXT *ctx, /** \brief Return the base CRS of a BoundCRS or a DerivedCRS/ProjectedCRS, or * the source CRS of a CoordinateOperation. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * * @param ctx PROJ context, or NULL for default context * @param obj Objet of type BoundCRS or CoordinateOperation (must not be NULL) - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL + * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error, or missing source CRS. */ -PJ_OBJ *proj_obj_get_source_crs(PJ_CONTEXT *ctx, const PJ_OBJ *obj) { +PJ *proj_obj_get_source_crs(PJ_CONTEXT *ctx, const PJ *obj) { SANITIZE_CTX(ctx); assert(obj); - auto ptr = obj->obj.get(); + auto ptr = obj->iso_obj.get(); auto boundCRS = dynamic_cast(ptr); if (boundCRS) { - return PJ_OBJ::create(boundCRS->baseCRS()); + return pj_obj_create(boundCRS->baseCRS()); } auto derivedCRS = dynamic_cast(ptr); if (derivedCRS) { - return PJ_OBJ::create(derivedCRS->baseCRS()); + return pj_obj_create(derivedCRS->baseCRS()); } auto co = dynamic_cast(ptr); if (co) { auto sourceCRS = co->sourceCRS(); if (sourceCRS) { - return PJ_OBJ::create(NN_NO_CHECK(sourceCRS)); + return pj_obj_create(NN_NO_CHECK(sourceCRS)); } return nullptr; } @@ -1807,28 +1806,28 @@ PJ_OBJ *proj_obj_get_source_crs(PJ_CONTEXT *ctx, const PJ_OBJ *obj) { /** \brief Return the hub CRS of a BoundCRS or the target CRS of a * CoordinateOperation. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * * @param ctx PROJ context, or NULL for default context * @param obj Objet of type BoundCRS or CoordinateOperation (must not be NULL) - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL + * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error, or missing target CRS. */ -PJ_OBJ *proj_obj_get_target_crs(PJ_CONTEXT *ctx, const PJ_OBJ *obj) { +PJ *proj_obj_get_target_crs(PJ_CONTEXT *ctx, const PJ *obj) { SANITIZE_CTX(ctx); assert(obj); - auto ptr = obj->obj.get(); + auto ptr = obj->iso_obj.get(); auto boundCRS = dynamic_cast(ptr); if (boundCRS) { - return PJ_OBJ::create(boundCRS->hubCRS()); + return pj_obj_create(boundCRS->hubCRS()); } auto co = dynamic_cast(ptr); if (co) { auto targetCRS = co->targetCRS(); if (targetCRS) { - return PJ_OBJ::create(NN_NO_CHECK(targetCRS)); + return pj_obj_create(NN_NO_CHECK(targetCRS)); } return nullptr; } @@ -1872,7 +1871,7 @@ PJ_OBJ *proj_obj_get_target_crs(PJ_CONTEXT *ctx, const PJ_OBJ *obj) { * released with proj_int_list_destroy(). * @return a list of matching reference CRS, or nullptr in case of error. */ -PJ_OBJ_LIST *proj_obj_identify(PJ_CONTEXT *ctx, const PJ_OBJ *obj, +PJ_OBJ_LIST *proj_obj_identify(PJ_CONTEXT *ctx, const PJ *obj, const char *auth_name, const char *const *options, int **out_confidence) { @@ -1882,7 +1881,7 @@ PJ_OBJ_LIST *proj_obj_identify(PJ_CONTEXT *ctx, const PJ_OBJ *obj, if (out_confidence) { *out_confidence = nullptr; } - auto ptr = obj->obj.get(); + auto ptr = obj->iso_obj.get(); auto crs = dynamic_cast(ptr); if (!crs) { proj_log_error(ctx, __FUNCTION__, "Object is not a CRS"); @@ -1997,25 +1996,25 @@ void proj_string_list_destroy(PROJ_STRING_LIST list) { /** \brief Return the Conversion of a DerivedCRS (such as a ProjectedCRS), * or the Transformation from the baseCRS to the hubCRS of a BoundCRS * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * * @param ctx PROJ context, or NULL for default context * @param crs Objet of type DerivedCRS or BoundCRSs (must not be NULL) * @return Object of type SingleOperation that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_crs_get_coordoperation(PJ_CONTEXT *ctx, const PJ_OBJ *crs) { +PJ *proj_obj_crs_get_coordoperation(PJ_CONTEXT *ctx, const PJ *crs) { SANITIZE_CTX(ctx); assert(crs); SingleOperationPtr co; - auto derivedCRS = dynamic_cast(crs->obj.get()); + auto derivedCRS = dynamic_cast(crs->iso_obj.get()); if (derivedCRS) { co = derivedCRS->derivingConversion().as_nullable(); } else { - auto boundCRS = dynamic_cast(crs->obj.get()); + auto boundCRS = dynamic_cast(crs->iso_obj.get()); if (boundCRS) { co = boundCRS->transformation().as_nullable(); } else { @@ -2025,7 +2024,7 @@ PJ_OBJ *proj_obj_crs_get_coordoperation(PJ_CONTEXT *ctx, const PJ_OBJ *crs) { } } - return PJ_OBJ::create(NN_NO_CHECK(co)); + return pj_obj_create(NN_NO_CHECK(co)); } // --------------------------------------------------------------------------- @@ -2044,7 +2043,7 @@ PJ_OBJ *proj_obj_crs_get_coordoperation(PJ_CONTEXT *ctx, const PJ_OBJ *crs) { * @return TRUE in case of success. */ int proj_coordoperation_get_method_info(PJ_CONTEXT *ctx, - const PJ_OBJ *coordoperation, + const PJ *coordoperation, const char **out_method_name, const char **out_method_auth_name, const char **out_method_code) { @@ -2052,7 +2051,7 @@ int proj_coordoperation_get_method_info(PJ_CONTEXT *ctx, assert(coordoperation); auto singleOp = - dynamic_cast(coordoperation->obj.get()); + dynamic_cast(coordoperation->iso_obj.get()); if (!singleOp) { proj_log_error(ctx, __FUNCTION__, "Object is not a DerivedCRS or BoundCRS"); @@ -2197,7 +2196,7 @@ static GeodeticReferenceFrameNNPtr createGeodeticReferenceFrame( /** \brief Create a GeographicCRS. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -2218,17 +2217,17 @@ static GeodeticReferenceFrameNNPtr createGeodeticReferenceFrame( * @param ellipsoidal_cs Coordinate system. Must not be NULL. * * @return Object of type GeographicCRS that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_create_geographic_crs( +PJ *proj_obj_create_geographic_crs( PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, const char *ellps_name, double semi_major_metre, double inv_flattening, const char *prime_meridian_name, double prime_meridian_offset, const char *pm_angular_units, double pm_angular_units_conv, - PJ_OBJ *ellipsoidal_cs) { + PJ *ellipsoidal_cs) { SANITIZE_CTX(ctx); - auto cs = util::nn_dynamic_pointer_cast(ellipsoidal_cs->obj); + auto cs = std::dynamic_pointer_cast(ellipsoidal_cs->iso_obj); if (!cs) { return nullptr; } @@ -2239,7 +2238,7 @@ PJ_OBJ *proj_obj_create_geographic_crs( pm_angular_units_conv); auto geogCRS = GeographicCRS::create(createPropertyMapName(crs_name), datum, NN_NO_CHECK(cs)); - return PJ_OBJ::create(geogCRS); + return pj_obj_create(geogCRS); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2250,7 +2249,7 @@ PJ_OBJ *proj_obj_create_geographic_crs( /** \brief Create a GeographicCRS. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -2260,22 +2259,22 @@ PJ_OBJ *proj_obj_create_geographic_crs( * @param ellipsoidal_cs Coordinate system. Must not be NULL. * * @return Object of type GeographicCRS that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_create_geographic_crs_from_datum(PJ_CONTEXT *ctx, +PJ *proj_obj_create_geographic_crs_from_datum(PJ_CONTEXT *ctx, const char *crs_name, - PJ_OBJ *datum, - PJ_OBJ *ellipsoidal_cs) { + PJ *datum, + PJ *ellipsoidal_cs) { SANITIZE_CTX(ctx); auto l_datum = - util::nn_dynamic_pointer_cast(datum->obj); + std::dynamic_pointer_cast(datum->iso_obj); if (!l_datum) { proj_log_error(ctx, __FUNCTION__, "datum is not a GeodeticReferenceFrame"); return nullptr; } - auto cs = util::nn_dynamic_pointer_cast(ellipsoidal_cs->obj); + auto cs = std::dynamic_pointer_cast(ellipsoidal_cs->iso_obj); if (!cs) { return nullptr; } @@ -2283,7 +2282,7 @@ PJ_OBJ *proj_obj_create_geographic_crs_from_datum(PJ_CONTEXT *ctx, auto geogCRS = GeographicCRS::create(createPropertyMapName(crs_name), NN_NO_CHECK(l_datum), NN_NO_CHECK(cs)); - return PJ_OBJ::create(geogCRS); + return pj_obj_create(geogCRS); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2294,7 +2293,7 @@ PJ_OBJ *proj_obj_create_geographic_crs_from_datum(PJ_CONTEXT *ctx, /** \brief Create a GeodeticCRS of geocentric type. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -2316,9 +2315,9 @@ PJ_OBJ *proj_obj_create_geographic_crs_from_datum(PJ_CONTEXT *ctx, * 0 for Metre if linear_units == NULL. Otherwise should be not NULL * * @return Object of type GeodeticCRS that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_create_geocentric_crs( +PJ *proj_obj_create_geocentric_crs( PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, const char *ellps_name, double semi_major_metre, double inv_flattening, const char *prime_meridian_name, double prime_meridian_offset, @@ -2337,7 +2336,7 @@ PJ_OBJ *proj_obj_create_geocentric_crs( auto geodCRS = GeodeticCRS::create(createPropertyMapName(crs_name), datum, cs::CartesianCS::createGeocentric(linearUnit)); - return PJ_OBJ::create(geodCRS); + return pj_obj_create(geodCRS); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2348,7 +2347,7 @@ PJ_OBJ *proj_obj_create_geocentric_crs( /** \brief Create a GeodeticCRS of geocentric type. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -2360,11 +2359,11 @@ PJ_OBJ *proj_obj_create_geocentric_crs( * 0 for Metre if linear_units == NULL. Otherwise should be not NULL * * @return Object of type GeodeticCRS that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_create_geocentric_crs_from_datum(PJ_CONTEXT *ctx, +PJ *proj_obj_create_geocentric_crs_from_datum(PJ_CONTEXT *ctx, const char *crs_name, - const PJ_OBJ *datum, + const PJ *datum, const char *linear_units, double linear_units_conv) { SANITIZE_CTX(ctx); @@ -2372,7 +2371,7 @@ PJ_OBJ *proj_obj_create_geocentric_crs_from_datum(PJ_CONTEXT *ctx, const UnitOfMeasure linearUnit( createLinearUnit(linear_units, linear_units_conv)); auto l_datum = - util::nn_dynamic_pointer_cast(datum->obj); + std::dynamic_pointer_cast(datum->iso_obj); if (!l_datum) { proj_log_error(ctx, __FUNCTION__, "datum is not a GeodeticReferenceFrame"); @@ -2381,7 +2380,7 @@ PJ_OBJ *proj_obj_create_geocentric_crs_from_datum(PJ_CONTEXT *ctx, auto geodCRS = GeodeticCRS::create( createPropertyMapName(crs_name), NN_NO_CHECK(l_datum), cs::CartesianCS::createGeocentric(linearUnit)); - return PJ_OBJ::create(geodCRS); + return pj_obj_create(geodCRS); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2392,7 +2391,7 @@ PJ_OBJ *proj_obj_create_geocentric_crs_from_datum(PJ_CONTEXT *ctx, /** \brief Create a VerticalCRS * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -2404,9 +2403,9 @@ PJ_OBJ *proj_obj_create_geocentric_crs_from_datum(PJ_CONTEXT *ctx, * 0 for Metre if linear_units == NULL. Otherwise should be not NULL * * @return Object of type VerticalCRS that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_create_vertical_crs(PJ_CONTEXT *ctx, const char *crs_name, +PJ *proj_obj_create_vertical_crs(PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, const char *linear_units, double linear_units_conv) { @@ -2420,7 +2419,7 @@ PJ_OBJ *proj_obj_create_vertical_crs(PJ_CONTEXT *ctx, const char *crs_name, auto vertCRS = VerticalCRS::create( createPropertyMapName(crs_name), datum, cs::VerticalCS::createGravityRelatedHeight(linearUnit)); - return PJ_OBJ::create(vertCRS); + return pj_obj_create(vertCRS); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2431,7 +2430,7 @@ PJ_OBJ *proj_obj_create_vertical_crs(PJ_CONTEXT *ctx, const char *crs_name, /** \brief Create a CompoundCRS * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -2441,19 +2440,19 @@ PJ_OBJ *proj_obj_create_vertical_crs(PJ_CONTEXT *ctx, const char *crs_name, * @param vert_crs Vertical CRS. must not be NULL. * * @return Object of type CompoundCRS that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name, - PJ_OBJ *horiz_crs, PJ_OBJ *vert_crs) { +PJ *proj_obj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name, + PJ *horiz_crs, PJ *vert_crs) { assert(horiz_crs); assert(vert_crs); SANITIZE_CTX(ctx); - auto l_horiz_crs = util::nn_dynamic_pointer_cast(horiz_crs->obj); + auto l_horiz_crs = std::dynamic_pointer_cast(horiz_crs->iso_obj); if (!l_horiz_crs) { return nullptr; } - auto l_vert_crs = util::nn_dynamic_pointer_cast(vert_crs->obj); + auto l_vert_crs = std::dynamic_pointer_cast(vert_crs->iso_obj); if (!l_vert_crs) { return nullptr; } @@ -2461,7 +2460,7 @@ PJ_OBJ *proj_obj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name, auto compoundCRS = CompoundCRS::create( createPropertyMapName(crs_name), {NN_NO_CHECK(l_horiz_crs), NN_NO_CHECK(l_vert_crs)}); - return PJ_OBJ::create(compoundCRS); + return pj_obj_create(compoundCRS); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2474,7 +2473,7 @@ PJ_OBJ *proj_obj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name, * * Currently, only implemented on CRS objects. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -2483,17 +2482,17 @@ PJ_OBJ *proj_obj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name, * @param name New name. Must not be NULL * * @return Object that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ PROJ_DLL *proj_obj_alter_name(PJ_CONTEXT *ctx, const PJ_OBJ *obj, +PJ PROJ_DLL *proj_obj_alter_name(PJ_CONTEXT *ctx, const PJ *obj, const char *name) { SANITIZE_CTX(ctx); - auto crs = dynamic_cast(obj->obj.get()); + auto crs = dynamic_cast(obj->iso_obj.get()); if (!crs) { return nullptr; } try { - return PJ_OBJ::create(crs->alterName(name)); + return pj_obj_create(crs->alterName(name)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2506,7 +2505,7 @@ PJ_OBJ PROJ_DLL *proj_obj_alter_name(PJ_CONTEXT *ctx, const PJ_OBJ *obj, * * Currently, only implemented on CRS objects. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -2516,17 +2515,17 @@ PJ_OBJ PROJ_DLL *proj_obj_alter_name(PJ_CONTEXT *ctx, const PJ_OBJ *obj, * @param code Code. Must not be NULL * * @return Object that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ PROJ_DLL *proj_obj_alter_id(PJ_CONTEXT *ctx, const PJ_OBJ *obj, +PJ PROJ_DLL *proj_obj_alter_id(PJ_CONTEXT *ctx, const PJ *obj, const char *auth_name, const char *code) { SANITIZE_CTX(ctx); - auto crs = dynamic_cast(obj->obj.get()); + auto crs = dynamic_cast(obj->iso_obj.get()); if (!crs) { return nullptr; } try { - return PJ_OBJ::create(crs->alterId(auth_name, code)); + return pj_obj_create(crs->alterId(auth_name, code)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2543,7 +2542,7 @@ PJ_OBJ PROJ_DLL *proj_obj_alter_id(PJ_CONTEXT *ctx, const PJ_OBJ *obj, * CRS with new_geod_crs. * In other cases, it returns a clone of obj. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -2552,26 +2551,26 @@ PJ_OBJ PROJ_DLL *proj_obj_alter_id(PJ_CONTEXT *ctx, const PJ_OBJ *obj, * @param new_geod_crs Object of type GeodeticCRS. Must not be NULL * * @return Object that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, const PJ_OBJ *obj, - const PJ_OBJ *new_geod_crs) { +PJ *proj_obj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, const PJ *obj, + const PJ *new_geod_crs) { SANITIZE_CTX(ctx); auto l_new_geod_crs = - util::nn_dynamic_pointer_cast(new_geod_crs->obj); + std::dynamic_pointer_cast(new_geod_crs->iso_obj); if (!l_new_geod_crs) { proj_log_error(ctx, __FUNCTION__, "new_geod_crs is not a GeodeticCRS"); return nullptr; } - auto crs = dynamic_cast(obj->obj.get()); + auto crs = dynamic_cast(obj->iso_obj.get()); if (!crs) { proj_log_error(ctx, __FUNCTION__, "obj is not a CRS"); return nullptr; } try { - return PJ_OBJ::create( + return pj_obj_create( crs->alterGeodeticCRS(NN_NO_CHECK(l_new_geod_crs))); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -2585,7 +2584,7 @@ PJ_OBJ *proj_obj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, const PJ_OBJ *obj, * * The CRS must be or contain a GeographicCRS. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -2598,9 +2597,9 @@ PJ_OBJ *proj_obj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, const PJ_OBJ *obj, * @param unit_code Unit code. Or NULL. * * @return Object that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, const PJ_OBJ *obj, +PJ *proj_obj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, const PJ *obj, const char *angular_units, double angular_units_conv, const char *unit_auth_name, @@ -2611,29 +2610,29 @@ PJ_OBJ *proj_obj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, const PJ_OBJ *obj, if (!geodCRS) { return nullptr; } - auto geogCRS = dynamic_cast(geodCRS->obj.get()); + auto geogCRS = dynamic_cast(geodCRS->iso_obj.get()); if (!geogCRS) { - proj_obj_destroy(geodCRS); + proj_destroy(geodCRS); return nullptr; } - PJ_OBJ *geogCRSAltered = nullptr; + PJ *geogCRSAltered = nullptr; try { const UnitOfMeasure angUnit(createAngularUnit( angular_units, angular_units_conv, unit_auth_name, unit_code)); - geogCRSAltered = PJ_OBJ::create(GeographicCRS::create( + geogCRSAltered = pj_obj_create(GeographicCRS::create( createPropertyMapName(proj_obj_get_name(geodCRS)), geogCRS->datum(), geogCRS->datumEnsemble(), geogCRS->coordinateSystem()->alterAngularUnit(angUnit))); - proj_obj_destroy(geodCRS); + proj_destroy(geodCRS); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); - proj_obj_destroy(geodCRS); + proj_destroy(geodCRS); return nullptr; } auto ret = proj_obj_crs_alter_geodetic_crs(ctx, obj, geogCRSAltered); - proj_obj_destroy(geogCRSAltered); + proj_destroy(geogCRSAltered); return ret; } @@ -2644,7 +2643,7 @@ PJ_OBJ *proj_obj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, const PJ_OBJ *obj, * * The CRS must be or contain a ProjectedCRS, VerticalCRS or a GeocentricCRS. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -2657,15 +2656,15 @@ PJ_OBJ *proj_obj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, const PJ_OBJ *obj, * @param unit_code Unit code. Or NULL. * * @return Object that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, const PJ_OBJ *obj, +PJ *proj_obj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, const PJ *obj, const char *linear_units, double linear_units_conv, const char *unit_auth_name, const char *unit_code) { SANITIZE_CTX(ctx); - auto crs = dynamic_cast(obj->obj.get()); + auto crs = dynamic_cast(obj->iso_obj.get()); if (!crs) { return nullptr; } @@ -2673,7 +2672,7 @@ PJ_OBJ *proj_obj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, const PJ_OBJ *obj, try { const UnitOfMeasure linearUnit(createLinearUnit( linear_units, linear_units_conv, unit_auth_name, unit_code)); - return PJ_OBJ::create(crs->alterCSLinearUnit(linearUnit)); + return pj_obj_create(crs->alterCSLinearUnit(linearUnit)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); return nullptr; @@ -2687,7 +2686,7 @@ PJ_OBJ *proj_obj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, const PJ_OBJ *obj, * * The CRS must be or contain a ProjectedCRS, VerticalCRS or a GeocentricCRS. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -2704,14 +2703,14 @@ PJ_OBJ *proj_obj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, const PJ_OBJ *obj, * equivalent to the original one for reprojection purposes). * * @return Object that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_crs_alter_parameters_linear_unit( - PJ_CONTEXT *ctx, const PJ_OBJ *obj, const char *linear_units, +PJ *proj_obj_crs_alter_parameters_linear_unit( + PJ_CONTEXT *ctx, const PJ *obj, const char *linear_units, double linear_units_conv, const char *unit_auth_name, const char *unit_code, int convert_to_new_unit) { SANITIZE_CTX(ctx); - auto crs = dynamic_cast(obj->obj.get()); + auto crs = dynamic_cast(obj->iso_obj.get()); if (!crs) { return nullptr; } @@ -2719,7 +2718,7 @@ PJ_OBJ *proj_obj_crs_alter_parameters_linear_unit( try { const UnitOfMeasure linearUnit(createLinearUnit( linear_units, linear_units_conv, unit_auth_name, unit_code)); - return PJ_OBJ::create(crs->alterParametersLinearUnit( + return pj_obj_create(crs->alterParametersLinearUnit( linearUnit, convert_to_new_unit == TRUE)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -2731,7 +2730,7 @@ PJ_OBJ *proj_obj_crs_alter_parameters_linear_unit( /** \brief Instanciate a EngineeringCRS with just a name * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -2739,13 +2738,13 @@ PJ_OBJ *proj_obj_crs_alter_parameters_linear_unit( * @param crs_name CRS name. Or NULL. * * @return Object that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ PROJ_DLL *proj_obj_create_engineering_crs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_obj_create_engineering_crs(PJ_CONTEXT *ctx, const char *crs_name) { SANITIZE_CTX(ctx); try { - return PJ_OBJ::create(EngineeringCRS::create( + return pj_obj_create(EngineeringCRS::create( createPropertyMapName(crs_name), EngineeringDatum::create(PropertyMap()), CartesianCS::createEastingNorthing(UnitOfMeasure::METRE))); @@ -2830,7 +2829,7 @@ static void setSingleOperationElements( /** \brief Instanciate a Conversion * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -2845,10 +2844,10 @@ static void setSingleOperationElements( * @param params Parameter descriptions (array of size param_count) * * @return Object that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_create_conversion(PJ_CONTEXT *ctx, const char *name, +PJ *proj_obj_create_conversion(PJ_CONTEXT *ctx, const char *name, const char *auth_name, const char *code, const char *method_name, const char *method_auth_name, @@ -2865,7 +2864,7 @@ PJ_OBJ *proj_obj_create_conversion(PJ_CONTEXT *ctx, const char *name, name, auth_name, code, method_name, method_auth_name, method_code, param_count, params, propSingleOp, propMethod, parameters, values); - return PJ_OBJ::create( + return pj_obj_create( Conversion::create(propSingleOp, propMethod, parameters, values)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -2877,7 +2876,7 @@ PJ_OBJ *proj_obj_create_conversion(PJ_CONTEXT *ctx, const char *name, /** \brief Instanciate a Transformation * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -2900,12 +2899,12 @@ PJ_OBJ *proj_obj_create_conversion(PJ_CONTEXT *ctx, const char *name, * values means unknown. * * @return Object that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_create_transformation( +PJ *proj_obj_create_transformation( PJ_CONTEXT *ctx, const char *name, const char *auth_name, const char *code, - PJ_OBJ *source_crs, PJ_OBJ *target_crs, PJ_OBJ *interpolation_crs, + PJ *source_crs, PJ *target_crs, PJ *interpolation_crs, const char *method_name, const char *method_auth_name, const char *method_code, int param_count, const PJ_PARAM_DESCRIPTION *params, double accuracy) { @@ -2913,13 +2912,13 @@ PJ_OBJ *proj_obj_create_transformation( assert(source_crs); assert(target_crs); - auto l_sourceCRS = util::nn_dynamic_pointer_cast(source_crs->obj); + auto l_sourceCRS = std::dynamic_pointer_cast(source_crs->iso_obj); if (!l_sourceCRS) { proj_log_error(ctx, __FUNCTION__, "source_crs is not a CRS"); return nullptr; } - auto l_targetCRS = util::nn_dynamic_pointer_cast(target_crs->obj); + auto l_targetCRS = std::dynamic_pointer_cast(target_crs->iso_obj); if (!l_targetCRS) { proj_log_error(ctx, __FUNCTION__, "target_crs is not a CRS"); return nullptr; @@ -2928,7 +2927,7 @@ PJ_OBJ *proj_obj_create_transformation( CRSPtr l_interpolationCRS; if (interpolation_crs) { l_interpolationCRS = - util::nn_dynamic_pointer_cast(interpolation_crs->obj); + std::dynamic_pointer_cast(interpolation_crs->iso_obj); if (!l_interpolationCRS) { proj_log_error(ctx, __FUNCTION__, "interpolation_crs is not a CRS"); return nullptr; @@ -2951,7 +2950,7 @@ PJ_OBJ *proj_obj_create_transformation( PositionalAccuracy::create(toString(accuracy))); } - return PJ_OBJ::create(Transformation::create( + return pj_obj_create(Transformation::create( propSingleOp, NN_NO_CHECK(l_sourceCRS), NN_NO_CHECK(l_targetCRS), l_interpolationCRS, propMethod, parameters, values, accuracies)); } catch (const std::exception &e) { @@ -2984,13 +2983,13 @@ PJ_OBJ *proj_obj_create_transformation( * @param new_method_name EPSG or PROJ target method name. Or nullptr (in which * case new_method_epsg_code must be specified). * @return new conversion that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_convert_conversion_to_other_method( - PJ_CONTEXT *ctx, const PJ_OBJ *conversion, int new_method_epsg_code, +PJ *proj_obj_convert_conversion_to_other_method( + PJ_CONTEXT *ctx, const PJ *conversion, int new_method_epsg_code, const char *new_method_name) { SANITIZE_CTX(ctx); - auto conv = dynamic_cast(conversion->obj.get()); + auto conv = dynamic_cast(conversion->iso_obj.get()); if (!conv) { proj_log_error(ctx, __FUNCTION__, "not a Conversion"); return nullptr; @@ -3019,7 +3018,7 @@ PJ_OBJ *proj_obj_convert_conversion_to_other_method( auto new_conv = conv->convertToOtherMethod(new_method_epsg_code); if (!new_conv) return nullptr; - return PJ_OBJ::create(NN_NO_CHECK(new_conv)); + return pj_obj_create(NN_NO_CHECK(new_conv)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); return nullptr; @@ -3072,7 +3071,7 @@ static CoordinateSystemAxisNNPtr createAxis(const PJ_AXIS_DESCRIPTION &axis) { /** \brief Instanciate a CoordinateSystem. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -3082,10 +3081,10 @@ static CoordinateSystemAxisNNPtr createAxis(const PJ_AXIS_DESCRIPTION &axis) { * @param axis Axis description (array of size axis_count) * * @return Object that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, +PJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, int axis_count, const PJ_AXIS_DESCRIPTION *axis) { try { switch (type) { @@ -3094,10 +3093,10 @@ PJ_OBJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_CARTESIAN: { if (axis_count == 2) { - return PJ_OBJ::create(CartesianCS::create( + return pj_obj_create(CartesianCS::create( PropertyMap(), createAxis(axis[0]), createAxis(axis[1]))); } else if (axis_count == 3) { - return PJ_OBJ::create(CartesianCS::create( + return pj_obj_create(CartesianCS::create( PropertyMap(), createAxis(axis[0]), createAxis(axis[1]), createAxis(axis[2]))); } @@ -3106,10 +3105,10 @@ PJ_OBJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_ELLIPSOIDAL: { if (axis_count == 2) { - return PJ_OBJ::create(EllipsoidalCS::create( + return pj_obj_create(EllipsoidalCS::create( PropertyMap(), createAxis(axis[0]), createAxis(axis[1]))); } else if (axis_count == 3) { - return PJ_OBJ::create(EllipsoidalCS::create( + return pj_obj_create(EllipsoidalCS::create( PropertyMap(), createAxis(axis[0]), createAxis(axis[1]), createAxis(axis[2]))); } @@ -3118,7 +3117,7 @@ PJ_OBJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_VERTICAL: { if (axis_count == 1) { - return PJ_OBJ::create( + return pj_obj_create( VerticalCS::create(PropertyMap(), createAxis(axis[0]))); } break; @@ -3126,7 +3125,7 @@ PJ_OBJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_SPHERICAL: { if (axis_count == 3) { - return PJ_OBJ::create(EllipsoidalCS::create( + return pj_obj_create(EllipsoidalCS::create( PropertyMap(), createAxis(axis[0]), createAxis(axis[1]), createAxis(axis[2]))); } @@ -3135,7 +3134,7 @@ PJ_OBJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_PARAMETRIC: { if (axis_count == 1) { - return PJ_OBJ::create( + return pj_obj_create( ParametricCS::create(PropertyMap(), createAxis(axis[0]))); } break; @@ -3147,12 +3146,12 @@ PJ_OBJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, axisVector.emplace_back(createAxis(axis[i])); } - return PJ_OBJ::create(OrdinalCS::create(PropertyMap(), axisVector)); + return pj_obj_create(OrdinalCS::create(PropertyMap(), axisVector)); } case PJ_CS_TYPE_DATETIMETEMPORAL: { if (axis_count == 1) { - return PJ_OBJ::create(DateTimeTemporalCS::create( + return pj_obj_create(DateTimeTemporalCS::create( PropertyMap(), createAxis(axis[0]))); } break; @@ -3160,7 +3159,7 @@ PJ_OBJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_TEMPORALCOUNT: { if (axis_count == 1) { - return PJ_OBJ::create(TemporalCountCS::create( + return pj_obj_create(TemporalCountCS::create( PropertyMap(), createAxis(axis[0]))); } break; @@ -3168,7 +3167,7 @@ PJ_OBJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_TEMPORALMEASURE: { if (axis_count == 1) { - return PJ_OBJ::create(TemporalMeasureCS::create( + return pj_obj_create(TemporalMeasureCS::create( PropertyMap(), createAxis(axis[0]))); } break; @@ -3187,7 +3186,7 @@ PJ_OBJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, /** \brief Instanciate a CartesiansCS 2D * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -3197,35 +3196,35 @@ PJ_OBJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, * @param unit_conv_factor Unit conversion factor to SI. * * @return Object that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, +PJ *proj_obj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, PJ_CARTESIAN_CS_2D_TYPE type, const char *unit_name, double unit_conv_factor) { try { switch (type) { case PJ_CART2D_EASTING_NORTHING: - return PJ_OBJ::create(CartesianCS::createEastingNorthing( + return pj_obj_create(CartesianCS::createEastingNorthing( createLinearUnit(unit_name, unit_conv_factor))); case PJ_CART2D_NORTHING_EASTING: - return PJ_OBJ::create(CartesianCS::createNorthingEasting( + return pj_obj_create(CartesianCS::createNorthingEasting( createLinearUnit(unit_name, unit_conv_factor))); case PJ_CART2D_NORTH_POLE_EASTING_SOUTH_NORTHING_SOUTH: - return PJ_OBJ::create( + return pj_obj_create( CartesianCS::createNorthPoleEastingSouthNorthingSouth( createLinearUnit(unit_name, unit_conv_factor))); case PJ_CART2D_SOUTH_POLE_EASTING_NORTH_NORTHING_NORTH: - return PJ_OBJ::create( + return pj_obj_create( CartesianCS::createSouthPoleEastingNorthNorthingNorth( createLinearUnit(unit_name, unit_conv_factor))); case PJ_CART2D_WESTING_SOUTHING: - return PJ_OBJ::create(CartesianCS::createWestingSouthing( + return pj_obj_create(CartesianCS::createWestingSouthing( createLinearUnit(unit_name, unit_conv_factor))); } } catch (const std::exception &e) { @@ -3238,7 +3237,7 @@ PJ_OBJ *proj_obj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, /** \brief Instanciate a Ellipsoidal 2D * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -3248,21 +3247,21 @@ PJ_OBJ *proj_obj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, * @param unit_conv_factor Unit conversion factor to SI. * * @return Object that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, +PJ *proj_obj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, PJ_ELLIPSOIDAL_CS_2D_TYPE type, const char *unit_name, double unit_conv_factor) { try { switch (type) { case PJ_ELLPS2D_LONGITUDE_LATITUDE: - return PJ_OBJ::create(EllipsoidalCS::createLongitudeLatitude( + return pj_obj_create(EllipsoidalCS::createLongitudeLatitude( createAngularUnit(unit_name, unit_conv_factor))); case PJ_ELLPS2D_LATITUDE_LONGITUDE: - return PJ_OBJ::create(EllipsoidalCS::createLatitudeLongitude( + return pj_obj_create(EllipsoidalCS::createLatitudeLongitude( createAngularUnit(unit_name, unit_conv_factor))); } } catch (const std::exception &e) { @@ -3275,7 +3274,7 @@ PJ_OBJ *proj_obj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, /** \brief Instanciate a ProjectedCRS * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * @@ -3286,30 +3285,30 @@ PJ_OBJ *proj_obj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, * @param coordinate_system Cartesian coordinate system. Must not be NULL. * * @return Object that must be unreferenced with - * proj_obj_destroy(), or NULL in case of error. + * proj_destroy(), or NULL in case of error. */ -PJ_OBJ *proj_obj_create_projected_crs(PJ_CONTEXT *ctx, const char *crs_name, - const PJ_OBJ *geodetic_crs, - const PJ_OBJ *conversion, - const PJ_OBJ *coordinate_system) { +PJ *proj_obj_create_projected_crs(PJ_CONTEXT *ctx, const char *crs_name, + const PJ *geodetic_crs, + const PJ *conversion, + const PJ *coordinate_system) { SANITIZE_CTX(ctx); auto geodCRS = - util::nn_dynamic_pointer_cast(geodetic_crs->obj); + std::dynamic_pointer_cast(geodetic_crs->iso_obj); if (!geodCRS) { return nullptr; } - auto conv = util::nn_dynamic_pointer_cast(conversion->obj); + auto conv = std::dynamic_pointer_cast(conversion->iso_obj); if (!conv) { return nullptr; } auto cs = - util::nn_dynamic_pointer_cast(coordinate_system->obj); + std::dynamic_pointer_cast(coordinate_system->iso_obj); if (!cs) { return nullptr; } try { - return PJ_OBJ::create(ProjectedCRS::create( + return pj_obj_create(ProjectedCRS::create( createPropertyMapName(crs_name), NN_NO_CHECK(geodCRS), NN_NO_CHECK(conv), NN_NO_CHECK(cs))); } catch (const std::exception &e) { @@ -3322,8 +3321,8 @@ PJ_OBJ *proj_obj_create_projected_crs(PJ_CONTEXT *ctx, const char *crs_name, //! @cond Doxygen_Suppress -static PJ_OBJ *proj_obj_create_conversion(const ConversionNNPtr &conv) { - return PJ_OBJ::create(conv); +static PJ *proj_obj_create_conversion(const ConversionNNPtr &conv) { + return pj_obj_create(conv); } //! @endcond @@ -3340,7 +3339,7 @@ static PJ_OBJ *proj_obj_create_conversion(const ConversionNNPtr &conv) { * Linear parameters are expressed in (linear_unit_name, * linear_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_utm(PJ_CONTEXT *ctx, int zone, int north) { +PJ *proj_obj_create_conversion_utm(PJ_CONTEXT *ctx, int zone, int north) { SANITIZE_CTX(ctx); try { auto conv = Conversion::createUTM(PropertyMap(), zone, north != 0); @@ -3361,7 +3360,7 @@ PJ_OBJ *proj_obj_create_conversion_utm(PJ_CONTEXT *ctx, int zone, int north) { * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_transverse_mercator( +PJ *proj_obj_create_conversion_transverse_mercator( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3395,7 +3394,7 @@ PJ_OBJ *proj_obj_create_conversion_transverse_mercator( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_gauss_schreiber_transverse_mercator( +PJ *proj_obj_create_conversion_gauss_schreiber_transverse_mercator( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3429,7 +3428,7 @@ PJ_OBJ *proj_obj_create_conversion_gauss_schreiber_transverse_mercator( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_transverse_mercator_south_oriented( +PJ *proj_obj_create_conversion_transverse_mercator_south_oriented( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3462,7 +3461,7 @@ PJ_OBJ *proj_obj_create_conversion_transverse_mercator_south_oriented( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_two_point_equidistant( +PJ *proj_obj_create_conversion_two_point_equidistant( PJ_CONTEXT *ctx, double latitude_first_point, double longitude_first_point, double latitude_second_point, double longitude_secon_point, double false_easting, double false_northing, const char *ang_unit_name, @@ -3498,7 +3497,7 @@ PJ_OBJ *proj_obj_create_conversion_two_point_equidistant( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_tunisia_mapping_grid( +PJ *proj_obj_create_conversion_tunisia_mapping_grid( PJ_CONTEXT *ctx, double center_lat, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3530,7 +3529,7 @@ PJ_OBJ *proj_obj_create_conversion_tunisia_mapping_grid( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_albers_equal_area( +PJ *proj_obj_create_conversion_albers_equal_area( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, double latitude_first_parallel, double latitude_second_parallel, double easting_false_origin, @@ -3567,7 +3566,7 @@ PJ_OBJ *proj_obj_create_conversion_albers_equal_area( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_lambert_conic_conformal_1sp( +PJ *proj_obj_create_conversion_lambert_conic_conformal_1sp( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3600,7 +3599,7 @@ PJ_OBJ *proj_obj_create_conversion_lambert_conic_conformal_1sp( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_lambert_conic_conformal_2sp( +PJ *proj_obj_create_conversion_lambert_conic_conformal_2sp( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, double latitude_first_parallel, double latitude_second_parallel, double easting_false_origin, @@ -3638,7 +3637,7 @@ PJ_OBJ *proj_obj_create_conversion_lambert_conic_conformal_2sp( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_lambert_conic_conformal_2sp_michigan( +PJ *proj_obj_create_conversion_lambert_conic_conformal_2sp_michigan( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, double latitude_first_parallel, double latitude_second_parallel, double easting_false_origin, @@ -3677,7 +3676,7 @@ PJ_OBJ *proj_obj_create_conversion_lambert_conic_conformal_2sp_michigan( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_lambert_conic_conformal_2sp_belgium( +PJ *proj_obj_create_conversion_lambert_conic_conformal_2sp_belgium( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, double latitude_first_parallel, double latitude_second_parallel, double easting_false_origin, @@ -3714,7 +3713,7 @@ PJ_OBJ *proj_obj_create_conversion_lambert_conic_conformal_2sp_belgium( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_azimuthal_equidistant( +PJ *proj_obj_create_conversion_azimuthal_equidistant( PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3747,7 +3746,7 @@ PJ_OBJ *proj_obj_create_conversion_azimuthal_equidistant( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_guam_projection( +PJ *proj_obj_create_conversion_guam_projection( PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3780,7 +3779,7 @@ PJ_OBJ *proj_obj_create_conversion_guam_projection( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_bonne( +PJ *proj_obj_create_conversion_bonne( PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3814,7 +3813,7 @@ PJ_OBJ *proj_obj_create_conversion_bonne( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_lambert_cylindrical_equal_area_spherical( +PJ *proj_obj_create_conversion_lambert_cylindrical_equal_area_spherical( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, @@ -3847,7 +3846,7 @@ PJ_OBJ *proj_obj_create_conversion_lambert_cylindrical_equal_area_spherical( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_lambert_cylindrical_equal_area( +PJ *proj_obj_create_conversion_lambert_cylindrical_equal_area( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, @@ -3880,7 +3879,7 @@ PJ_OBJ *proj_obj_create_conversion_lambert_cylindrical_equal_area( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_cassini_soldner( +PJ *proj_obj_create_conversion_cassini_soldner( PJ_CONTEXT *ctx, double center_lat, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3912,7 +3911,7 @@ PJ_OBJ *proj_obj_create_conversion_cassini_soldner( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_equidistant_conic( +PJ *proj_obj_create_conversion_equidistant_conic( PJ_CONTEXT *ctx, double center_lat, double center_long, double latitude_first_parallel, double latitude_second_parallel, double false_easting, double false_northing, const char *ang_unit_name, @@ -3948,7 +3947,7 @@ PJ_OBJ *proj_obj_create_conversion_equidistant_conic( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_eckert_i(PJ_CONTEXT *ctx, double center_long, +PJ *proj_obj_create_conversion_eckert_i(PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, @@ -3982,7 +3981,7 @@ PJ_OBJ *proj_obj_create_conversion_eckert_i(PJ_CONTEXT *ctx, double center_long, * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_eckert_ii( +PJ *proj_obj_create_conversion_eckert_ii( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4014,7 +4013,7 @@ PJ_OBJ *proj_obj_create_conversion_eckert_ii( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_eckert_iii( +PJ *proj_obj_create_conversion_eckert_iii( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4046,7 +4045,7 @@ PJ_OBJ *proj_obj_create_conversion_eckert_iii( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_eckert_iv( +PJ *proj_obj_create_conversion_eckert_iv( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4078,7 +4077,7 @@ PJ_OBJ *proj_obj_create_conversion_eckert_iv( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_eckert_v(PJ_CONTEXT *ctx, double center_long, +PJ *proj_obj_create_conversion_eckert_v(PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, @@ -4112,7 +4111,7 @@ PJ_OBJ *proj_obj_create_conversion_eckert_v(PJ_CONTEXT *ctx, double center_long, * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_eckert_vi( +PJ *proj_obj_create_conversion_eckert_vi( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4144,7 +4143,7 @@ PJ_OBJ *proj_obj_create_conversion_eckert_vi( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_equidistant_cylindrical( +PJ *proj_obj_create_conversion_equidistant_cylindrical( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, @@ -4178,7 +4177,7 @@ PJ_OBJ *proj_obj_create_conversion_equidistant_cylindrical( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_equidistant_cylindrical_spherical( +PJ *proj_obj_create_conversion_equidistant_cylindrical_spherical( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, @@ -4211,7 +4210,7 @@ PJ_OBJ *proj_obj_create_conversion_equidistant_cylindrical_spherical( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_gall(PJ_CONTEXT *ctx, double center_long, +PJ *proj_obj_create_conversion_gall(PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, @@ -4245,7 +4244,7 @@ PJ_OBJ *proj_obj_create_conversion_gall(PJ_CONTEXT *ctx, double center_long, * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_goode_homolosine( +PJ *proj_obj_create_conversion_goode_homolosine( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4277,7 +4276,7 @@ PJ_OBJ *proj_obj_create_conversion_goode_homolosine( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_interrupted_goode_homolosine( +PJ *proj_obj_create_conversion_interrupted_goode_homolosine( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4310,7 +4309,7 @@ PJ_OBJ *proj_obj_create_conversion_interrupted_goode_homolosine( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_geostationary_satellite_sweep_x( +PJ *proj_obj_create_conversion_geostationary_satellite_sweep_x( PJ_CONTEXT *ctx, double center_long, double height, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4343,7 +4342,7 @@ PJ_OBJ *proj_obj_create_conversion_geostationary_satellite_sweep_x( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_geostationary_satellite_sweep_y( +PJ *proj_obj_create_conversion_geostationary_satellite_sweep_y( PJ_CONTEXT *ctx, double center_long, double height, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4375,7 +4374,7 @@ PJ_OBJ *proj_obj_create_conversion_geostationary_satellite_sweep_y( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_gnomonic( +PJ *proj_obj_create_conversion_gnomonic( PJ_CONTEXT *ctx, double center_lat, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4408,7 +4407,7 @@ PJ_OBJ *proj_obj_create_conversion_gnomonic( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_hotine_oblique_mercator_variant_a( +PJ *proj_obj_create_conversion_hotine_oblique_mercator_variant_a( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_projection_centre, double azimuth_initial_line, double angle_from_rectified_to_skrew_grid, double scale, @@ -4446,7 +4445,7 @@ PJ_OBJ *proj_obj_create_conversion_hotine_oblique_mercator_variant_a( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_hotine_oblique_mercator_variant_b( +PJ *proj_obj_create_conversion_hotine_oblique_mercator_variant_b( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_projection_centre, double azimuth_initial_line, double angle_from_rectified_to_skrew_grid, double scale, @@ -4484,7 +4483,7 @@ PJ_OBJ *proj_obj_create_conversion_hotine_oblique_mercator_variant_b( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ * +PJ * proj_obj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( PJ_CONTEXT *ctx, double latitude_projection_centre, double latitude_point1, double longitude_point1, double latitude_point2, double longitude_point2, @@ -4525,7 +4524,7 @@ proj_obj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_laborde_oblique_mercator( +PJ *proj_obj_create_conversion_laborde_oblique_mercator( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_projection_centre, double azimuth_initial_line, double scale, double false_easting, double false_northing, @@ -4561,7 +4560,7 @@ PJ_OBJ *proj_obj_create_conversion_laborde_oblique_mercator( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_international_map_world_polyconic( +PJ *proj_obj_create_conversion_international_map_world_polyconic( PJ_CONTEXT *ctx, double center_long, double latitude_first_parallel, double latitude_second_parallel, double false_easting, double false_northing, const char *ang_unit_name, @@ -4596,7 +4595,7 @@ PJ_OBJ *proj_obj_create_conversion_international_map_world_polyconic( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_krovak_north_oriented( +PJ *proj_obj_create_conversion_krovak_north_oriented( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_of_origin, double colatitude_cone_axis, double latitude_pseudo_standard_parallel, @@ -4635,7 +4634,7 @@ PJ_OBJ *proj_obj_create_conversion_krovak_north_oriented( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_krovak( +PJ *proj_obj_create_conversion_krovak( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_of_origin, double colatitude_cone_axis, double latitude_pseudo_standard_parallel, @@ -4674,7 +4673,7 @@ PJ_OBJ *proj_obj_create_conversion_krovak( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_lambert_azimuthal_equal_area( +PJ *proj_obj_create_conversion_lambert_azimuthal_equal_area( PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4707,7 +4706,7 @@ PJ_OBJ *proj_obj_create_conversion_lambert_azimuthal_equal_area( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_miller_cylindrical( +PJ *proj_obj_create_conversion_miller_cylindrical( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4739,7 +4738,7 @@ PJ_OBJ *proj_obj_create_conversion_miller_cylindrical( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_mercator_variant_a( +PJ *proj_obj_create_conversion_mercator_variant_a( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4772,7 +4771,7 @@ PJ_OBJ *proj_obj_create_conversion_mercator_variant_a( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_mercator_variant_b( +PJ *proj_obj_create_conversion_mercator_variant_b( PJ_CONTEXT *ctx, double latitude_first_parallel, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4805,7 +4804,7 @@ PJ_OBJ *proj_obj_create_conversion_mercator_variant_b( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_popular_visualisation_pseudo_mercator( +PJ *proj_obj_create_conversion_popular_visualisation_pseudo_mercator( PJ_CONTEXT *ctx, double center_lat, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4837,7 +4836,7 @@ PJ_OBJ *proj_obj_create_conversion_popular_visualisation_pseudo_mercator( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_mollweide( +PJ *proj_obj_create_conversion_mollweide( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4869,7 +4868,7 @@ PJ_OBJ *proj_obj_create_conversion_mollweide( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_new_zealand_mapping_grid( +PJ *proj_obj_create_conversion_new_zealand_mapping_grid( PJ_CONTEXT *ctx, double center_lat, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4901,7 +4900,7 @@ PJ_OBJ *proj_obj_create_conversion_new_zealand_mapping_grid( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_oblique_stereographic( +PJ *proj_obj_create_conversion_oblique_stereographic( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4934,7 +4933,7 @@ PJ_OBJ *proj_obj_create_conversion_oblique_stereographic( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_orthographic( +PJ *proj_obj_create_conversion_orthographic( PJ_CONTEXT *ctx, double center_lat, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4966,7 +4965,7 @@ PJ_OBJ *proj_obj_create_conversion_orthographic( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_american_polyconic( +PJ *proj_obj_create_conversion_american_polyconic( PJ_CONTEXT *ctx, double center_lat, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4998,7 +4997,7 @@ PJ_OBJ *proj_obj_create_conversion_american_polyconic( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_polar_stereographic_variant_a( +PJ *proj_obj_create_conversion_polar_stereographic_variant_a( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -5031,7 +5030,7 @@ PJ_OBJ *proj_obj_create_conversion_polar_stereographic_variant_a( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_polar_stereographic_variant_b( +PJ *proj_obj_create_conversion_polar_stereographic_variant_b( PJ_CONTEXT *ctx, double latitude_standard_parallel, double longitude_of_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, @@ -5064,7 +5063,7 @@ PJ_OBJ *proj_obj_create_conversion_polar_stereographic_variant_b( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_robinson(PJ_CONTEXT *ctx, double center_long, +PJ *proj_obj_create_conversion_robinson(PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, @@ -5098,7 +5097,7 @@ PJ_OBJ *proj_obj_create_conversion_robinson(PJ_CONTEXT *ctx, double center_long, * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_sinusoidal( +PJ *proj_obj_create_conversion_sinusoidal( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -5130,7 +5129,7 @@ PJ_OBJ *proj_obj_create_conversion_sinusoidal( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_stereographic( +PJ *proj_obj_create_conversion_stereographic( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -5163,7 +5162,7 @@ PJ_OBJ *proj_obj_create_conversion_stereographic( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_van_der_grinten( +PJ *proj_obj_create_conversion_van_der_grinten( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -5195,7 +5194,7 @@ PJ_OBJ *proj_obj_create_conversion_van_der_grinten( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_wagner_i(PJ_CONTEXT *ctx, double center_long, +PJ *proj_obj_create_conversion_wagner_i(PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, @@ -5229,7 +5228,7 @@ PJ_OBJ *proj_obj_create_conversion_wagner_i(PJ_CONTEXT *ctx, double center_long, * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_wagner_ii( +PJ *proj_obj_create_conversion_wagner_ii( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -5261,7 +5260,7 @@ PJ_OBJ *proj_obj_create_conversion_wagner_ii( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_wagner_iii( +PJ *proj_obj_create_conversion_wagner_iii( PJ_CONTEXT *ctx, double latitude_true_scale, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -5293,7 +5292,7 @@ PJ_OBJ *proj_obj_create_conversion_wagner_iii( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_wagner_iv( +PJ *proj_obj_create_conversion_wagner_iv( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -5325,7 +5324,7 @@ PJ_OBJ *proj_obj_create_conversion_wagner_iv( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_wagner_v(PJ_CONTEXT *ctx, double center_long, +PJ *proj_obj_create_conversion_wagner_v(PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, @@ -5359,7 +5358,7 @@ PJ_OBJ *proj_obj_create_conversion_wagner_v(PJ_CONTEXT *ctx, double center_long, * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_wagner_vi( +PJ *proj_obj_create_conversion_wagner_vi( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -5391,7 +5390,7 @@ PJ_OBJ *proj_obj_create_conversion_wagner_vi( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_wagner_vii( +PJ *proj_obj_create_conversion_wagner_vii( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -5424,7 +5423,7 @@ PJ_OBJ *proj_obj_create_conversion_wagner_vii( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_quadrilateralized_spherical_cube( +PJ *proj_obj_create_conversion_quadrilateralized_spherical_cube( PJ_CONTEXT *ctx, double center_lat, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -5456,7 +5455,7 @@ PJ_OBJ *proj_obj_create_conversion_quadrilateralized_spherical_cube( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_spherical_cross_track_height( +PJ *proj_obj_create_conversion_spherical_cross_track_height( PJ_CONTEXT *ctx, double peg_point_lat, double peg_point_long, double peg_point_heading, double peg_point_height, const char *ang_unit_name, double ang_unit_conv_factor, @@ -5488,7 +5487,7 @@ PJ_OBJ *proj_obj_create_conversion_spherical_cross_track_height( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ_OBJ *proj_obj_create_conversion_equal_earth( +PJ *proj_obj_create_conversion_equal_earth( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -5524,10 +5523,10 @@ PJ_OBJ *proj_obj_create_conversion_equal_earth( */ int proj_coordoperation_is_instanciable(PJ_CONTEXT *ctx, - const PJ_OBJ *coordoperation) { + const PJ *coordoperation) { assert(coordoperation); auto op = - dynamic_cast(coordoperation->obj.get()); + dynamic_cast(coordoperation->iso_obj.get()); if (!op) { proj_log_error(ctx, __FUNCTION__, "Object is not a CoordinateOperation"); @@ -5551,10 +5550,10 @@ int proj_coordoperation_is_instanciable(PJ_CONTEXT *ctx, */ int proj_coordoperation_get_param_count(PJ_CONTEXT *ctx, - const PJ_OBJ *coordoperation) { + const PJ *coordoperation) { SANITIZE_CTX(ctx); assert(coordoperation); - auto op = dynamic_cast(coordoperation->obj.get()); + auto op = dynamic_cast(coordoperation->iso_obj.get()); if (!op) { proj_log_error(ctx, __FUNCTION__, "Object is not a SingleOperation"); return 0; @@ -5574,12 +5573,12 @@ int proj_coordoperation_get_param_count(PJ_CONTEXT *ctx, */ int proj_coordoperation_get_param_index(PJ_CONTEXT *ctx, - const PJ_OBJ *coordoperation, + const PJ *coordoperation, const char *name) { SANITIZE_CTX(ctx); assert(coordoperation); assert(name); - auto op = dynamic_cast(coordoperation->obj.get()); + auto op = dynamic_cast(coordoperation->iso_obj.get()); if (!op) { proj_log_error(ctx, __FUNCTION__, "Object is not a SingleOperation"); return -1; @@ -5628,7 +5627,7 @@ int proj_coordoperation_get_param_index(PJ_CONTEXT *ctx, */ int proj_coordoperation_get_param( - PJ_CONTEXT *ctx, const PJ_OBJ *coordoperation, int index, + PJ_CONTEXT *ctx, const PJ *coordoperation, int index, const char **out_name, const char **out_auth_name, const char **out_code, double *out_value, const char **out_value_string, double *out_unit_conv_factor, const char **out_unit_name, @@ -5636,7 +5635,7 @@ int proj_coordoperation_get_param( const char **out_unit_category) { SANITIZE_CTX(ctx); assert(coordoperation); - auto op = dynamic_cast(coordoperation->obj.get()); + auto op = dynamic_cast(coordoperation->iso_obj.get()); if (!op) { proj_log_error(ctx, __FUNCTION__, "Object is not a SingleOperation"); return false; @@ -5751,13 +5750,13 @@ int proj_coordoperation_get_param( */ int proj_coordoperation_get_towgs84_values(PJ_CONTEXT *ctx, - const PJ_OBJ *coordoperation, + const PJ *coordoperation, double *out_values, int value_count, int emit_error_if_incompatible) { SANITIZE_CTX(ctx); assert(coordoperation); auto transf = - dynamic_cast(coordoperation->obj.get()); + dynamic_cast(coordoperation->iso_obj.get()); if (!transf) { if (emit_error_if_incompatible) { proj_log_error(ctx, __FUNCTION__, "Object is not a Transformation"); @@ -5789,11 +5788,11 @@ int proj_coordoperation_get_towgs84_values(PJ_CONTEXT *ctx, */ int proj_coordoperation_get_grid_used_count(PJ_CONTEXT *ctx, - const PJ_OBJ *coordoperation) { + const PJ *coordoperation) { SANITIZE_CTX(ctx); assert(coordoperation); auto co = - dynamic_cast(coordoperation->obj.get()); + dynamic_cast(coordoperation->iso_obj.get()); if (!co) { proj_log_error(ctx, __FUNCTION__, "Object is not a CoordinateOperation"); @@ -5842,7 +5841,7 @@ int proj_coordoperation_get_grid_used_count(PJ_CONTEXT *ctx, */ int proj_coordoperation_get_grid_used( - PJ_CONTEXT *ctx, const PJ_OBJ *coordoperation, int index, + PJ_CONTEXT *ctx, const PJ *coordoperation, int index, const char **out_short_name, const char **out_full_name, const char **out_package_name, const char **out_url, int *out_direct_download, int *out_open_license, int *out_available) { @@ -6242,19 +6241,19 @@ void proj_operation_factory_context_set_allowed_intermediate_crs( * proj_obj_list_destroy(), or NULL in case of error. */ PJ_OBJ_LIST *proj_obj_create_operations( - PJ_CONTEXT *ctx, const PJ_OBJ *source_crs, const PJ_OBJ *target_crs, + PJ_CONTEXT *ctx, const PJ *source_crs, const PJ *target_crs, const PJ_OPERATION_FACTORY_CONTEXT *operationContext) { SANITIZE_CTX(ctx); assert(source_crs); assert(target_crs); assert(operationContext); - auto sourceCRS = nn_dynamic_pointer_cast(source_crs->obj); + auto sourceCRS = std::dynamic_pointer_cast(source_crs->iso_obj); if (!sourceCRS) { proj_log_error(ctx, __FUNCTION__, "source_crs is not a CRS"); return nullptr; } - auto targetCRS = nn_dynamic_pointer_cast(target_crs->obj); + auto targetCRS = std::dynamic_pointer_cast(target_crs->iso_obj); if (!targetCRS) { proj_log_error(ctx, __FUNCTION__, "target_crs is not a CRS"); return nullptr; @@ -6291,18 +6290,18 @@ int proj_obj_list_get_count(const PJ_OBJ_LIST *result) { /** \brief Return an object from the result set * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * * @param ctx PROJ context, or NULL for default context * @param result Objet of type PJ_OBJ_LIST (must not be NULL) * @param index Index - * @return a new object that must be unreferenced with proj_obj_destroy(), + * @return a new object that must be unreferenced with proj_destroy(), * or nullptr in case of error. */ -PJ_OBJ *proj_obj_list_get(PJ_CONTEXT *ctx, const PJ_OBJ_LIST *result, +PJ *proj_obj_list_get(PJ_CONTEXT *ctx, const PJ_OBJ_LIST *result, int index) { SANITIZE_CTX(ctx); assert(result); @@ -6310,7 +6309,7 @@ PJ_OBJ *proj_obj_list_get(PJ_CONTEXT *ctx, const PJ_OBJ_LIST *result, proj_log_error(ctx, __FUNCTION__, "Invalid index"); return nullptr; } - return PJ_OBJ::create(result->objects[index]); + return pj_obj_create(result->objects[index]); } // --------------------------------------------------------------------------- @@ -6333,11 +6332,11 @@ void proj_obj_list_destroy(PJ_OBJ_LIST *result) { delete result; } * @return the accuracy, or a negative value if unknown or in case of error. */ double proj_coordoperation_get_accuracy(PJ_CONTEXT *ctx, - const PJ_OBJ *coordoperation) { + const PJ *coordoperation) { SANITIZE_CTX(ctx); assert(coordoperation); auto co = - dynamic_cast(coordoperation->obj.get()); + dynamic_cast(coordoperation->iso_obj.get()); if (!co) { proj_log_error(ctx, __FUNCTION__, "Object is not a CoordinateOperation"); @@ -6358,19 +6357,19 @@ double proj_coordoperation_get_accuracy(PJ_CONTEXT *ctx, /** \brief Returns the datum of a SingleCRS. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * * @param ctx PROJ context, or NULL for default context * @param crs Objet of type SingleCRS (must not be NULL) - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL + * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error (or if there is no datum) */ -PJ_OBJ *proj_obj_crs_get_datum(PJ_CONTEXT *ctx, const PJ_OBJ *crs) { +PJ *proj_obj_crs_get_datum(PJ_CONTEXT *ctx, const PJ *crs) { SANITIZE_CTX(ctx); assert(crs); - auto l_crs = dynamic_cast(crs->obj.get()); + auto l_crs = dynamic_cast(crs->iso_obj.get()); if (!l_crs) { proj_log_error(ctx, __FUNCTION__, "Object is not a SingleCRS"); return nullptr; @@ -6379,31 +6378,31 @@ PJ_OBJ *proj_obj_crs_get_datum(PJ_CONTEXT *ctx, const PJ_OBJ *crs) { if (!datum) { return nullptr; } - return PJ_OBJ::create(NN_NO_CHECK(datum)); + return pj_obj_create(NN_NO_CHECK(datum)); } // --------------------------------------------------------------------------- /** \brief Returns the coordinate system of a SingleCRS. * - * The returned object must be unreferenced with proj_obj_destroy() after + * The returned object must be unreferenced with proj_destroy() after * use. * It should be used by at most one thread at a time. * * @param ctx PROJ context, or NULL for default context * @param crs Objet of type SingleCRS (must not be NULL) - * @return Object that must be unreferenced with proj_obj_destroy(), or NULL + * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error. */ -PJ_OBJ *proj_obj_crs_get_coordinate_system(PJ_CONTEXT *ctx, const PJ_OBJ *crs) { +PJ *proj_obj_crs_get_coordinate_system(PJ_CONTEXT *ctx, const PJ *crs) { SANITIZE_CTX(ctx); assert(crs); - auto l_crs = dynamic_cast(crs->obj.get()); + auto l_crs = dynamic_cast(crs->iso_obj.get()); if (!l_crs) { proj_log_error(ctx, __FUNCTION__, "Object is not a SingleCRS"); return nullptr; } - return PJ_OBJ::create(l_crs->coordinateSystem()); + return pj_obj_create(l_crs->coordinateSystem()); } // --------------------------------------------------------------------------- @@ -6415,10 +6414,10 @@ PJ_OBJ *proj_obj_crs_get_coordinate_system(PJ_CONTEXT *ctx, const PJ_OBJ *crs) { * @return type, or PJ_CS_TYPE_UNKNOWN in case of error. */ PJ_COORDINATE_SYSTEM_TYPE proj_obj_cs_get_type(PJ_CONTEXT *ctx, - const PJ_OBJ *cs) { + const PJ *cs) { SANITIZE_CTX(ctx); assert(cs); - auto l_cs = dynamic_cast(cs->obj.get()); + auto l_cs = dynamic_cast(cs->iso_obj.get()); if (!l_cs) { proj_log_error(ctx, __FUNCTION__, "Object is not a CoordinateSystem"); return PJ_CS_TYPE_UNKNOWN; @@ -6461,10 +6460,10 @@ PJ_COORDINATE_SYSTEM_TYPE proj_obj_cs_get_type(PJ_CONTEXT *ctx, * @param cs Objet of type CoordinateSystem (must not be NULL) * @return number of axis, or -1 in case of error. */ -int proj_obj_cs_get_axis_count(PJ_CONTEXT *ctx, const PJ_OBJ *cs) { +int proj_obj_cs_get_axis_count(PJ_CONTEXT *ctx, const PJ *cs) { SANITIZE_CTX(ctx); assert(cs); - auto l_cs = dynamic_cast(cs->obj.get()); + auto l_cs = dynamic_cast(cs->iso_obj.get()); if (!l_cs) { proj_log_error(ctx, __FUNCTION__, "Object is not a CoordinateSystem"); return -1; @@ -6495,7 +6494,7 @@ int proj_obj_cs_get_axis_count(PJ_CONTEXT *ctx, const PJ_OBJ *cs) { * unit code. or NULL * @return TRUE in case of success */ -int proj_obj_cs_get_axis_info(PJ_CONTEXT *ctx, const PJ_OBJ *cs, int index, +int proj_obj_cs_get_axis_info(PJ_CONTEXT *ctx, const PJ *cs, int index, const char **out_name, const char **out_abbrev, const char **out_direction, double *out_unit_conv_factor, @@ -6504,7 +6503,7 @@ int proj_obj_cs_get_axis_info(PJ_CONTEXT *ctx, const PJ_OBJ *cs, int index, const char **out_unit_code) { SANITIZE_CTX(ctx); assert(cs); - auto l_cs = dynamic_cast(cs->obj.get()); + auto l_cs = dynamic_cast(cs->iso_obj.get()); if (!l_cs) { proj_log_error(ctx, __FUNCTION__, "Object is not a CoordinateSystem"); return false; diff --git a/src/malloc.cpp b/src/malloc.cpp index 0e80912e..a14b1727 100644 --- a/src/malloc.cpp +++ b/src/malloc.cpp @@ -180,7 +180,7 @@ void *pj_dealloc_params (PJ_CONTEXT *ctx, paralist *start, int errlev) { /************************************************************************/ void pj_free(PJ *P) { - if (nullptr==P) + if (nullptr==P || !P->destructor) return; /* free projection parameters - all the hard work is done by */ /* pj_default_destructor, which is supposed */ diff --git a/src/proj.h b/src/proj.h index 8ec48088..54720664 100644 --- a/src/proj.h +++ b/src/proj.h @@ -452,10 +452,6 @@ char PROJ_DLL * proj_rtodms(char *s, double r, int pos, int neg); * @{ */ -/*! @cond Doxygen_Suppress */ -typedef struct PJ_OBJ PJ_OBJ; -/*! @endcond */ - /*! @cond Doxygen_Suppress */ typedef struct PJ_OBJ_LIST PJ_OBJ_LIST; /*! @endcond */ @@ -498,16 +494,16 @@ typedef enum PJ_GUESSED_WKT_DIALECT PROJ_DLL proj_context_guess_wkt_dialect(PJ_CONTEXT *ctx, const char *wkt); -PJ_OBJ PROJ_DLL *proj_obj_create_from_user_input(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_obj_create_from_user_input(PJ_CONTEXT *ctx, const char *text, const char* const *options); -PJ_OBJ PROJ_DLL *proj_obj_create_from_wkt(PJ_CONTEXT *ctx, const char *wkt, +PJ PROJ_DLL *proj_obj_create_from_wkt(PJ_CONTEXT *ctx, const char *wkt, const char* const *options, PROJ_STRING_LIST *out_warnings, PROJ_STRING_LIST *out_grammar_errors); -PJ_OBJ PROJ_DLL *proj_obj_create_from_proj_string(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_obj_create_from_proj_string(PJ_CONTEXT *ctx, const char *proj_string, const char* const *options); @@ -521,7 +517,7 @@ typedef enum PJ_OBJ_CATEGORY_COORDINATE_OPERATION } PJ_OBJ_CATEGORY; -PJ_OBJ PROJ_DLL *proj_obj_create_from_database(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_obj_create_from_database(PJ_CONTEXT *ctx, const char *auth_name, const char *code, PJ_OBJ_CATEGORY category, @@ -535,9 +531,7 @@ int PROJ_DLL proj_uom_get_info_from_database(PJ_CONTEXT *ctx, double *out_conv_factor, const char **out_category); -void PROJ_DLL proj_obj_destroy(PJ_OBJ *obj); - -PJ_OBJ PROJ_DLL *proj_obj_clone(PJ_CONTEXT *ctx, const PJ_OBJ *obj); +PJ PROJ_DLL *proj_obj_clone(PJ_CONTEXT *ctx, const PJ *obj); /** \brief Object type. */ typedef enum @@ -589,12 +583,12 @@ PJ_OBJ_LIST PROJ_DLL *proj_obj_create_from_name(PJ_CONTEXT *ctx, size_t limitResultCount, const char* const *options); -PJ_OBJ_TYPE PROJ_DLL proj_obj_get_type(const PJ_OBJ *obj); +PJ_OBJ_TYPE PROJ_DLL proj_obj_get_type(const PJ *obj); -int PROJ_DLL proj_obj_is_deprecated(const PJ_OBJ *obj); +int PROJ_DLL proj_obj_is_deprecated(const PJ *obj); PJ_OBJ_LIST PROJ_DLL *proj_obj_get_non_deprecated(PJ_CONTEXT *ctx, - const PJ_OBJ *obj); + const PJ *obj); /** Comparison criterion. */ typedef enum @@ -618,19 +612,19 @@ typedef enum PJ_COMP_EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS, } PJ_COMPARISON_CRITERION; -int PROJ_DLL proj_obj_is_equivalent_to(const PJ_OBJ *obj, const PJ_OBJ* other, +int PROJ_DLL proj_obj_is_equivalent_to(const PJ *obj, const PJ *other, PJ_COMPARISON_CRITERION criterion); -int PROJ_DLL proj_obj_is_crs(const PJ_OBJ *obj); +int PROJ_DLL proj_obj_is_crs(const PJ *obj); -const char PROJ_DLL* proj_obj_get_name(const PJ_OBJ *obj); +const char PROJ_DLL* proj_obj_get_name(const PJ *obj); -const char PROJ_DLL* proj_obj_get_id_auth_name(const PJ_OBJ *obj, int index); +const char PROJ_DLL* proj_obj_get_id_auth_name(const PJ *obj, int index); -const char PROJ_DLL* proj_obj_get_id_code(const PJ_OBJ *obj, int index); +const char PROJ_DLL* proj_obj_get_id_code(const PJ *obj, int index); int PROJ_DLL proj_obj_get_area_of_use(PJ_CONTEXT *ctx, - const PJ_OBJ *obj, + const PJ *obj, double* out_west_lon_degree, double* out_south_lat_degree, double* out_east_lon_degree, @@ -655,7 +649,7 @@ typedef enum } PJ_WKT_TYPE; const char PROJ_DLL* proj_obj_as_wkt(PJ_CONTEXT *ctx, - const PJ_OBJ *obj, PJ_WKT_TYPE type, + const PJ *obj, PJ_WKT_TYPE type, const char* const *options); /** \brief PROJ string version. */ @@ -668,18 +662,18 @@ typedef enum } PJ_PROJ_STRING_TYPE; const char PROJ_DLL* proj_obj_as_proj_string(PJ_CONTEXT *ctx, - const PJ_OBJ *obj, + const PJ *obj, PJ_PROJ_STRING_TYPE type, const char* const *options); -PJ_OBJ PROJ_DLL *proj_obj_get_source_crs(PJ_CONTEXT *ctx, - const PJ_OBJ *obj); +PJ PROJ_DLL *proj_obj_get_source_crs(PJ_CONTEXT *ctx, + const PJ *obj); -PJ_OBJ PROJ_DLL *proj_obj_get_target_crs(PJ_CONTEXT *ctx, - const PJ_OBJ *obj); +PJ PROJ_DLL *proj_obj_get_target_crs(PJ_CONTEXT *ctx, + const PJ *obj); PJ_OBJ_LIST PROJ_DLL *proj_obj_identify(PJ_CONTEXT *ctx, - const PJ_OBJ* obj, + const PJ *obj, const char *auth_name, const char* const *options, int **out_confidence); @@ -802,13 +796,13 @@ void PROJ_DLL proj_operation_factory_context_set_allowed_intermediate_crs( PJ_OBJ_LIST PROJ_DLL *proj_obj_create_operations( PJ_CONTEXT *ctx, - const PJ_OBJ *source_crs, - const PJ_OBJ *target_crs, + const PJ *source_crs, + const PJ *target_crs, const PJ_OPERATION_FACTORY_CONTEXT *operationContext); int PROJ_DLL proj_obj_list_get_count(const PJ_OBJ_LIST *result); -PJ_OBJ PROJ_DLL *proj_obj_list_get(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_obj_list_get(PJ_CONTEXT *ctx, const PJ_OBJ_LIST *result, int index); @@ -816,15 +810,15 @@ void PROJ_DLL proj_obj_list_destroy(PJ_OBJ_LIST *result); /* ------------------------------------------------------------------------- */ -PJ_OBJ PROJ_DLL *proj_obj_crs_get_geodetic_crs(PJ_CONTEXT *ctx, const PJ_OBJ *crs); +PJ PROJ_DLL *proj_obj_crs_get_geodetic_crs(PJ_CONTEXT *ctx, const PJ *crs); -PJ_OBJ PROJ_DLL *proj_obj_crs_get_horizontal_datum(PJ_CONTEXT *ctx, const PJ_OBJ *crs); +PJ PROJ_DLL *proj_obj_crs_get_horizontal_datum(PJ_CONTEXT *ctx, const PJ *crs); -PJ_OBJ PROJ_DLL *proj_obj_crs_get_sub_crs(PJ_CONTEXT *ctx, const PJ_OBJ *crs, int index); +PJ PROJ_DLL *proj_obj_crs_get_sub_crs(PJ_CONTEXT *ctx, const PJ *crs, int index); -PJ_OBJ PROJ_DLL *proj_obj_crs_get_datum(PJ_CONTEXT *ctx, const PJ_OBJ *crs); +PJ PROJ_DLL *proj_obj_crs_get_datum(PJ_CONTEXT *ctx, const PJ *crs); -PJ_OBJ PROJ_DLL *proj_obj_crs_get_coordinate_system(PJ_CONTEXT *ctx, const PJ_OBJ *crs); +PJ PROJ_DLL *proj_obj_crs_get_coordinate_system(PJ_CONTEXT *ctx, const PJ *crs); /** Type of coordinate system. */ typedef enum @@ -843,13 +837,13 @@ typedef enum } PJ_COORDINATE_SYSTEM_TYPE; PJ_COORDINATE_SYSTEM_TYPE PROJ_DLL proj_obj_cs_get_type(PJ_CONTEXT *ctx, - const PJ_OBJ* cs); + const PJ *cs); int PROJ_DLL proj_obj_cs_get_axis_count(PJ_CONTEXT *ctx, - const PJ_OBJ *cs); + const PJ *cs); int PROJ_DLL proj_obj_cs_get_axis_info(PJ_CONTEXT *ctx, - const PJ_OBJ *cs, int index, + const PJ *cs, int index, const char **out_name, const char **out_abbrev, const char **out_direction, @@ -858,46 +852,46 @@ int PROJ_DLL proj_obj_cs_get_axis_info(PJ_CONTEXT *ctx, const char **out_unit_auth_name, const char **out_unit_code); -PJ_OBJ PROJ_DLL *proj_obj_get_ellipsoid(PJ_CONTEXT *ctx, - const PJ_OBJ *obj); +PJ PROJ_DLL *proj_obj_get_ellipsoid(PJ_CONTEXT *ctx, + const PJ *obj); int PROJ_DLL proj_obj_ellipsoid_get_parameters(PJ_CONTEXT *ctx, - const PJ_OBJ *ellipsoid, + const PJ *ellipsoid, double *out_semi_major_metre, double *out_semi_minor_metre, int *out_is_semi_minor_computed, double *out_inv_flattening); -PJ_OBJ PROJ_DLL *proj_obj_get_prime_meridian(PJ_CONTEXT *ctx, - const PJ_OBJ *obj); +PJ PROJ_DLL *proj_obj_get_prime_meridian(PJ_CONTEXT *ctx, + const PJ *obj); int PROJ_DLL proj_obj_prime_meridian_get_parameters(PJ_CONTEXT *ctx, - const PJ_OBJ *prime_meridian, + const PJ *prime_meridian, double *out_longitude, double *out_unit_conv_factor, const char **out_unit_name); -PJ_OBJ PROJ_DLL *proj_obj_crs_get_coordoperation(PJ_CONTEXT *ctx, - const PJ_OBJ *crs); +PJ PROJ_DLL *proj_obj_crs_get_coordoperation(PJ_CONTEXT *ctx, + const PJ *crs); int PROJ_DLL proj_coordoperation_get_method_info(PJ_CONTEXT *ctx, - const PJ_OBJ *coordoperation, + const PJ *coordoperation, const char **out_method_name, const char **out_method_auth_name, const char **out_method_code); int PROJ_DLL proj_coordoperation_is_instanciable(PJ_CONTEXT *ctx, - const PJ_OBJ *coordoperation); + const PJ *coordoperation); int PROJ_DLL proj_coordoperation_get_param_count(PJ_CONTEXT *ctx, - const PJ_OBJ *coordoperation); + const PJ *coordoperation); int PROJ_DLL proj_coordoperation_get_param_index(PJ_CONTEXT *ctx, - const PJ_OBJ *coordoperation, + const PJ *coordoperation, const char *name); int PROJ_DLL proj_coordoperation_get_param(PJ_CONTEXT *ctx, - const PJ_OBJ *coordoperation, + const PJ *coordoperation, int index, const char **out_name, const char **out_auth_name, @@ -911,10 +905,10 @@ int PROJ_DLL proj_coordoperation_get_param(PJ_CONTEXT *ctx, const char **out_unit_category); int PROJ_DLL proj_coordoperation_get_grid_used_count(PJ_CONTEXT *ctx, - const PJ_OBJ *coordoperation); + const PJ *coordoperation); int PROJ_DLL proj_coordoperation_get_grid_used(PJ_CONTEXT *ctx, - const PJ_OBJ *coordoperation, + const PJ *coordoperation, int index, const char **out_short_name, const char **out_full_name, @@ -925,10 +919,10 @@ int PROJ_DLL proj_coordoperation_get_grid_used(PJ_CONTEXT *ctx, int *out_available); double PROJ_DLL proj_coordoperation_get_accuracy(PJ_CONTEXT *ctx, - const PJ_OBJ* obj); + const PJ *obj); int PROJ_DLL proj_coordoperation_get_towgs84_values(PJ_CONTEXT *ctx, - const PJ_OBJ *coordoperation, + const PJ *coordoperation, double *out_values, int value_count, int emit_error_if_incompatible); diff --git a/src/proj_experimental.h b/src/proj_experimental.h index 292a3baf..31600e67 100644 --- a/src/proj_experimental.h +++ b/src/proj_experimental.h @@ -89,7 +89,7 @@ typedef struct PJ_UNIT_TYPE unit_type; } PJ_AXIS_DESCRIPTION; -PJ_OBJ PROJ_DLL *proj_obj_create_cs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, int axis_count, const PJ_AXIS_DESCRIPTION* axis); @@ -109,7 +109,7 @@ typedef enum PJ_CART2D_WESTING_SOUTHING, } PJ_CARTESIAN_CS_2D_TYPE; -PJ_OBJ PROJ_DLL *proj_obj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_obj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, PJ_CARTESIAN_CS_2D_TYPE type, const char* unit_name, double unit_conv_factor); @@ -124,7 +124,7 @@ typedef enum PJ_ELLPS2D_LATITUDE_LONGITUDE, } PJ_ELLIPSOIDAL_CS_2D_TYPE; -PJ_OBJ PROJ_DLL *proj_obj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_obj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, PJ_ELLIPSOIDAL_CS_2D_TYPE type, const char* unit_name, double unit_conv_factor); @@ -136,7 +136,7 @@ PJ_OBJ_LIST PROJ_DLL *proj_obj_query_geodetic_crs_from_datum( const char *datum_code, const char *crs_type); -PJ_OBJ PROJ_DLL *proj_obj_create_geographic_crs( +PJ PROJ_DLL *proj_obj_create_geographic_crs( PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, @@ -146,15 +146,15 @@ PJ_OBJ PROJ_DLL *proj_obj_create_geographic_crs( double prime_meridian_offset, const char *pm_angular_units, double pm_units_conv, - PJ_OBJ* ellipsoidal_cs); + PJ* ellipsoidal_cs); -PJ_OBJ PROJ_DLL *proj_obj_create_geographic_crs_from_datum( +PJ PROJ_DLL *proj_obj_create_geographic_crs_from_datum( PJ_CONTEXT *ctx, const char *crs_name, - PJ_OBJ* datum, - PJ_OBJ* ellipsoidal_cs); + PJ* datum, + PJ* ellipsoidal_cs); -PJ_OBJ PROJ_DLL *proj_obj_create_geocentric_crs( +PJ PROJ_DLL *proj_obj_create_geocentric_crs( PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, @@ -167,61 +167,61 @@ PJ_OBJ PROJ_DLL *proj_obj_create_geocentric_crs( const char *linear_units, double linear_units_conv); -PJ_OBJ PROJ_DLL *proj_obj_create_geocentric_crs_from_datum( +PJ PROJ_DLL *proj_obj_create_geocentric_crs_from_datum( PJ_CONTEXT *ctx, const char *crs_name, - const PJ_OBJ* datum, + const PJ* datum, const char *linear_units, double linear_units_conv); -PJ_OBJ PROJ_DLL *proj_obj_alter_name(PJ_CONTEXT *ctx, - const PJ_OBJ* obj, const char* name); +PJ PROJ_DLL *proj_obj_alter_name(PJ_CONTEXT *ctx, + const PJ* obj, const char* name); -PJ_OBJ PROJ_DLL *proj_obj_alter_id(PJ_CONTEXT *ctx, - const PJ_OBJ* obj, +PJ PROJ_DLL *proj_obj_alter_id(PJ_CONTEXT *ctx, + const PJ* obj, const char* auth_name, const char* code); -PJ_OBJ PROJ_DLL *proj_obj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, - const PJ_OBJ* obj, - const PJ_OBJ* new_geod_crs); +PJ PROJ_DLL *proj_obj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, + const PJ* obj, + const PJ* new_geod_crs); -PJ_OBJ PROJ_DLL *proj_obj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, - const PJ_OBJ* obj, +PJ PROJ_DLL *proj_obj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, + const PJ* obj, const char *angular_units, double angular_units_conv, const char *unit_auth_name, const char *unit_code); -PJ_OBJ PROJ_DLL *proj_obj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, - const PJ_OBJ* obj, +PJ PROJ_DLL *proj_obj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, + const PJ* obj, const char *linear_units, double linear_units_conv, const char *unit_auth_name, const char *unit_code); -PJ_OBJ PROJ_DLL *proj_obj_crs_alter_parameters_linear_unit( +PJ PROJ_DLL *proj_obj_crs_alter_parameters_linear_unit( PJ_CONTEXT *ctx, - const PJ_OBJ* obj, + const PJ* obj, const char *linear_units, double linear_units_conv, const char *unit_auth_name, const char *unit_code, int convert_to_new_unit); -PJ_OBJ PROJ_DLL *proj_obj_create_engineering_crs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_obj_create_engineering_crs(PJ_CONTEXT *ctx, const char *crsName); -PJ_OBJ PROJ_DLL *proj_obj_create_vertical_crs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_obj_create_vertical_crs(PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, const char *linear_units, double linear_units_conv); -PJ_OBJ PROJ_DLL *proj_obj_create_compound_crs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_obj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name, - PJ_OBJ* horiz_crs, - PJ_OBJ* vert_crs); + PJ* horiz_crs, + PJ* vert_crs); /** Description of a parameter value for a Conversion. */ typedef struct @@ -242,7 +242,7 @@ typedef struct PJ_UNIT_TYPE unit_type; } PJ_PARAM_DESCRIPTION; -PJ_OBJ PROJ_DLL *proj_obj_create_conversion(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_obj_create_conversion(PJ_CONTEXT *ctx, const char* name, const char* auth_name, const char* code, @@ -252,14 +252,14 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion(PJ_CONTEXT *ctx, int param_count, const PJ_PARAM_DESCRIPTION* params); -PJ_OBJ PROJ_DLL *proj_obj_create_transformation( +PJ PROJ_DLL *proj_obj_create_transformation( PJ_CONTEXT *ctx, const char* name, const char* auth_name, const char* code, - PJ_OBJ* source_crs, - PJ_OBJ* target_crs, - PJ_OBJ* interpolation_crs, + PJ* source_crs, + PJ* target_crs, + PJ* interpolation_crs, const char* method_name, const char* method_auth_name, const char* method_code, @@ -267,33 +267,33 @@ PJ_OBJ PROJ_DLL *proj_obj_create_transformation( const PJ_PARAM_DESCRIPTION* params, double accuracy); -PJ_OBJ PROJ_DLL *proj_obj_convert_conversion_to_other_method(PJ_CONTEXT *ctx, - const PJ_OBJ *conversion, +PJ PROJ_DLL *proj_obj_convert_conversion_to_other_method(PJ_CONTEXT *ctx, + const PJ *conversion, int new_method_epsg_code, const char *new_method_name); -PJ_OBJ PROJ_DLL *proj_obj_create_projected_crs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_obj_create_projected_crs(PJ_CONTEXT *ctx, const char* crs_name, - const PJ_OBJ* geodetic_crs, - const PJ_OBJ* conversion, - const PJ_OBJ* coordinate_system); + const PJ* geodetic_crs, + const PJ* conversion, + const PJ* coordinate_system); -PJ_OBJ PROJ_DLL *proj_obj_crs_create_bound_crs(PJ_CONTEXT *ctx, - const PJ_OBJ *base_crs, - const PJ_OBJ *hub_crs, - const PJ_OBJ *transformation); +PJ PROJ_DLL *proj_obj_crs_create_bound_crs(PJ_CONTEXT *ctx, + const PJ *base_crs, + const PJ *hub_crs, + const PJ *transformation); -PJ_OBJ PROJ_DLL *proj_obj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, - const PJ_OBJ *crs, +PJ PROJ_DLL *proj_obj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, + const PJ *crs, const char *const *options); /* BEGIN: Generated by scripts/create_c_api_projections.py*/ -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_utm( +PJ PROJ_DLL *proj_obj_create_conversion_utm( PJ_CONTEXT *ctx, int zone, int north); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_transverse_mercator( +PJ PROJ_DLL *proj_obj_create_conversion_transverse_mercator( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -303,7 +303,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_transverse_mercator( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_gauss_schreiber_transverse_mercator( +PJ PROJ_DLL *proj_obj_create_conversion_gauss_schreiber_transverse_mercator( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -313,7 +313,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_gauss_schreiber_transverse_mercator( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_transverse_mercator_south_oriented( +PJ PROJ_DLL *proj_obj_create_conversion_transverse_mercator_south_oriented( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -323,7 +323,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_transverse_mercator_south_oriented( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_two_point_equidistant( +PJ PROJ_DLL *proj_obj_create_conversion_two_point_equidistant( PJ_CONTEXT *ctx, double latitude_first_point, double longitude_first_point, @@ -334,7 +334,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_two_point_equidistant( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_tunisia_mapping_grid( +PJ PROJ_DLL *proj_obj_create_conversion_tunisia_mapping_grid( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -343,7 +343,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_tunisia_mapping_grid( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_albers_equal_area( +PJ PROJ_DLL *proj_obj_create_conversion_albers_equal_area( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, @@ -354,7 +354,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_albers_equal_area( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_1sp( +PJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_1sp( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -364,7 +364,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_1sp( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp( +PJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, @@ -375,7 +375,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp_michigan( +PJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp_michigan( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, @@ -387,7 +387,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp_michigan const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp_belgium( +PJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp_belgium( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, @@ -398,7 +398,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp_belgium( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_azimuthal_equidistant( +PJ PROJ_DLL *proj_obj_create_conversion_azimuthal_equidistant( PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, @@ -407,7 +407,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_azimuthal_equidistant( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_guam_projection( +PJ PROJ_DLL *proj_obj_create_conversion_guam_projection( PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, @@ -416,7 +416,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_guam_projection( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_bonne( +PJ PROJ_DLL *proj_obj_create_conversion_bonne( PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, @@ -425,7 +425,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_bonne( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_cylindrical_equal_area_spherical( +PJ PROJ_DLL *proj_obj_create_conversion_lambert_cylindrical_equal_area_spherical( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, @@ -434,7 +434,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_cylindrical_equal_area_spher const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_cylindrical_equal_area( +PJ PROJ_DLL *proj_obj_create_conversion_lambert_cylindrical_equal_area( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, @@ -443,7 +443,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_cylindrical_equal_area( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_cassini_soldner( +PJ PROJ_DLL *proj_obj_create_conversion_cassini_soldner( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -452,7 +452,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_cassini_soldner( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_equidistant_conic( +PJ PROJ_DLL *proj_obj_create_conversion_equidistant_conic( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -463,7 +463,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_equidistant_conic( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_i( +PJ PROJ_DLL *proj_obj_create_conversion_eckert_i( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -471,7 +471,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_i( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_ii( +PJ PROJ_DLL *proj_obj_create_conversion_eckert_ii( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -479,7 +479,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_ii( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_iii( +PJ PROJ_DLL *proj_obj_create_conversion_eckert_iii( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -487,7 +487,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_iii( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_iv( +PJ PROJ_DLL *proj_obj_create_conversion_eckert_iv( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -495,7 +495,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_iv( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_v( +PJ PROJ_DLL *proj_obj_create_conversion_eckert_v( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -503,7 +503,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_v( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_vi( +PJ PROJ_DLL *proj_obj_create_conversion_eckert_vi( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -511,7 +511,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_eckert_vi( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_equidistant_cylindrical( +PJ PROJ_DLL *proj_obj_create_conversion_equidistant_cylindrical( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, @@ -520,7 +520,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_equidistant_cylindrical( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_equidistant_cylindrical_spherical( +PJ PROJ_DLL *proj_obj_create_conversion_equidistant_cylindrical_spherical( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, @@ -529,7 +529,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_equidistant_cylindrical_spherical( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_gall( +PJ PROJ_DLL *proj_obj_create_conversion_gall( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -537,7 +537,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_gall( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_goode_homolosine( +PJ PROJ_DLL *proj_obj_create_conversion_goode_homolosine( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -545,7 +545,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_goode_homolosine( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_interrupted_goode_homolosine( +PJ PROJ_DLL *proj_obj_create_conversion_interrupted_goode_homolosine( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -553,7 +553,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_interrupted_goode_homolosine( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_geostationary_satellite_sweep_x( +PJ PROJ_DLL *proj_obj_create_conversion_geostationary_satellite_sweep_x( PJ_CONTEXT *ctx, double center_long, double height, @@ -562,7 +562,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_geostationary_satellite_sweep_x( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_geostationary_satellite_sweep_y( +PJ PROJ_DLL *proj_obj_create_conversion_geostationary_satellite_sweep_y( PJ_CONTEXT *ctx, double center_long, double height, @@ -571,7 +571,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_geostationary_satellite_sweep_y( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_gnomonic( +PJ PROJ_DLL *proj_obj_create_conversion_gnomonic( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -580,7 +580,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_gnomonic( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_variant_a( +PJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_variant_a( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_projection_centre, @@ -592,7 +592,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_variant_a( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_variant_b( +PJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_variant_b( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_projection_centre, @@ -604,7 +604,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_variant_b( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( +PJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( PJ_CONTEXT *ctx, double latitude_projection_centre, double latitude_point1, @@ -617,7 +617,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_two_point_na const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_laborde_oblique_mercator( +PJ PROJ_DLL *proj_obj_create_conversion_laborde_oblique_mercator( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_projection_centre, @@ -628,7 +628,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_laborde_oblique_mercator( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_international_map_world_polyconic( +PJ PROJ_DLL *proj_obj_create_conversion_international_map_world_polyconic( PJ_CONTEXT *ctx, double center_long, double latitude_first_parallel, @@ -638,7 +638,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_international_map_world_polyconic( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_krovak_north_oriented( +PJ PROJ_DLL *proj_obj_create_conversion_krovak_north_oriented( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_of_origin, @@ -650,7 +650,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_krovak_north_oriented( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_krovak( +PJ PROJ_DLL *proj_obj_create_conversion_krovak( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_of_origin, @@ -662,7 +662,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_krovak( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_azimuthal_equal_area( +PJ PROJ_DLL *proj_obj_create_conversion_lambert_azimuthal_equal_area( PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, @@ -671,7 +671,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_lambert_azimuthal_equal_area( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_miller_cylindrical( +PJ PROJ_DLL *proj_obj_create_conversion_miller_cylindrical( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -679,7 +679,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_miller_cylindrical( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_mercator_variant_a( +PJ PROJ_DLL *proj_obj_create_conversion_mercator_variant_a( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -689,7 +689,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_mercator_variant_a( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_mercator_variant_b( +PJ PROJ_DLL *proj_obj_create_conversion_mercator_variant_b( PJ_CONTEXT *ctx, double latitude_first_parallel, double center_long, @@ -698,7 +698,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_mercator_variant_b( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_popular_visualisation_pseudo_mercator( +PJ PROJ_DLL *proj_obj_create_conversion_popular_visualisation_pseudo_mercator( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -707,7 +707,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_popular_visualisation_pseudo_mercato const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_mollweide( +PJ PROJ_DLL *proj_obj_create_conversion_mollweide( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -715,7 +715,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_mollweide( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_new_zealand_mapping_grid( +PJ PROJ_DLL *proj_obj_create_conversion_new_zealand_mapping_grid( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -724,7 +724,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_new_zealand_mapping_grid( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_oblique_stereographic( +PJ PROJ_DLL *proj_obj_create_conversion_oblique_stereographic( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -734,7 +734,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_oblique_stereographic( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_orthographic( +PJ PROJ_DLL *proj_obj_create_conversion_orthographic( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -743,7 +743,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_orthographic( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_american_polyconic( +PJ PROJ_DLL *proj_obj_create_conversion_american_polyconic( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -752,7 +752,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_american_polyconic( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_polar_stereographic_variant_a( +PJ PROJ_DLL *proj_obj_create_conversion_polar_stereographic_variant_a( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -762,7 +762,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_polar_stereographic_variant_a( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_polar_stereographic_variant_b( +PJ PROJ_DLL *proj_obj_create_conversion_polar_stereographic_variant_b( PJ_CONTEXT *ctx, double latitude_standard_parallel, double longitude_of_origin, @@ -771,7 +771,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_polar_stereographic_variant_b( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_robinson( +PJ PROJ_DLL *proj_obj_create_conversion_robinson( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -779,7 +779,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_robinson( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_sinusoidal( +PJ PROJ_DLL *proj_obj_create_conversion_sinusoidal( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -787,7 +787,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_sinusoidal( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_stereographic( +PJ PROJ_DLL *proj_obj_create_conversion_stereographic( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -797,7 +797,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_stereographic( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_van_der_grinten( +PJ PROJ_DLL *proj_obj_create_conversion_van_der_grinten( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -805,7 +805,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_van_der_grinten( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_i( +PJ PROJ_DLL *proj_obj_create_conversion_wagner_i( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -813,7 +813,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_i( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_ii( +PJ PROJ_DLL *proj_obj_create_conversion_wagner_ii( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -821,7 +821,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_ii( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_iii( +PJ PROJ_DLL *proj_obj_create_conversion_wagner_iii( PJ_CONTEXT *ctx, double latitude_true_scale, double center_long, @@ -830,7 +830,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_iii( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_iv( +PJ PROJ_DLL *proj_obj_create_conversion_wagner_iv( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -838,7 +838,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_iv( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_v( +PJ PROJ_DLL *proj_obj_create_conversion_wagner_v( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -846,7 +846,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_v( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_vi( +PJ PROJ_DLL *proj_obj_create_conversion_wagner_vi( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -854,7 +854,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_vi( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_vii( +PJ PROJ_DLL *proj_obj_create_conversion_wagner_vii( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -862,7 +862,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_wagner_vii( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_quadrilateralized_spherical_cube( +PJ PROJ_DLL *proj_obj_create_conversion_quadrilateralized_spherical_cube( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -871,7 +871,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_quadrilateralized_spherical_cube( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_spherical_cross_track_height( +PJ PROJ_DLL *proj_obj_create_conversion_spherical_cross_track_height( PJ_CONTEXT *ctx, double peg_point_lat, double peg_point_long, @@ -880,7 +880,7 @@ PJ_OBJ PROJ_DLL *proj_obj_create_conversion_spherical_cross_track_height( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ_OBJ PROJ_DLL *proj_obj_create_conversion_equal_earth( +PJ PROJ_DLL *proj_obj_create_conversion_equal_earth( PJ_CONTEXT *ctx, double center_long, double false_easting, diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp index 39b582bb..195fa437 100644 --- a/test/unit/test_c_api.cpp +++ b/test/unit/test_c_api.cpp @@ -28,6 +28,8 @@ #include "gtest_include.h" +#include + #include "proj.h" #include "proj_constants.h" #include "proj_experimental.h" @@ -116,9 +118,9 @@ class CApi : public ::testing::Test { PJ_CONTEXT *m_ctxt = nullptr; struct ObjectKeeper { - PJ_OBJ *m_obj = nullptr; - explicit ObjectKeeper(PJ_OBJ *obj) : m_obj(obj) {} - ~ObjectKeeper() { proj_obj_destroy(m_obj); } + PJ *m_obj = nullptr; + explicit ObjectKeeper(PJ *obj) : m_obj(obj) {} + ~ObjectKeeper() { proj_destroy(m_obj); } ObjectKeeper(const ObjectKeeper &) = delete; ObjectKeeper &operator=(const ObjectKeeper &) = delete; @@ -147,7 +149,7 @@ class CApi : public ::testing::Test { // --------------------------------------------------------------------------- TEST_F(CApi, proj_obj_create_from_user_input) { - proj_obj_destroy(nullptr); + proj_destroy(nullptr); EXPECT_EQ(proj_obj_create_from_user_input(m_ctxt, "invalid", nullptr), nullptr); { @@ -158,6 +160,25 @@ TEST_F(CApi, proj_obj_create_from_user_input) { nullptr); ObjectKeeper keeper(obj); EXPECT_NE(obj, nullptr); + + // Check that functions that operate on 'non-C++' PJ don't crash + PJ_COORD coord; + coord.xyzt.x = 0; + coord.xyzt.y = 0; + coord.xyzt.z = 0; + coord.xyzt.t = 0; + EXPECT_EQ(proj_trans (obj, PJ_FWD, coord).xyzt.x, + std::numeric_limits::infinity()); + + EXPECT_EQ(proj_geod(obj, coord, coord).xyzt.x, + std::numeric_limits::infinity()); + EXPECT_EQ(proj_lp_dist(obj, coord, coord), + std::numeric_limits::infinity()); + auto info = proj_pj_info(obj); + ASSERT_EQ(info.id, nullptr); + ASSERT_NE(info.description, nullptr); + ASSERT_NE(info.definition, nullptr); + EXPECT_EQ(info.definition, std::string("")); } { auto obj = @@ -170,7 +191,7 @@ TEST_F(CApi, proj_obj_create_from_user_input) { // --------------------------------------------------------------------------- TEST_F(CApi, proj_obj_create_from_wkt) { - proj_obj_destroy(nullptr); + { EXPECT_EQ(proj_obj_create_from_wkt(m_ctxt, "invalid", nullptr, nullptr, nullptr), @@ -298,7 +319,7 @@ TEST_F(CApi, proj_obj_create_from_wkt) { // --------------------------------------------------------------------------- TEST_F(CApi, proj_obj_create_from_proj_string) { - proj_obj_destroy(nullptr); + EXPECT_EQ(proj_obj_create_from_proj_string(m_ctxt, "invalid", nullptr), nullptr); auto obj = -- cgit v1.2.3 From 9bb2d68766c5cc064352cc89045447949e090508 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 26 Dec 2018 12:51:24 +0100 Subject: projects.h: remove #ifdef __cpluplus test since it must now be included from C++ file due to C++ objects in struct PJconsts --- src/apply_gridshift.cpp | 1 + src/datum_set.cpp | 1 + src/deriv.cpp | 1 + src/gridcatalog.cpp | 1 + src/nad_cvt.cpp | 1 + src/nad_intr.cpp | 1 + src/projects.h | 18 +++++------------- 7 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/apply_gridshift.cpp b/src/apply_gridshift.cpp index 4c8115cc..da02b6b2 100644 --- a/src/apply_gridshift.cpp +++ b/src/apply_gridshift.cpp @@ -35,6 +35,7 @@ #include #include "proj_internal.h" +#include "proj.h" #include "projects.h" /************************************************************************/ diff --git a/src/datum_set.cpp b/src/datum_set.cpp index c9dfdb80..7fca783f 100644 --- a/src/datum_set.cpp +++ b/src/datum_set.cpp @@ -28,6 +28,7 @@ #include #include +#include "proj.h" #include "projects.h" /* SEC_TO_RAD = Pi/180/3600 */ diff --git a/src/deriv.cpp b/src/deriv.cpp index 0e285265..72a69440 100644 --- a/src/deriv.cpp +++ b/src/deriv.cpp @@ -3,6 +3,7 @@ #include +#include "proj.h" #include "projects.h" int pj_deriv(LP lp, double h, const PJ *P, struct DERIVS *der) { diff --git a/src/gridcatalog.cpp b/src/gridcatalog.cpp index fef2df56..8fb90efa 100644 --- a/src/gridcatalog.cpp +++ b/src/gridcatalog.cpp @@ -32,6 +32,7 @@ #include #include +#include "proj.h" #include "projects.h" static PJ_GridCatalog *grid_catalog_list = nullptr; diff --git a/src/nad_cvt.cpp b/src/nad_cvt.cpp index ec4a2b47..c0e67943 100644 --- a/src/nad_cvt.cpp +++ b/src/nad_cvt.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" #include "proj_math.h" diff --git a/src/nad_intr.cpp b/src/nad_intr.cpp index 1f9d1e0c..b5f61db7 100644 --- a/src/nad_intr.cpp +++ b/src/nad_intr.cpp @@ -2,6 +2,7 @@ #define PJ_LIB__ #include "proj_internal.h" #include "proj_math.h" +#include "proj.h" #include "projects.h" LP diff --git a/src/projects.h b/src/projects.h index 4be56d8a..768b1c1d 100644 --- a/src/projects.h +++ b/src/projects.h @@ -29,6 +29,10 @@ #ifndef PROJECTS_H #define PROJECTS_H +#ifndef __cplusplus +#error "projects.h can only be included from a C++ file" +#endif + #ifndef ACCEPT_USE_OF_DEPRECATED_PROJ_API_H #define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H #endif @@ -74,14 +78,8 @@ #endif #endif -#ifdef __cplusplus #define C_NAMESPACE extern "C" #define C_NAMESPACE_VAR extern "C" -extern "C" { -#else -#define C_NAMESPACE extern -#define C_NAMESPACE_VAR -#endif #ifndef NULL # define NULL 0 @@ -630,7 +628,7 @@ struct projCtx_t { /* Generate pj_list external or make list from include file */ #ifndef PJ_DATUMS__ -extern struct PJ_DATUMS pj_datums[]; +C_NAMESPACE_VAR struct PJ_DATUMS pj_datums[]; #endif @@ -846,8 +844,6 @@ void *pj_gauss_ini(double, double, double *,double *); LP pj_gauss(projCtx, LP, const void *); LP pj_inv_gauss(projCtx, LP, const void *); -extern char const PROJ_DLL pj_release[]; - struct PJ_DATUMS PROJ_DLL *pj_get_datums_ref( void ); PJ *pj_new(void); @@ -859,10 +855,6 @@ void pj_freeup_plain (PJ *P); projPJ pj_init_ctx_with_allow_init_epsg( projCtx ctx, int argc, char **argv, int allow_init_epsg ); -#ifdef __cplusplus -} -#endif - #ifndef PROJECTS_H_ATEND #define PROJECTS_H_ATEND #endif -- cgit v1.2.3 From c9b32000d5fc12705bea92e6509fbedb37193012 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 26 Dec 2018 13:42:46 +0100 Subject: Make ISO-19111 objects of type CoordinateOperation directly usable with proj_trans() and similar methods --- src/4D_api.cpp | 32 ++++- src/iso19111/c_api.cpp | 339 +++++++++++++++++++++++++---------------------- test/unit/test_c_api.cpp | 59 ++++++++- 3 files changed, 262 insertions(+), 168 deletions(-) diff --git a/src/4D_api.cpp b/src/4D_api.cpp index 96d76ad8..43ffe72c 100644 --- a/src/4D_api.cpp +++ b/src/4D_api.cpp @@ -42,6 +42,9 @@ #include "projects.h" #include "geodesic.h" +#include "proj/common.hpp" +#include "proj/coordinateoperation.hpp" + /* Initialize PJ_COORD struct */ PJ_COORD proj_coord (double x, double y, double z, double t) { @@ -1070,9 +1073,6 @@ PJ_PROJ_INFO proj_pj_info(PJ *P) { memset(&pjinfo, 0, sizeof(PJ_PROJ_INFO)); - /* Expected accuracy of the transformation. Hardcoded for now, will be improved */ - /* later. Most likely to be used when a transformation is set up with */ - /* proj_create_crs_to_crs in a future version that leverages the EPSG database. */ pjinfo.accuracy = -1.0; if (nullptr==P) @@ -1082,8 +1082,30 @@ PJ_PROJ_INFO proj_pj_info(PJ *P) { if (pj_param(P->ctx, P->params, "tproj").i) pjinfo.id = pj_param(P->ctx, P->params, "sproj").s; - /* projection description */ - pjinfo.description = P->descr; + /* coordinate operation description */ + if( P->iso_obj ) { + pjinfo.description = P->iso_obj->nameStr().c_str(); + } else { + pjinfo.description = P->descr; + } + + // accuracy + if( P->iso_obj ) { + auto conv = dynamic_cast(P->iso_obj.get()); + if( conv ) { + pjinfo.accuracy = 0.0; + } else { + auto op = dynamic_cast(P->iso_obj.get()); + if( op ) { + const auto& accuracies = op->coordinateOperationAccuracies(); + if( !accuracies.empty() ) { + try { + pjinfo.accuracy = std::stod(accuracies[0]->value()); + } catch ( const std::exception& ) {} + } + } + } + } /* projection definition */ if (P->def_full) diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index 150b9f1b..0fe0c247 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -90,32 +90,6 @@ static void PROJ_NO_INLINE proj_log_debug(PJ_CONTEXT *ctx, const char *function, // --------------------------------------------------------------------------- -//! @cond Doxygen_Suppress -static PJ *pj_obj_create(const IdentifiedObjectNNPtr &objIn) { - auto pj = new PJ(); - pj->descr = "ISO-19111 object"; - pj->iso_obj = objIn; - return pj; -} -//! @endcond - -// --------------------------------------------------------------------------- - -/** \brief Opaque object representing a set of operation results. */ -struct PJ_OBJ_LIST { - //! @cond Doxygen_Suppress - std::vector objects; - - explicit PJ_OBJ_LIST(std::vector &&objectsIn) - : objects(std::move(objectsIn)) {} - - PJ_OBJ_LIST(const PJ_OBJ_LIST &) = delete; - PJ_OBJ_LIST &operator=(const PJ_OBJ_LIST &) = delete; - //! @endcond -}; - -// --------------------------------------------------------------------------- - //! @cond Doxygen_Suppress /** Auxiliary structure to PJ_CONTEXT storing C++ context stuff. */ @@ -151,15 +125,6 @@ void proj_context_delete_cpp_context(struct projCppContext *cppContext) { //! @cond Doxygen_Suppress -#define SANITIZE_CTX(ctx) \ - do { \ - if (ctx == nullptr) { \ - ctx = pj_get_default_ctx(); \ - } \ - } while (0) - -// --------------------------------------------------------------------------- - static PROJ_NO_INLINE const DatabaseContextNNPtr & getDBcontext(PJ_CONTEXT *ctx) { if (ctx->cpp_context == nullptr) { @@ -179,6 +144,57 @@ getDBcontextNoException(PJ_CONTEXT *ctx, const char *function) { return nullptr; } } +// --------------------------------------------------------------------------- + +static PJ *pj_obj_create(PJ_CONTEXT *ctx, const IdentifiedObjectNNPtr &objIn) { + auto coordop = dynamic_cast(objIn.get()); + if( coordop ) { + auto dbContext = getDBcontextNoException(ctx, __FUNCTION__); + try { + auto formatter = PROJStringFormatter::create( + PROJStringFormatter::Convention::PROJ_5, dbContext); + auto pj = proj_create(ctx, + coordop->exportToPROJString(formatter.get()).c_str()); + if( pj ) { + pj->iso_obj = objIn; + return pj; + } + } catch (const std::exception &e) { + proj_log_debug(ctx, __FUNCTION__, e.what()); + } + } + auto pj = new PJ(); + pj->descr = "ISO-19111 object"; + pj->iso_obj = objIn; + return pj; +} +//! @endcond + +// --------------------------------------------------------------------------- + +/** \brief Opaque object representing a set of operation results. */ +struct PJ_OBJ_LIST { + //! @cond Doxygen_Suppress + std::vector objects; + + explicit PJ_OBJ_LIST(std::vector &&objectsIn) + : objects(std::move(objectsIn)) {} + + PJ_OBJ_LIST(const PJ_OBJ_LIST &) = delete; + PJ_OBJ_LIST &operator=(const PJ_OBJ_LIST &) = delete; + //! @endcond +}; + +// --------------------------------------------------------------------------- + +//! @cond Doxygen_Suppress + +#define SANITIZE_CTX(ctx) \ + do { \ + if (ctx == nullptr) { \ + ctx = pj_get_default_ctx(); \ + } \ + } while (0) //! @endcond @@ -312,7 +328,7 @@ PJ *proj_obj_clone(PJ_CONTEXT *ctx, const PJ *obj) { return nullptr; } try { - return pj_obj_create(NN_NO_CHECK(obj->iso_obj)); + return pj_obj_create(ctx, NN_NO_CHECK(obj->iso_obj)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -368,7 +384,7 @@ PJ *proj_obj_create_from_user_input(PJ_CONTEXT *ctx, const char *text, auto identifiedObject = nn_dynamic_pointer_cast( createFromUserInput(text, dbContext, usePROJ4InitRules)); if (identifiedObject) { - return pj_obj_create(NN_NO_CHECK(identifiedObject)); + return pj_obj_create(ctx, NN_NO_CHECK(identifiedObject)); } } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -487,7 +503,7 @@ PJ *proj_obj_create_from_wkt(PJ_CONTEXT *ctx, const char *wkt, } if (obj) { - return pj_obj_create(NN_NO_CHECK(obj)); + return pj_obj_create(ctx, NN_NO_CHECK(obj)); } } catch (const std::exception &e) { if (out_grammar_errors) { @@ -534,7 +550,7 @@ PJ *proj_obj_create_from_proj_string(PJ_CONTEXT *ctx, auto identifiedObject = nn_dynamic_pointer_cast( parser.createFromPROJString(proj_string)); if (identifiedObject) { - return pj_obj_create(NN_NO_CHECK(identifiedObject)); + return pj_obj_create(ctx, NN_NO_CHECK(identifiedObject)); } } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -594,7 +610,7 @@ PJ *proj_obj_create_from_database(PJ_CONTEXT *ctx, const char *auth_name, .as_nullable(); break; } - return pj_obj_create(NN_NO_CHECK(obj)); + return pj_obj_create(ctx, NN_NO_CHECK(obj)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -1436,7 +1452,7 @@ PJ *proj_obj_crs_get_geodetic_crs(PJ_CONTEXT *ctx, const PJ *crs) { if (!geodCRS) { return nullptr; } - return pj_obj_create(NN_NO_CHECK(nn_dynamic_pointer_cast( + return pj_obj_create(ctx, NN_NO_CHECK(nn_dynamic_pointer_cast( geodCRS->shared_from_this()))); } @@ -1468,7 +1484,7 @@ PJ *proj_obj_crs_get_sub_crs(PJ_CONTEXT *ctx, const PJ *crs, if (static_cast(index) >= components.size()) { return nullptr; } - return pj_obj_create(components[index]); + return pj_obj_create(ctx, components[index]); } // --------------------------------------------------------------------------- @@ -1510,7 +1526,7 @@ PJ *proj_obj_crs_create_bound_crs(PJ_CONTEXT *ctx, const PJ *base_crs, return nullptr; } try { - return pj_obj_create(BoundCRS::create(NN_NO_CHECK(l_base_crs), + return pj_obj_create(ctx, BoundCRS::create(NN_NO_CHECK(l_base_crs), NN_NO_CHECK(l_hub_crs), NN_NO_CHECK(l_transformation))); } catch (const std::exception &e) { @@ -1567,7 +1583,7 @@ PJ *proj_obj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, return nullptr; } } - return pj_obj_create(l_crs->createBoundCRSToWGS84IfPossible( + return pj_obj_create(ctx, l_crs->createBoundCRSToWGS84IfPossible( dbContext, allowIntermediateCRS)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -1594,12 +1610,12 @@ PJ *proj_obj_get_ellipsoid(PJ_CONTEXT *ctx, const PJ *obj) { if (dynamic_cast(ptr)) { auto geodCRS = extractGeodeticCRS(ctx, obj, __FUNCTION__); if (geodCRS) { - return pj_obj_create(geodCRS->ellipsoid()); + return pj_obj_create(ctx, geodCRS->ellipsoid()); } } else { auto datum = dynamic_cast(ptr); if (datum) { - return pj_obj_create(datum->ellipsoid()); + return pj_obj_create(ctx, datum->ellipsoid()); } } proj_log_error(ctx, __FUNCTION__, @@ -1628,12 +1644,12 @@ PJ *proj_obj_crs_get_horizontal_datum(PJ_CONTEXT *ctx, const PJ *crs) { } const auto &datum = geodCRS->datum(); if (datum) { - return pj_obj_create(NN_NO_CHECK(datum)); + return pj_obj_create(ctx, NN_NO_CHECK(datum)); } const auto &datumEnsemble = geodCRS->datumEnsemble(); if (datumEnsemble) { - return pj_obj_create(NN_NO_CHECK(datumEnsemble)); + return pj_obj_create(ctx, NN_NO_CHECK(datumEnsemble)); } proj_log_error(ctx, __FUNCTION__, "CRS has no datum"); return nullptr; @@ -1709,12 +1725,12 @@ PJ *proj_obj_get_prime_meridian(PJ_CONTEXT *ctx, const PJ *obj) { if (dynamic_cast(ptr)) { auto geodCRS = extractGeodeticCRS(ctx, obj, __FUNCTION__); if (geodCRS) { - return pj_obj_create(geodCRS->primeMeridian()); + return pj_obj_create(ctx, geodCRS->primeMeridian()); } } else { auto datum = dynamic_cast(ptr); if (datum) { - return pj_obj_create(datum->primeMeridian()); + return pj_obj_create(ctx, datum->primeMeridian()); } } proj_log_error(ctx, __FUNCTION__, @@ -1782,17 +1798,17 @@ PJ *proj_obj_get_source_crs(PJ_CONTEXT *ctx, const PJ *obj) { auto ptr = obj->iso_obj.get(); auto boundCRS = dynamic_cast(ptr); if (boundCRS) { - return pj_obj_create(boundCRS->baseCRS()); + return pj_obj_create(ctx, boundCRS->baseCRS()); } auto derivedCRS = dynamic_cast(ptr); if (derivedCRS) { - return pj_obj_create(derivedCRS->baseCRS()); + return pj_obj_create(ctx, derivedCRS->baseCRS()); } auto co = dynamic_cast(ptr); if (co) { auto sourceCRS = co->sourceCRS(); if (sourceCRS) { - return pj_obj_create(NN_NO_CHECK(sourceCRS)); + return pj_obj_create(ctx, NN_NO_CHECK(sourceCRS)); } return nullptr; } @@ -1821,13 +1837,13 @@ PJ *proj_obj_get_target_crs(PJ_CONTEXT *ctx, const PJ *obj) { auto ptr = obj->iso_obj.get(); auto boundCRS = dynamic_cast(ptr); if (boundCRS) { - return pj_obj_create(boundCRS->hubCRS()); + return pj_obj_create(ctx, boundCRS->hubCRS()); } auto co = dynamic_cast(ptr); if (co) { auto targetCRS = co->targetCRS(); if (targetCRS) { - return pj_obj_create(NN_NO_CHECK(targetCRS)); + return pj_obj_create(ctx, NN_NO_CHECK(targetCRS)); } return nullptr; } @@ -2024,7 +2040,7 @@ PJ *proj_obj_crs_get_coordoperation(PJ_CONTEXT *ctx, const PJ *crs) { } } - return pj_obj_create(NN_NO_CHECK(co)); + return pj_obj_create(ctx, NN_NO_CHECK(co)); } // --------------------------------------------------------------------------- @@ -2238,7 +2254,7 @@ PJ *proj_obj_create_geographic_crs( pm_angular_units_conv); auto geogCRS = GeographicCRS::create(createPropertyMapName(crs_name), datum, NN_NO_CHECK(cs)); - return pj_obj_create(geogCRS); + return pj_obj_create(ctx, geogCRS); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2282,7 +2298,7 @@ PJ *proj_obj_create_geographic_crs_from_datum(PJ_CONTEXT *ctx, auto geogCRS = GeographicCRS::create(createPropertyMapName(crs_name), NN_NO_CHECK(l_datum), NN_NO_CHECK(cs)); - return pj_obj_create(geogCRS); + return pj_obj_create(ctx, geogCRS); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2336,7 +2352,7 @@ PJ *proj_obj_create_geocentric_crs( auto geodCRS = GeodeticCRS::create(createPropertyMapName(crs_name), datum, cs::CartesianCS::createGeocentric(linearUnit)); - return pj_obj_create(geodCRS); + return pj_obj_create(ctx, geodCRS); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2380,7 +2396,7 @@ PJ *proj_obj_create_geocentric_crs_from_datum(PJ_CONTEXT *ctx, auto geodCRS = GeodeticCRS::create( createPropertyMapName(crs_name), NN_NO_CHECK(l_datum), cs::CartesianCS::createGeocentric(linearUnit)); - return pj_obj_create(geodCRS); + return pj_obj_create(ctx, geodCRS); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2419,7 +2435,7 @@ PJ *proj_obj_create_vertical_crs(PJ_CONTEXT *ctx, const char *crs_name, auto vertCRS = VerticalCRS::create( createPropertyMapName(crs_name), datum, cs::VerticalCS::createGravityRelatedHeight(linearUnit)); - return pj_obj_create(vertCRS); + return pj_obj_create(ctx, vertCRS); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2460,7 +2476,7 @@ PJ *proj_obj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name, auto compoundCRS = CompoundCRS::create( createPropertyMapName(crs_name), {NN_NO_CHECK(l_horiz_crs), NN_NO_CHECK(l_vert_crs)}); - return pj_obj_create(compoundCRS); + return pj_obj_create(ctx, compoundCRS); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2492,7 +2508,7 @@ PJ PROJ_DLL *proj_obj_alter_name(PJ_CONTEXT *ctx, const PJ *obj, return nullptr; } try { - return pj_obj_create(crs->alterName(name)); + return pj_obj_create(ctx, crs->alterName(name)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2525,7 +2541,7 @@ PJ PROJ_DLL *proj_obj_alter_id(PJ_CONTEXT *ctx, const PJ *obj, return nullptr; } try { - return pj_obj_create(crs->alterId(auth_name, code)); + return pj_obj_create(ctx, crs->alterId(auth_name, code)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -2570,7 +2586,7 @@ PJ *proj_obj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, const PJ *obj, } try { - return pj_obj_create( + return pj_obj_create(ctx, crs->alterGeodeticCRS(NN_NO_CHECK(l_new_geod_crs))); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -2620,7 +2636,7 @@ PJ *proj_obj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, const PJ *obj, try { const UnitOfMeasure angUnit(createAngularUnit( angular_units, angular_units_conv, unit_auth_name, unit_code)); - geogCRSAltered = pj_obj_create(GeographicCRS::create( + geogCRSAltered = pj_obj_create(ctx, GeographicCRS::create( createPropertyMapName(proj_obj_get_name(geodCRS)), geogCRS->datum(), geogCRS->datumEnsemble(), geogCRS->coordinateSystem()->alterAngularUnit(angUnit))); @@ -2672,7 +2688,7 @@ PJ *proj_obj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, const PJ *obj, try { const UnitOfMeasure linearUnit(createLinearUnit( linear_units, linear_units_conv, unit_auth_name, unit_code)); - return pj_obj_create(crs->alterCSLinearUnit(linearUnit)); + return pj_obj_create(ctx, crs->alterCSLinearUnit(linearUnit)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); return nullptr; @@ -2718,7 +2734,7 @@ PJ *proj_obj_crs_alter_parameters_linear_unit( try { const UnitOfMeasure linearUnit(createLinearUnit( linear_units, linear_units_conv, unit_auth_name, unit_code)); - return pj_obj_create(crs->alterParametersLinearUnit( + return pj_obj_create(ctx, crs->alterParametersLinearUnit( linearUnit, convert_to_new_unit == TRUE)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -2744,7 +2760,7 @@ PJ PROJ_DLL *proj_obj_create_engineering_crs(PJ_CONTEXT *ctx, const char *crs_name) { SANITIZE_CTX(ctx); try { - return pj_obj_create(EngineeringCRS::create( + return pj_obj_create(ctx, EngineeringCRS::create( createPropertyMapName(crs_name), EngineeringDatum::create(PropertyMap()), CartesianCS::createEastingNorthing(UnitOfMeasure::METRE))); @@ -2864,7 +2880,7 @@ PJ *proj_obj_create_conversion(PJ_CONTEXT *ctx, const char *name, name, auth_name, code, method_name, method_auth_name, method_code, param_count, params, propSingleOp, propMethod, parameters, values); - return pj_obj_create( + return pj_obj_create(ctx, Conversion::create(propSingleOp, propMethod, parameters, values)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -2950,7 +2966,7 @@ PJ *proj_obj_create_transformation( PositionalAccuracy::create(toString(accuracy))); } - return pj_obj_create(Transformation::create( + return pj_obj_create(ctx, Transformation::create( propSingleOp, NN_NO_CHECK(l_sourceCRS), NN_NO_CHECK(l_targetCRS), l_interpolationCRS, propMethod, parameters, values, accuracies)); } catch (const std::exception &e) { @@ -3018,7 +3034,7 @@ PJ *proj_obj_convert_conversion_to_other_method( auto new_conv = conv->convertToOtherMethod(new_method_epsg_code); if (!new_conv) return nullptr; - return pj_obj_create(NN_NO_CHECK(new_conv)); + return pj_obj_create(ctx, NN_NO_CHECK(new_conv)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); return nullptr; @@ -3093,10 +3109,10 @@ PJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_CARTESIAN: { if (axis_count == 2) { - return pj_obj_create(CartesianCS::create( + return pj_obj_create(ctx, CartesianCS::create( PropertyMap(), createAxis(axis[0]), createAxis(axis[1]))); } else if (axis_count == 3) { - return pj_obj_create(CartesianCS::create( + return pj_obj_create(ctx, CartesianCS::create( PropertyMap(), createAxis(axis[0]), createAxis(axis[1]), createAxis(axis[2]))); } @@ -3105,10 +3121,10 @@ PJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_ELLIPSOIDAL: { if (axis_count == 2) { - return pj_obj_create(EllipsoidalCS::create( + return pj_obj_create(ctx, EllipsoidalCS::create( PropertyMap(), createAxis(axis[0]), createAxis(axis[1]))); } else if (axis_count == 3) { - return pj_obj_create(EllipsoidalCS::create( + return pj_obj_create(ctx, EllipsoidalCS::create( PropertyMap(), createAxis(axis[0]), createAxis(axis[1]), createAxis(axis[2]))); } @@ -3117,7 +3133,7 @@ PJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_VERTICAL: { if (axis_count == 1) { - return pj_obj_create( + return pj_obj_create(ctx, VerticalCS::create(PropertyMap(), createAxis(axis[0]))); } break; @@ -3125,7 +3141,7 @@ PJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_SPHERICAL: { if (axis_count == 3) { - return pj_obj_create(EllipsoidalCS::create( + return pj_obj_create(ctx, EllipsoidalCS::create( PropertyMap(), createAxis(axis[0]), createAxis(axis[1]), createAxis(axis[2]))); } @@ -3134,7 +3150,7 @@ PJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_PARAMETRIC: { if (axis_count == 1) { - return pj_obj_create( + return pj_obj_create(ctx, ParametricCS::create(PropertyMap(), createAxis(axis[0]))); } break; @@ -3146,12 +3162,12 @@ PJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, axisVector.emplace_back(createAxis(axis[i])); } - return pj_obj_create(OrdinalCS::create(PropertyMap(), axisVector)); + return pj_obj_create(ctx, OrdinalCS::create(PropertyMap(), axisVector)); } case PJ_CS_TYPE_DATETIMETEMPORAL: { if (axis_count == 1) { - return pj_obj_create(DateTimeTemporalCS::create( + return pj_obj_create(ctx, DateTimeTemporalCS::create( PropertyMap(), createAxis(axis[0]))); } break; @@ -3159,7 +3175,7 @@ PJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_TEMPORALCOUNT: { if (axis_count == 1) { - return pj_obj_create(TemporalCountCS::create( + return pj_obj_create(ctx, TemporalCountCS::create( PropertyMap(), createAxis(axis[0]))); } break; @@ -3167,7 +3183,7 @@ PJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_TEMPORALMEASURE: { if (axis_count == 1) { - return pj_obj_create(TemporalMeasureCS::create( + return pj_obj_create(ctx, TemporalMeasureCS::create( PropertyMap(), createAxis(axis[0]))); } break; @@ -3206,25 +3222,25 @@ PJ *proj_obj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, try { switch (type) { case PJ_CART2D_EASTING_NORTHING: - return pj_obj_create(CartesianCS::createEastingNorthing( + return pj_obj_create(ctx, CartesianCS::createEastingNorthing( createLinearUnit(unit_name, unit_conv_factor))); case PJ_CART2D_NORTHING_EASTING: - return pj_obj_create(CartesianCS::createNorthingEasting( + return pj_obj_create(ctx, CartesianCS::createNorthingEasting( createLinearUnit(unit_name, unit_conv_factor))); case PJ_CART2D_NORTH_POLE_EASTING_SOUTH_NORTHING_SOUTH: - return pj_obj_create( + return pj_obj_create(ctx, CartesianCS::createNorthPoleEastingSouthNorthingSouth( createLinearUnit(unit_name, unit_conv_factor))); case PJ_CART2D_SOUTH_POLE_EASTING_NORTH_NORTHING_NORTH: - return pj_obj_create( + return pj_obj_create(ctx, CartesianCS::createSouthPoleEastingNorthNorthingNorth( createLinearUnit(unit_name, unit_conv_factor))); case PJ_CART2D_WESTING_SOUTHING: - return pj_obj_create(CartesianCS::createWestingSouthing( + return pj_obj_create(ctx, CartesianCS::createWestingSouthing( createLinearUnit(unit_name, unit_conv_factor))); } } catch (const std::exception &e) { @@ -3257,11 +3273,11 @@ PJ *proj_obj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, try { switch (type) { case PJ_ELLPS2D_LONGITUDE_LATITUDE: - return pj_obj_create(EllipsoidalCS::createLongitudeLatitude( + return pj_obj_create(ctx, EllipsoidalCS::createLongitudeLatitude( createAngularUnit(unit_name, unit_conv_factor))); case PJ_ELLPS2D_LATITUDE_LONGITUDE: - return pj_obj_create(EllipsoidalCS::createLatitudeLongitude( + return pj_obj_create(ctx, EllipsoidalCS::createLatitudeLongitude( createAngularUnit(unit_name, unit_conv_factor))); } } catch (const std::exception &e) { @@ -3308,7 +3324,7 @@ PJ *proj_obj_create_projected_crs(PJ_CONTEXT *ctx, const char *crs_name, return nullptr; } try { - return pj_obj_create(ProjectedCRS::create( + return pj_obj_create(ctx, ProjectedCRS::create( createPropertyMapName(crs_name), NN_NO_CHECK(geodCRS), NN_NO_CHECK(conv), NN_NO_CHECK(cs))); } catch (const std::exception &e) { @@ -3321,8 +3337,9 @@ PJ *proj_obj_create_projected_crs(PJ_CONTEXT *ctx, const char *crs_name, //! @cond Doxygen_Suppress -static PJ *proj_obj_create_conversion(const ConversionNNPtr &conv) { - return pj_obj_create(conv); +static PJ *proj_obj_create_conversion(PJ_CONTEXT* ctx, + const ConversionNNPtr &conv) { + return pj_obj_create(ctx, conv); } //! @endcond @@ -3343,7 +3360,7 @@ PJ *proj_obj_create_conversion_utm(PJ_CONTEXT *ctx, int zone, int north) { SANITIZE_CTX(ctx); try { auto conv = Conversion::createUTM(PropertyMap(), zone, north != 0); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3376,7 +3393,7 @@ PJ *proj_obj_create_conversion_transverse_mercator( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3410,7 +3427,7 @@ PJ *proj_obj_create_conversion_gauss_schreiber_transverse_mercator( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3444,7 +3461,7 @@ PJ *proj_obj_create_conversion_transverse_mercator_south_oriented( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3480,7 +3497,7 @@ PJ *proj_obj_create_conversion_two_point_equidistant( Angle(longitude_secon_point, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3512,7 +3529,7 @@ PJ *proj_obj_create_conversion_tunisia_mapping_grid( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3549,7 +3566,7 @@ PJ *proj_obj_create_conversion_albers_equal_area( Angle(latitude_second_parallel, angUnit), Length(easting_false_origin, linearUnit), Length(northing_false_origin, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3582,7 +3599,7 @@ PJ *proj_obj_create_conversion_lambert_conic_conformal_1sp( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3619,7 +3636,7 @@ PJ *proj_obj_create_conversion_lambert_conic_conformal_2sp( Angle(latitude_second_parallel, angUnit), Length(easting_false_origin, linearUnit), Length(northing_false_origin, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3658,7 +3675,7 @@ PJ *proj_obj_create_conversion_lambert_conic_conformal_2sp_michigan( Length(easting_false_origin, linearUnit), Length(northing_false_origin, linearUnit), Scale(ellipsoid_scaling_factor)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3696,7 +3713,7 @@ PJ *proj_obj_create_conversion_lambert_conic_conformal_2sp_belgium( Angle(latitude_second_parallel, angUnit), Length(easting_false_origin, linearUnit), Length(northing_false_origin, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3729,7 +3746,7 @@ PJ *proj_obj_create_conversion_azimuthal_equidistant( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3762,7 +3779,7 @@ PJ *proj_obj_create_conversion_guam_projection( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3795,7 +3812,7 @@ PJ *proj_obj_create_conversion_bonne( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3829,7 +3846,7 @@ PJ *proj_obj_create_conversion_lambert_cylindrical_equal_area_spherical( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3862,7 +3879,7 @@ PJ *proj_obj_create_conversion_lambert_cylindrical_equal_area( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3894,7 +3911,7 @@ PJ *proj_obj_create_conversion_cassini_soldner( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3930,7 +3947,7 @@ PJ *proj_obj_create_conversion_equidistant_conic( Angle(latitude_second_parallel, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3964,7 +3981,7 @@ PJ *proj_obj_create_conversion_eckert_i(PJ_CONTEXT *ctx, double center_long, PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3996,7 +4013,7 @@ PJ *proj_obj_create_conversion_eckert_ii( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4028,7 +4045,7 @@ PJ *proj_obj_create_conversion_eckert_iii( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4060,7 +4077,7 @@ PJ *proj_obj_create_conversion_eckert_iv( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4094,7 +4111,7 @@ PJ *proj_obj_create_conversion_eckert_v(PJ_CONTEXT *ctx, double center_long, PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4126,7 +4143,7 @@ PJ *proj_obj_create_conversion_eckert_vi( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4159,7 +4176,7 @@ PJ *proj_obj_create_conversion_equidistant_cylindrical( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4193,7 +4210,7 @@ PJ *proj_obj_create_conversion_equidistant_cylindrical_spherical( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4227,7 +4244,7 @@ PJ *proj_obj_create_conversion_gall(PJ_CONTEXT *ctx, double center_long, Conversion::createGall(PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4259,7 +4276,7 @@ PJ *proj_obj_create_conversion_goode_homolosine( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4291,7 +4308,7 @@ PJ *proj_obj_create_conversion_interrupted_goode_homolosine( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4324,7 +4341,7 @@ PJ *proj_obj_create_conversion_geostationary_satellite_sweep_x( PropertyMap(), Angle(center_long, angUnit), Length(height, linearUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4357,7 +4374,7 @@ PJ *proj_obj_create_conversion_geostationary_satellite_sweep_y( PropertyMap(), Angle(center_long, angUnit), Length(height, linearUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4389,7 +4406,7 @@ PJ *proj_obj_create_conversion_gnomonic( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4427,7 +4444,7 @@ PJ *proj_obj_create_conversion_hotine_oblique_mercator_variant_a( Angle(angle_from_rectified_to_skrew_grid, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4465,7 +4482,7 @@ PJ *proj_obj_create_conversion_hotine_oblique_mercator_variant_b( Angle(angle_from_rectified_to_skrew_grid, angUnit), Scale(scale), Length(easting_projection_centre, linearUnit), Length(northing_projection_centre, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4506,7 +4523,7 @@ proj_obj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( Angle(longitude_point2, angUnit), Scale(scale), Length(easting_projection_centre, linearUnit), Length(northing_projection_centre, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4542,7 +4559,7 @@ PJ *proj_obj_create_conversion_laborde_oblique_mercator( Angle(azimuth_initial_line, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4578,7 +4595,7 @@ PJ *proj_obj_create_conversion_international_map_world_polyconic( Angle(latitude_second_parallel, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4617,7 +4634,7 @@ PJ *proj_obj_create_conversion_krovak_north_oriented( Scale(scale_factor_pseudo_standard_parallel), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4656,7 +4673,7 @@ PJ *proj_obj_create_conversion_krovak( Scale(scale_factor_pseudo_standard_parallel), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4689,7 +4706,7 @@ PJ *proj_obj_create_conversion_lambert_azimuthal_equal_area( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4721,7 +4738,7 @@ PJ *proj_obj_create_conversion_miller_cylindrical( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4754,7 +4771,7 @@ PJ *proj_obj_create_conversion_mercator_variant_a( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4786,7 +4803,7 @@ PJ *proj_obj_create_conversion_mercator_variant_b( PropertyMap(), Angle(latitude_first_parallel, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4819,7 +4836,7 @@ PJ *proj_obj_create_conversion_popular_visualisation_pseudo_mercator( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4851,7 +4868,7 @@ PJ *proj_obj_create_conversion_mollweide( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4883,7 +4900,7 @@ PJ *proj_obj_create_conversion_new_zealand_mapping_grid( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4916,7 +4933,7 @@ PJ *proj_obj_create_conversion_oblique_stereographic( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4948,7 +4965,7 @@ PJ *proj_obj_create_conversion_orthographic( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4980,7 +4997,7 @@ PJ *proj_obj_create_conversion_american_polyconic( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5013,7 +5030,7 @@ PJ *proj_obj_create_conversion_polar_stereographic_variant_a( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5046,7 +5063,7 @@ PJ *proj_obj_create_conversion_polar_stereographic_variant_b( Angle(longitude_of_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5080,7 +5097,7 @@ PJ *proj_obj_create_conversion_robinson(PJ_CONTEXT *ctx, double center_long, PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5112,7 +5129,7 @@ PJ *proj_obj_create_conversion_sinusoidal( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5145,7 +5162,7 @@ PJ *proj_obj_create_conversion_stereographic( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5177,7 +5194,7 @@ PJ *proj_obj_create_conversion_van_der_grinten( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5211,7 +5228,7 @@ PJ *proj_obj_create_conversion_wagner_i(PJ_CONTEXT *ctx, double center_long, PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5243,7 +5260,7 @@ PJ *proj_obj_create_conversion_wagner_ii( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5275,7 +5292,7 @@ PJ *proj_obj_create_conversion_wagner_iii( PropertyMap(), Angle(latitude_true_scale, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5307,7 +5324,7 @@ PJ *proj_obj_create_conversion_wagner_iv( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5341,7 +5358,7 @@ PJ *proj_obj_create_conversion_wagner_v(PJ_CONTEXT *ctx, double center_long, PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5373,7 +5390,7 @@ PJ *proj_obj_create_conversion_wagner_vi( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5405,7 +5422,7 @@ PJ *proj_obj_create_conversion_wagner_vii( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5438,7 +5455,7 @@ PJ *proj_obj_create_conversion_quadrilateralized_spherical_cube( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5470,7 +5487,7 @@ PJ *proj_obj_create_conversion_spherical_cross_track_height( PropertyMap(), Angle(peg_point_lat, angUnit), Angle(peg_point_long, angUnit), Angle(peg_point_heading, angUnit), Length(peg_point_height, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5502,7 +5519,7 @@ PJ *proj_obj_create_conversion_equal_earth( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(conv); + return proj_obj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -6309,7 +6326,7 @@ PJ *proj_obj_list_get(PJ_CONTEXT *ctx, const PJ_OBJ_LIST *result, proj_log_error(ctx, __FUNCTION__, "Invalid index"); return nullptr; } - return pj_obj_create(result->objects[index]); + return pj_obj_create(ctx, result->objects[index]); } // --------------------------------------------------------------------------- @@ -6378,7 +6395,7 @@ PJ *proj_obj_crs_get_datum(PJ_CONTEXT *ctx, const PJ *crs) { if (!datum) { return nullptr; } - return pj_obj_create(NN_NO_CHECK(datum)); + return pj_obj_create(ctx, NN_NO_CHECK(datum)); } // --------------------------------------------------------------------------- @@ -6402,7 +6419,7 @@ PJ *proj_obj_crs_get_coordinate_system(PJ_CONTEXT *ctx, const PJ *crs) { proj_log_error(ctx, __FUNCTION__, "Object is not a SingleCRS"); return nullptr; } - return pj_obj_create(l_crs->coordinateSystem()); + return pj_obj_create(ctx, l_crs->coordinateSystem()); } // --------------------------------------------------------------------------- diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp index 195fa437..9807de82 100644 --- a/test/unit/test_c_api.cpp +++ b/test/unit/test_c_api.cpp @@ -167,16 +167,18 @@ TEST_F(CApi, proj_obj_create_from_user_input) { coord.xyzt.y = 0; coord.xyzt.z = 0; coord.xyzt.t = 0; - EXPECT_EQ(proj_trans (obj, PJ_FWD, coord).xyzt.x, + EXPECT_EQ(proj_trans(obj, PJ_FWD, coord).xyzt.x, std::numeric_limits::infinity()); EXPECT_EQ(proj_geod(obj, coord, coord).xyzt.x, std::numeric_limits::infinity()); EXPECT_EQ(proj_lp_dist(obj, coord, coord), std::numeric_limits::infinity()); + auto info = proj_pj_info(obj); - ASSERT_EQ(info.id, nullptr); + EXPECT_EQ(info.id, nullptr); ASSERT_NE(info.description, nullptr); + EXPECT_EQ(info.description, std::string("WGS 84")); ASSERT_NE(info.definition, nullptr); EXPECT_EQ(info.definition, std::string("")); } @@ -828,6 +830,40 @@ TEST_F(CApi, proj_obj_create_from_database) { ASSERT_NE(op, nullptr); ObjectKeeper keeper(op); EXPECT_EQ(proj_obj_get_type(op), PJ_OBJ_TYPE_CONVERSION); + + auto info = proj_pj_info(op); + EXPECT_NE(info.id, nullptr); + EXPECT_EQ(info.id, std::string("utm")); + ASSERT_NE(info.description, nullptr); + EXPECT_EQ(info.description, std::string("UTM zone 31N")); + ASSERT_NE(info.definition, nullptr); + EXPECT_EQ(info.definition, std::string("proj=utm zone=31 ellps=GRS80")); + EXPECT_EQ(info.accuracy, 0); + } + { + auto op = proj_obj_create_from_database( + m_ctxt, "EPSG", "1024", PJ_OBJ_CATEGORY_COORDINATE_OPERATION, false, + nullptr); + ASSERT_NE(op, nullptr); + ObjectKeeper keeper(op); + EXPECT_EQ(proj_obj_get_type(op), PJ_OBJ_TYPE_TRANSFORMATION); + + auto info = proj_pj_info(op); + EXPECT_NE(info.id, nullptr); + EXPECT_EQ(info.id, std::string("pipeline")); + ASSERT_NE(info.description, nullptr); + EXPECT_EQ(info.description, std::string("MGI to ETRS89 (4)")); + ASSERT_NE(info.definition, nullptr); + EXPECT_EQ( + info.definition, + std::string("proj=pipeline step proj=axisswap order=2,1 step " + "proj=unitconvert xy_in=deg xy_out=rad step proj=cart " + "ellps=bessel step proj=helmert x=601.705 y=84.263 " + "z=485.227 rx=-4.7354 ry=-1.3145 rz=-5.393 s=-2.3887 " + "convention=coordinate_frame step inv proj=cart " + "ellps=GRS80 step proj=unitconvert xy_in=rad " + "xy_out=deg step proj=axisswap order=2,1")); + EXPECT_EQ(info.accuracy, 1); } } @@ -1855,6 +1891,25 @@ TEST_F(CApi, proj_obj_create_geocentric_crs) { ASSERT_NE(obj, nullptr); } } + +// --------------------------------------------------------------------------- + +TEST_F(CApi, check_coord_op_obj_can_be_used_with_proj_trans) { + + { + auto projCRS = proj_obj_create_conversion_utm(m_ctxt, 31, true); + ObjectKeeper keeper_projCRS(projCRS); + ASSERT_NE(projCRS, nullptr); + + PJ_COORD coord; + coord.xyzt.x = proj_torad(3.0); + coord.xyzt.y = 0; + coord.xyzt.z = 0; + coord.xyzt.t = 0; + EXPECT_NEAR(proj_trans(projCRS, PJ_FWD, coord).xyzt.x, 500000.0, 1e-9); + } +} + // --------------------------------------------------------------------------- TEST_F(CApi, proj_obj_create_projections) { -- cgit v1.2.3 From 1b1d60e83a20412aeca3e440705df820979af03b Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 26 Dec 2018 14:22:34 +0100 Subject: projects.h: remove deprecated XY, XYZ, LP, LPZ, UV, UVW, projUV and projUVW structures --- src/aasincos.cpp | 1 + src/adjlon.cpp | 2 + src/apply_gridshift.cpp | 12 +++--- src/apply_vgridshift.cpp | 6 +-- src/apps/cs2cs.cpp | 2 +- src/apps/gen_cheb.cpp | 7 ++-- src/apps/geod_interface.cpp | 1 + src/apps/nad2bin.cpp | 2 +- src/apps/p_series.cpp | 1 + src/apps/proj.cpp | 22 +++++------ src/apps/projinfo.cpp | 1 + src/auth.cpp | 1 + src/bch2bps.cpp | 40 ++++++++++--------- src/bchgen.cpp | 9 +++-- src/biveval.cpp | 21 +++++----- src/conversions/axisswap.cpp | 9 +++-- src/conversions/cart.cpp | 12 +++--- src/conversions/geocent.cpp | 10 +++-- src/conversions/unitconvert.cpp | 8 ++-- src/deriv.cpp | 4 +- src/dmstor.cpp | 1 + src/errno.cpp | 1 + src/factors.cpp | 2 +- src/fileapi.cpp | 1 + src/fwd.cpp | 4 +- src/gauss.cpp | 9 +++-- src/gc_reader.cpp | 1 + src/gridcatalog.cpp | 4 +- src/gridinfo.cpp | 4 +- src/gridlist.cpp | 1 + src/initcache.cpp | 1 + src/inv.cpp | 4 +- src/iso19111/coordinateoperation.cpp | 4 ++ src/mk_cheby.cpp | 13 +++--- src/mlfn.cpp | 1 + src/msfn.cpp | 1 + src/mutex.cpp | 1 + src/nad_cvt.cpp | 4 +- src/nad_init.cpp | 1 + src/nad_intr.cpp | 5 +-- src/param.cpp | 1 + src/phi2.cpp | 1 + src/pipeline.cpp | 16 ++++---- src/pr_list.cpp | 1 + src/proj_mdist.cpp | 1 + src/projections/aea.cpp | 8 ++-- src/projections/aeqd.cpp | 24 ++++++------ src/projections/airy.cpp | 4 +- src/projections/aitoff.cpp | 8 ++-- src/projections/august.cpp | 5 ++- src/projections/bacon.cpp | 5 ++- src/projections/bertin1953.cpp | 4 +- src/projections/bipc.cpp | 8 ++-- src/projections/boggs.cpp | 5 ++- src/projections/bonne.cpp | 16 ++++---- src/projections/calcofi.cpp | 16 ++++---- src/projections/cass.cpp | 17 ++++---- src/projections/cc.cpp | 8 ++-- src/projections/ccon.cpp | 8 ++-- src/projections/cea.cpp | 16 ++++---- src/projections/chamb.cpp | 8 ++-- src/projections/collg.cpp | 8 ++-- src/projections/comill.cpp | 9 +++-- src/projections/crast.cpp | 9 +++-- src/projections/denoy.cpp | 5 ++- src/projections/eck1.cpp | 9 +++-- src/projections/eck2.cpp | 8 ++-- src/projections/eck3.cpp | 9 +++-- src/projections/eck4.cpp | 9 +++-- src/projections/eck5.cpp | 9 +++-- src/projections/eqc.cpp | 8 ++-- src/projections/eqdc.cpp | 8 ++-- src/projections/eqearth.cpp | 9 +++-- src/projections/etmerc.cpp | 8 ++-- src/projections/fahey.cpp | 9 +++-- src/projections/fouc_s.cpp | 8 ++-- src/projections/gall.cpp | 9 +++-- src/projections/geos.cpp | 16 ++++---- src/projections/gins8.cpp | 6 ++- src/projections/gn_sinu.cpp | 16 ++++---- src/projections/gnom.cpp | 8 ++-- src/projections/goode.cpp | 8 ++-- src/projections/gstmerc.cpp | 9 +++-- src/projections/hammer.cpp | 8 ++-- src/projections/hatano.cpp | 8 ++-- src/projections/healpix.cpp | 74 +++++++++++++++++------------------ src/projections/igh.cpp | 13 +++--- src/projections/imw_p.cpp | 14 +++---- src/projections/isea.cpp | 4 +- src/projections/krovak.cpp | 9 +++-- src/projections/labrd.cpp | 9 +++-- src/projections/laea.cpp | 16 ++++---- src/projections/lagrng.cpp | 8 ++-- src/projections/larr.cpp | 5 ++- src/projections/lask.cpp | 6 ++- src/projections/latlong.cpp | 16 ++++---- src/projections/lcc.cpp | 8 ++-- src/projections/lcca.cpp | 8 ++-- src/projections/loxim.cpp | 8 ++-- src/projections/lsat.cpp | 8 ++-- src/projections/mbt_fps.cpp | 9 +++-- src/projections/mbtfpp.cpp | 8 ++-- src/projections/mbtfpq.cpp | 8 ++-- src/projections/merc.cpp | 16 ++++---- src/projections/mill.cpp | 9 +++-- src/projections/misrsom.cpp | 8 ++-- src/projections/mod_ster.cpp | 9 +++-- src/projections/moll.cpp | 9 +++-- src/projections/natearth.cpp | 9 +++-- src/projections/natearth2.cpp | 9 +++-- src/projections/nell.cpp | 9 +++-- src/projections/nell_h.cpp | 9 +++-- src/projections/nicol.cpp | 5 ++- src/projections/nsper.cpp | 8 ++-- src/projections/nzmg.cpp | 9 +++-- src/projections/ob_tran.cpp | 12 +++--- src/projections/ocea.cpp | 9 +++-- src/projections/oea.cpp | 8 ++-- src/projections/omerc.cpp | 8 ++-- src/projections/ortho.cpp | 10 ++--- src/projections/patterson.cpp | 9 +++-- src/projections/poly.cpp | 16 ++++---- src/projections/putp2.cpp | 9 +++-- src/projections/putp3.cpp | 10 +++-- src/projections/putp4p.cpp | 9 +++-- src/projections/putp5.cpp | 9 +++-- src/projections/putp6.cpp | 9 +++-- src/projections/qsc.cpp | 9 +++-- src/projections/robin.cpp | 8 ++-- src/projections/rouss.cpp | 8 ++-- src/projections/rpoly.cpp | 5 ++- src/projections/sch.cpp | 8 ++-- src/projections/sconics.cpp | 8 ++-- src/projections/somerc.cpp | 8 ++-- src/projections/stere.cpp | 16 ++++---- src/projections/sterea.cpp | 9 +++-- src/projections/sts.cpp | 9 +++-- src/projections/tcc.cpp | 4 +- src/projections/tcea.cpp | 9 +++-- src/projections/times.cpp | 9 +++-- src/projections/tmerc.cpp | 16 ++++---- src/projections/tobmerc.cpp | 8 ++-- src/projections/tpeqd.cpp | 8 ++-- src/projections/urm5.cpp | 4 +- src/projections/urmfps.cpp | 8 ++-- src/projections/vandg.cpp | 8 ++-- src/projections/vandg2.cpp | 5 ++- src/projections/vandg4.cpp | 5 ++- src/projections/wag2.cpp | 9 +++-- src/projections/wag3.cpp | 9 +++-- src/projections/wag7.cpp | 5 ++- src/projections/wink1.cpp | 9 +++-- src/projections/wink2.cpp | 5 ++- src/projects.h | 76 +++++++++++------------------------- src/qsfn.cpp | 1 + src/rtodms.cpp | 1 + src/strtod.cpp | 1 + src/transform.cpp | 16 ++++---- src/transformations/affine.cpp | 8 ++-- src/transformations/deformation.cpp | 20 +++++----- src/transformations/helmert.cpp | 20 +++++----- src/transformations/hgridshift.cpp | 4 +- src/transformations/horner.cpp | 19 ++++----- src/transformations/molodensky.cpp | 18 ++++----- src/transformations/vgridshift.cpp | 4 +- src/tsfn.cpp | 1 + src/utils.cpp | 1 + src/vector1.cpp | 1 + src/zpoly1.cpp | 1 + test/unit/pj_phi2_test.cpp | 1 + test/unit/pj_transform_test.cpp | 1 + 171 files changed, 777 insertions(+), 711 deletions(-) diff --git a/src/aasincos.cpp b/src/aasincos.cpp index 4f9ea25f..d2851716 100644 --- a/src/aasincos.cpp +++ b/src/aasincos.cpp @@ -2,6 +2,7 @@ #include +#include "proj.h" #include "projects.h" #define ONE_TOL 1.00000000000001 diff --git a/src/adjlon.cpp b/src/adjlon.cpp index 784a90aa..52448c2e 100644 --- a/src/adjlon.cpp +++ b/src/adjlon.cpp @@ -1,5 +1,7 @@ /* reduce argument to range +/- PI */ #include + +#include "proj.h" #include "projects.h" double adjlon (double lon) { diff --git a/src/apply_gridshift.cpp b/src/apply_gridshift.cpp index da02b6b2..4fd9b077 100644 --- a/src/apply_gridshift.cpp +++ b/src/apply_gridshift.cpp @@ -113,7 +113,7 @@ int pj_apply_gridshift_2( PJ *defn, int inverse, /* Determine which grid is the correct given an input coordinate. */ /************************************************************************/ -static struct CTABLE* find_ctable(projCtx ctx, LP input, int grid_count, PJ_GRIDINFO **tables) { +static struct CTABLE* find_ctable(projCtx ctx, PJ_LP input, int grid_count, PJ_GRIDINFO **tables) { int itable; /* keep trying till we find a table that works */ @@ -197,7 +197,7 @@ int pj_apply_gridshift_3( projCtx ctx, PJ_GRIDINFO **gridlist, int gridlist_coun for( i = 0; i < point_count; i++ ) { long io = i * point_offset; - LP input, output; + PJ_LP input, output; int itable; input.phi = y[io]; @@ -307,9 +307,9 @@ int proj_hgrid_init(PJ* P, const char *grids) { /* */ /* Return coordinate offset in grid */ /********************************************/ -LP proj_hgrid_value(PJ *P, LP lp) { +PJ_LP proj_hgrid_value(PJ *P, PJ_LP lp) { struct CTABLE *ct; - LP out = proj_coord_error().lp; + PJ_LP out = proj_coord_error().lp; ct = find_ctable(P->ctx, lp, P->gridlist_count, P->gridlist); if (ct == nullptr) { @@ -332,10 +332,10 @@ LP proj_hgrid_value(PJ *P, LP lp) { return out; } -LP proj_hgrid_apply(PJ *P, LP lp, PJ_DIRECTION direction) { +PJ_LP proj_hgrid_apply(PJ *P, PJ_LP lp, PJ_DIRECTION direction) { struct CTABLE *ct; int inverse; - LP out; + PJ_LP out; out.lam = HUGE_VAL; out.phi = HUGE_VAL; diff --git a/src/apply_vgridshift.cpp b/src/apply_vgridshift.cpp index 1facfed6..5384f368 100644 --- a/src/apply_vgridshift.cpp +++ b/src/apply_vgridshift.cpp @@ -44,7 +44,7 @@ static int is_nodata(float value) return value > 1000 || value < -1000 || value == -88.88880f; } -static double read_vgrid_value( PJ *defn, LP input, int *gridlist_count_p, PJ_GRIDINFO **tables, struct CTABLE *ct) { +static double read_vgrid_value( PJ *defn, PJ_LP input, int *gridlist_count_p, PJ_GRIDINFO **tables, struct CTABLE *ct) { int itable = 0; double value = HUGE_VAL; double grid_x, grid_y; @@ -213,7 +213,7 @@ int pj_apply_vgridshift( PJ *defn, const char *listname, { double value; long io = i * point_offset; - LP input; + PJ_LP input; input.phi = y[io]; input.lam = x[io]; @@ -310,7 +310,7 @@ int proj_vgrid_init(PJ* P, const char *grids) { } /***********************************************/ -double proj_vgrid_value(PJ *P, LP lp){ +double proj_vgrid_value(PJ *P, PJ_LP lp){ /*********************************************** Read grid value at position lp in grids loaded diff --git a/src/apps/cs2cs.cpp b/src/apps/cs2cs.cpp index 937d3d58..9000454a 100644 --- a/src/apps/cs2cs.cpp +++ b/src/apps/cs2cs.cpp @@ -83,7 +83,7 @@ static void process(FILE *fid) { char line[MAX_LINE + 3], *s, pline[40]; - projUV data; + PJ_UV data; for (;;) { double z; diff --git a/src/apps/gen_cheb.cpp b/src/apps/gen_cheb.cpp index 4ba514d4..167ee79d 100644 --- a/src/apps/gen_cheb.cpp +++ b/src/apps/gen_cheb.cpp @@ -1,5 +1,6 @@ /* generates 'T' option output */ #define PJ_LIB__ +#include "proj.h" #include "projects.h" #include #include @@ -38,17 +39,17 @@ static long strtol_type_safe(const char *s, const char ** endptr, int base) /* FIXME: put the declaration in a header. Also used in proj.c */ -void gen_cheb(int inverse, projUV (*proj)(projUV), const char *s, PJ *P, +void gen_cheb(int inverse, PJ_UV (*proj)(PJ_UV), const char *s, PJ *P, int iargc, char **iargv); extern void p_series(Tseries *, FILE *, char *); -void gen_cheb(int inverse, projUV (*proj)(projUV), const char *s, PJ *P, +void gen_cheb(int inverse, PJ_UV (*proj)(PJ_UV), const char *s, PJ *P, int iargc, char **iargv) { long NU = 15, NV = 15; int errin = 0, pwr; long res = -1; char *arg, fmt[32]; - projUV low, upp, resid; + PJ_UV low, upp, resid; Tseries *F; double (*input)(const char *, const char **); diff --git a/src/apps/geod_interface.cpp b/src/apps/geod_interface.cpp index a30377ac..1a085b38 100644 --- a/src/apps/geod_interface.cpp +++ b/src/apps/geod_interface.cpp @@ -1,3 +1,4 @@ +#include "proj.h" #include "projects.h" #include "geod_interface.h" diff --git a/src/apps/nad2bin.cpp b/src/apps/nad2bin.cpp index ff8f2ebd..62a7b320 100644 --- a/src/apps/nad2bin.cpp +++ b/src/apps/nad2bin.cpp @@ -274,7 +274,7 @@ int main(int argc, char **argv) { unsigned char achHeader[11*16]; double dfValue; pj_int32 nGSCount = ct.lim.lam * ct.lim.phi; - LP ur; + PJ_LP ur; ur.lam = ct.ll.lam + (ct.lim.lam-1) * ct.del.lam; ur.phi = ct.ll.phi + (ct.lim.phi-1) * ct.del.phi; diff --git a/src/apps/p_series.cpp b/src/apps/p_series.cpp index cddea888..3815824b 100644 --- a/src/apps/p_series.cpp +++ b/src/apps/p_series.cpp @@ -1,4 +1,5 @@ /* print row coefficients of Tseries structure */ +#include "proj.h" #include "projects.h" #include #include diff --git a/src/apps/proj.cpp b/src/apps/proj.cpp index b93fb04d..9958a777 100644 --- a/src/apps/proj.cpp +++ b/src/apps/proj.cpp @@ -20,13 +20,13 @@ #define MAX_PARGS 100 #define PJ_INVERS(P) (P->inv ? 1 : 0) -extern void gen_cheb(int, projUV(*)(projUV), const char *, PJ *, int, char **); +extern void gen_cheb(int, PJ_UV(*)(PJ_UV), const char *, PJ *, int, char **); static PJ *Proj; static union { - projUV (*generic)(projUV, PJ *); - projXY (*fwd)(projLP, PJ *); - projLP (*inv)(projXY, PJ *); + PJ_UV (*generic)(PJ_UV, PJ *); + PJ_XY (*fwd)(PJ_LP, PJ *); + PJ_LP (*inv)(PJ_XY, PJ *); } proj; static int @@ -56,7 +56,7 @@ static PJ_FACTORS facs; static double (*informat)(const char *, char **), /* input data deformatter function */ fscale = 0.; /* cartesian scale factor */ -static projUV int_proj(projUV data) { +static PJ_UV int_proj(PJ_UV data) { if (prescale) { data.u *= fscale; data.v *= fscale; @@ -82,7 +82,7 @@ static void process(FILE *fid) { ++emess_dat.File_line; if (bin_in) { /* binary input */ - if (fread(&data, sizeof(projUV), 1, fid) != 1) + if (fread(&data, sizeof(PJ_UV), 1, fid) != 1) break; } else { /* ascii input */ if (!(s = fgets(line, MAX_LINE, fid))) @@ -144,7 +144,7 @@ static void process(FILE *fid) { } if (bin_out) { /* binary output */ - (void)fwrite(&data, sizeof(projUV), 1, stdout); + (void)fwrite(&data, sizeof(PJ_UV), 1, stdout); continue; } else if (data.uv.u == HUGE_VAL) /* error output */ (void)fputs(oterr, stdout); @@ -196,8 +196,8 @@ static void process(FILE *fid) { /* file processing function --- verbosely */ static void vprocess(FILE *fid) { char line[MAX_LINE+3], *s, pline[40]; - LP dat_ll; - projXY dat_xy; + PJ_LP dat_ll; + PJ_XY dat_xy; int linvers; PJ_COORD coord; @@ -247,7 +247,7 @@ static void vprocess(FILE *fid) { } if (prescale) { dat_xy.x *= fscale; dat_xy.y *= fscale; } if (reversein) { - projXY temp = dat_xy; + PJ_XY temp = dat_xy; dat_xy.x = temp.y; dat_xy.y = temp.x; } @@ -260,7 +260,7 @@ static void vprocess(FILE *fid) { continue; } if (reversein) { - LP temp = dat_ll; + PJ_LP temp = dat_ll; dat_ll.lam = temp.phi; dat_ll.phi = temp.lam; } diff --git a/src/apps/projinfo.cpp b/src/apps/projinfo.cpp index d604365a..589ca832 100644 --- a/src/apps/projinfo.cpp +++ b/src/apps/projinfo.cpp @@ -35,6 +35,7 @@ #include #include +#include "proj.h" #include "projects.h" #include diff --git a/src/auth.cpp b/src/auth.cpp index cde60a29..3da63c60 100644 --- a/src/auth.cpp +++ b/src/auth.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" # define P00 .33333333333333333333 /* 1 / 3 */ diff --git a/src/bch2bps.cpp b/src/bch2bps.cpp index 3ee56993..1812ee2b 100644 --- a/src/bch2bps.cpp +++ b/src/bch2bps.cpp @@ -1,41 +1,43 @@ /* convert bivariate w Chebyshev series to w Power series */ + +#include "proj.h" #include "projects.h" /* basic support procedures */ static void /* clear vector to zero */ -clear(projUV *p, int n) { static const projUV c = {0., 0.}; while (n--) *p++ = c; } +clear(PJ_UV *p, int n) { static const PJ_UV c = {0., 0.}; while (n--) *p++ = c; } static void /* clear matrix rows to zero */ -bclear(projUV **p, int n, int m) { while (n--) clear(*p++, m); } +bclear(PJ_UV **p, int n, int m) { while (n--) clear(*p++, m); } static void /* move vector */ -bmove(projUV *a, projUV *b, int n) { while (n--) *a++ = *b++; } +bmove(PJ_UV *a, PJ_UV *b, int n) { while (n--) *a++ = *b++; } static void /* a <- m * b - c */ -submop(projUV *a, double m, projUV *b, projUV *c, int n) { +submop(PJ_UV *a, double m, PJ_UV *b, PJ_UV *c, int n) { while (n--) { a->u = m * b->u - c->u; a++->v = m * b++->v - c++->v; } } static void /* a <- b - c */ -subop(projUV *a, projUV *b, projUV *c, int n) { +subop(PJ_UV *a, PJ_UV *b, PJ_UV *c, int n) { while (n--) { a->u = b->u - c->u; a++->v = b++->v - c++->v; } } static void /* multiply vector a by scalar m */ -dmult(projUV *a, double m, int n) { while(n--) { a->u *= m; a->v *= m; ++a; } } +dmult(PJ_UV *a, double m, int n) { while(n--) { a->u *= m; a->v *= m; ++a; } } static void /* row adjust a[] <- a[] - m * b[] */ -dadd(projUV *a, projUV *b, double m, int n) { +dadd(PJ_UV *a, PJ_UV *b, double m, int n) { while(n--) { a->u -= m * b->u; a++->v -= m * b++->v; } } static int /* convert row to power series */ -rows(projUV *c, projUV *d, int n) { - projUV sv, *dd; +rows(PJ_UV *c, PJ_UV *d, int n) { + PJ_UV sv, *dd; int j, k; - dd = (projUV *)vector1(n-1, sizeof(projUV)); + dd = (PJ_UV *)vector1(n-1, sizeof(PJ_UV)); if (!dd) return 0; sv.u = sv.v = 0.; @@ -63,14 +65,14 @@ rows(projUV *c, projUV *d, int n) { return 1; } static int /* convert columns to power series */ -cols(projUV **c, projUV **d, int nu, int nv) { - projUV *sv, **dd; +cols(PJ_UV **c, PJ_UV **d, int nu, int nv) { + PJ_UV *sv, **dd; int j, k; - dd = (projUV **)vector2(nu, nv, sizeof(projUV)); + dd = (PJ_UV **)vector2(nu, nv, sizeof(PJ_UV)); if (!dd) return 0; - sv = (projUV *)vector1(nv, sizeof(projUV)); + sv = (PJ_UV *)vector1(nv, sizeof(PJ_UV)); if (!sv) { freev2((void **)dd, nu); return 0; @@ -96,7 +98,7 @@ cols(projUV **c, projUV **d, int nu, int nv) { return 1; } static void /* row adjust for range -1 to 1 to a to b */ -rowshft(double a, double b, projUV *d, int n) { +rowshft(double a, double b, PJ_UV *d, int n) { int k, j; double fac, cnst; @@ -115,7 +117,7 @@ rowshft(double a, double b, projUV *d, int n) { } } static void /* column adjust for range -1 to 1 to a to b */ -colshft(double a, double b, projUV **d, int n, int m) { +colshft(double a, double b, PJ_UV **d, int n, int m) { int k, j; double fac, cnst; @@ -131,11 +133,11 @@ colshft(double a, double b, projUV **d, int n, int m) { dadd(d[k], d[k+1], cnst, m); } int /* entry point */ -bch2bps(projUV a, projUV b, projUV **c, int nu, int nv) { - projUV **d; +bch2bps(PJ_UV a, PJ_UV b, PJ_UV **c, int nu, int nv) { + PJ_UV **d; int i; - if (nu < 1 || nv < 1 || !(d = (projUV **)vector2(nu, nv, sizeof(projUV)))) + if (nu < 1 || nv < 1 || !(d = (PJ_UV **)vector2(nu, nv, sizeof(PJ_UV)))) return 0; /* do rows to power series */ for (i = 0; i < nu; ++i) { diff --git a/src/bchgen.cpp b/src/bchgen.cpp index c129f0c1..324ac8f6 100644 --- a/src/bchgen.cpp +++ b/src/bchgen.cpp @@ -1,9 +1,10 @@ /* generate double bivariate Chebychev polynomial */ +#include "proj.h" #include "projects.h" int -bchgen(projUV a, projUV b, int nu, int nv, projUV **f, projUV(*func)(projUV)) { +bchgen(PJ_UV a, PJ_UV b, int nu, int nv, PJ_UV **f, PJ_UV(*func)(PJ_UV)) { int i, j, k; - projUV arg, *t, bma, bpa, *c; + PJ_UV arg, *t, bma, bpa, *c; double d, fac; bma.u = 0.5 * (b.u - a.u); bma.v = 0.5 * (b.v - a.v); @@ -17,7 +18,7 @@ bchgen(projUV a, projUV b, int nu, int nv, projUV **f, projUV(*func)(projUV)) { return(1); } } - if (!(c = (projUV *) vector1(nu, sizeof(projUV)))) return 1; + if (!(c = (PJ_UV *) vector1(nu, sizeof(PJ_UV)))) return 1; fac = 2. / nu; for ( j = 0; j < nv ; ++j) { for ( i = 0; i < nu; ++i) { @@ -35,7 +36,7 @@ bchgen(projUV a, projUV b, int nu, int nv, projUV **f, projUV(*func)(projUV)) { f[i][j] = c[i]; } pj_dalloc(c); - if (!(c = (projUV*) vector1(nv, sizeof(projUV)))) return 1; + if (!(c = (PJ_UV*) vector1(nv, sizeof(PJ_UV)))) return 1; fac = 2. / nv; for ( i = 0; i < nu; ++i) { t = f[i]; diff --git a/src/biveval.cpp b/src/biveval.cpp index 05e83e21..219534c3 100644 --- a/src/biveval.cpp +++ b/src/biveval.cpp @@ -1,7 +1,8 @@ /* procedures for evaluating Tseries */ +#include "proj.h" # include "projects.h" # define NEAR_ONE 1.00001 -static double ceval(struct PW_COEF *C, int n, projUV w, projUV w2) { +static double ceval(struct PW_COEF *C, int n, PJ_UV w, PJ_UV w2) { double d=0, dd=0, vd, vdd, tmp, *c; int j; @@ -28,10 +29,10 @@ static double ceval(struct PW_COEF *C, int n, projUV w, projUV w2) { return (w.u * d - dd); } -projUV /* bivariate Chebyshev polynomial entry point */ -bcheval(projUV in, Tseries *T) { - projUV w2, w; - projUV out; +PJ_UV /* bivariate Chebyshev polynomial entry point */ +bcheval(PJ_UV in, Tseries *T) { + PJ_UV w2, w; + PJ_UV out; /* scale to +-1 */ w.u = ( in.u + in.u - T->a.u ) * T->b.u; w.v = ( in.v + in.v - T->a.v ) * T->b.v; @@ -47,9 +48,9 @@ bcheval(projUV in, Tseries *T) { return out; } -projUV /* bivariate power polynomial entry point */ -bpseval(projUV in, Tseries *T) { - projUV out; +PJ_UV /* bivariate power polynomial entry point */ +bpseval(PJ_UV in, Tseries *T) { + PJ_UV out; double *c, row; int i, m; @@ -75,8 +76,8 @@ bpseval(projUV in, Tseries *T) { return out; } -projUV /* general entry point selecting evaluation mode */ -biveval(projUV in, Tseries *T) { +PJ_UV /* general entry point selecting evaluation mode */ +biveval(PJ_UV in, Tseries *T) { if (T->power) { return bpseval(in, T); diff --git a/src/conversions/axisswap.cpp b/src/conversions/axisswap.cpp index 8714ec85..f9dd4fa5 100644 --- a/src/conversions/axisswap.cpp +++ b/src/conversions/axisswap.cpp @@ -57,6 +57,7 @@ operation: #include #include +#include "proj.h" #include "proj_internal.h" #include "projects.h" @@ -73,7 +74,7 @@ static int sign(int x) { return (x > 0) - (x < 0); } -static XY forward_2d(LP lp, PJ *P) { +static PJ_XY forward_2d(PJ_LP lp, PJ *P) { struct pj_opaque *Q = (struct pj_opaque *) P->opaque; unsigned int i; PJ_COORD out, in; @@ -88,7 +89,7 @@ static XY forward_2d(LP lp, PJ *P) { } -static LP reverse_2d(XY xy, PJ *P) { +static PJ_LP reverse_2d(PJ_XY xy, PJ *P) { struct pj_opaque *Q = (struct pj_opaque *) P->opaque; unsigned int i; PJ_COORD out, in; @@ -103,7 +104,7 @@ static LP reverse_2d(XY xy, PJ *P) { } -static XYZ forward_3d(LPZ lpz, PJ *P) { +static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { struct pj_opaque *Q = (struct pj_opaque *) P->opaque; unsigned int i; PJ_COORD out, in; @@ -117,7 +118,7 @@ static XYZ forward_3d(LPZ lpz, PJ *P) { return out.xyz; } -static LPZ reverse_3d(XYZ xyz, PJ *P) { +static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { struct pj_opaque *Q = (struct pj_opaque *) P->opaque; unsigned int i; PJ_COORD in, out; diff --git a/src/conversions/cart.cpp b/src/conversions/cart.cpp index 6fed9985..bcfbb5e6 100644 --- a/src/conversions/cart.cpp +++ b/src/conversions/cart.cpp @@ -131,10 +131,10 @@ static double geocentric_radius (double a, double b, double phi) { /*********************************************************************/ -static XYZ cartesian (LPZ geod, PJ *P) { +static PJ_XYZ cartesian (PJ_LPZ geod, PJ *P) { /*********************************************************************/ double N, cosphi = cos(geod.phi); - XYZ xyz; + PJ_XYZ xyz; N = normal_radius_of_curvature(P->a, P->es, geod.phi); @@ -148,10 +148,10 @@ static XYZ cartesian (LPZ geod, PJ *P) { /*********************************************************************/ -static LPZ geodetic (XYZ cart, PJ *P) { +static PJ_LPZ geodetic (PJ_XYZ cart, PJ *P) { /*********************************************************************/ double N, p, theta, c, s; - LPZ lpz; + PJ_LPZ lpz; /* Perpendicular distance from point to Z-axis (HM eq. 5-28) */ p = hypot (cart.x, cart.y); @@ -185,7 +185,7 @@ static LPZ geodetic (XYZ cart, PJ *P) { /* In effect, 2 cartesian coordinates of a point on the ellipsoid. Rather pointless, but... */ -static XY cart_forward (LP lp, PJ *P) { +static PJ_XY cart_forward (PJ_LP lp, PJ *P) { PJ_COORD point; point.lp = lp; point.lpz.z = 0; @@ -195,7 +195,7 @@ static XY cart_forward (LP lp, PJ *P) { } /* And the other way round. Still rather pointless, but... */ -static LP cart_reverse (XY xy, PJ *P) { +static PJ_LP cart_reverse (PJ_XY xy, PJ *P) { PJ_COORD point; point.xy = xy; point.xyz.z = 0; diff --git a/src/conversions/geocent.cpp b/src/conversions/geocent.cpp index 0e9d725e..d5f3e075 100644 --- a/src/conversions/geocent.cpp +++ b/src/conversions/geocent.cpp @@ -28,20 +28,22 @@ *****************************************************************************/ #define PJ_LIB__ + +#include "proj.h" #include "projects.h" PROJ_HEAD(geocent, "Geocentric") "\n\t"; -static XY forward(LP lp, PJ *P) { - XY xy = {0.0,0.0}; +static PJ_XY forward(PJ_LP lp, PJ *P) { + PJ_XY xy = {0.0,0.0}; (void) P; xy.x = lp.lam; xy.y = lp.phi; return xy; } -static LP inverse(XY xy, PJ *P) { - LP lp = {0.0,0.0}; +static PJ_LP inverse(PJ_XY xy, PJ *P) { + PJ_LP lp = {0.0,0.0}; (void) P; lp.phi = xy.y; lp.lam = xy.x; diff --git a/src/conversions/unitconvert.cpp b/src/conversions/unitconvert.cpp index b25fd5d2..10c56344 100644 --- a/src/conversions/unitconvert.cpp +++ b/src/conversions/unitconvert.cpp @@ -281,7 +281,7 @@ static const struct TIME_UNITS time_units[] = { /***********************************************************************/ -static XY forward_2d(LP lp, PJ *P) { +static PJ_XY forward_2d(PJ_LP lp, PJ *P) { /************************************************************************ Forward unit conversions in the plane ************************************************************************/ @@ -297,7 +297,7 @@ static XY forward_2d(LP lp, PJ *P) { /***********************************************************************/ -static LP reverse_2d(XY xy, PJ *P) { +static PJ_LP reverse_2d(PJ_XY xy, PJ *P) { /************************************************************************ Reverse unit conversions in the plane ************************************************************************/ @@ -313,7 +313,7 @@ static LP reverse_2d(XY xy, PJ *P) { /***********************************************************************/ -static XYZ forward_3d(LPZ lpz, PJ *P) { +static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { /************************************************************************ Forward unit conversions the vertical component ************************************************************************/ @@ -330,7 +330,7 @@ static XYZ forward_3d(LPZ lpz, PJ *P) { } /***********************************************************************/ -static LPZ reverse_3d(XYZ xyz, PJ *P) { +static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { /************************************************************************ Reverse unit conversions the vertical component ************************************************************************/ diff --git a/src/deriv.cpp b/src/deriv.cpp index 72a69440..3839809e 100644 --- a/src/deriv.cpp +++ b/src/deriv.cpp @@ -6,8 +6,8 @@ #include "proj.h" #include "projects.h" -int pj_deriv(LP lp, double h, const PJ *P, struct DERIVS *der) { - XY t; +int pj_deriv(PJ_LP lp, double h, const PJ *P, struct DERIVS *der) { + PJ_XY t; /* get rid of constness until we can do it for real */ PJ *Q = (PJ *) P; if (nullptr==Q->fwd) diff --git a/src/dmstor.cpp b/src/dmstor.cpp index 967a9f18..bffebc9c 100644 --- a/src/dmstor.cpp +++ b/src/dmstor.cpp @@ -5,6 +5,7 @@ #include #include +#include "proj.h" #include "projects.h" static double proj_strtod(char *nptr, char **endptr); diff --git a/src/errno.cpp b/src/errno.cpp index f6ea9bfc..f948a945 100644 --- a/src/errno.cpp +++ b/src/errno.cpp @@ -1,5 +1,6 @@ /* For full ANSI compliance of global variable */ +#include "proj.h" #include "projects.h" int pj_errno = 0; diff --git a/src/factors.cpp b/src/factors.cpp index 768bf585..76b0d4e6 100644 --- a/src/factors.cpp +++ b/src/factors.cpp @@ -13,7 +13,7 @@ #define EPS 1.0e-12 -int pj_factors(LP lp, const PJ *P, double h, struct FACTORS *fac) { +int pj_factors(PJ_LP lp, const PJ *P, double h, struct FACTORS *fac) { double cosphi, t, n, r; int err; PJ_COORD coo = {{0, 0, 0, 0}}; diff --git a/src/fileapi.cpp b/src/fileapi.cpp index 3df73236..c9e986e5 100644 --- a/src/fileapi.cpp +++ b/src/fileapi.cpp @@ -32,6 +32,7 @@ #include #include +#include "proj.h" #include "projects.h" static PAFile stdio_fopen(projCtx ctx, const char *filename, diff --git a/src/fwd.cpp b/src/fwd.cpp index e8f73999..2824a039 100644 --- a/src/fwd.cpp +++ b/src/fwd.cpp @@ -164,7 +164,7 @@ static PJ_COORD error_or_coord(PJ *P, PJ_COORD coord, int last_errno) { } -XY pj_fwd(LP lp, PJ *P) { +PJ_XY pj_fwd(PJ_LP lp, PJ *P) { int last_errno; PJ_COORD coo = {{0,0,0,0}}; coo.lp = lp; @@ -198,7 +198,7 @@ XY pj_fwd(LP lp, PJ *P) { -XYZ pj_fwd3d(LPZ lpz, PJ *P) { +PJ_XYZ pj_fwd3d(PJ_LPZ lpz, PJ *P) { int last_errno; PJ_COORD coo = {{0,0,0,0}}; coo.lpz = lpz; diff --git a/src/gauss.cpp b/src/gauss.cpp index 2db713ad..d7354bdc 100644 --- a/src/gauss.cpp +++ b/src/gauss.cpp @@ -28,6 +28,7 @@ #include #include +#include "proj.h" #include "projects.h" #define MAX_ITER 20 @@ -70,9 +71,9 @@ void *pj_gauss_ini(double e, double phi0, double *chi, double *rc) { return ((void *)en); } -LP pj_gauss(projCtx ctx, LP elp, const void *data) { +PJ_LP pj_gauss(projCtx ctx, PJ_LP elp, const void *data) { const struct GAUSS *en = (const struct GAUSS *)data; - LP slp; + PJ_LP slp; (void) ctx; slp.phi = 2. * atan( en->K * @@ -82,9 +83,9 @@ LP pj_gauss(projCtx ctx, LP elp, const void *data) { return(slp); } -LP pj_inv_gauss(projCtx ctx, LP slp, const void *data) { +PJ_LP pj_inv_gauss(projCtx ctx, PJ_LP slp, const void *data) { const struct GAUSS *en = (const struct GAUSS *)data; - LP elp; + PJ_LP elp; double num; int i; diff --git a/src/gc_reader.cpp b/src/gc_reader.cpp index 118aadf6..094aa44c 100644 --- a/src/gc_reader.cpp +++ b/src/gc_reader.cpp @@ -32,6 +32,7 @@ #include #include +#include "proj.h" #include "projects.h" static int gc_readentry(projCtx ctx, PAFile fid, PJ_GridCatalogEntry *entry); diff --git a/src/gridcatalog.cpp b/src/gridcatalog.cpp index 8fb90efa..18f93b4e 100644 --- a/src/gridcatalog.cpp +++ b/src/gridcatalog.cpp @@ -123,7 +123,7 @@ int pj_gc_apply_gridshift( PJ *defn, int inverse, for( i = 0; i < point_count; i++ ) { long io = i * point_offset; - LP input, output_after, output_before; + PJ_LP input, output_after, output_before; double mix_ratio; PJ_GRIDINFO *gi; @@ -237,7 +237,7 @@ int pj_gc_apply_gridshift( PJ *defn, int inverse, /************************************************************************/ PJ_GRIDINFO *pj_gc_findgrid( projCtx ctx, PJ_GridCatalog *catalog, int after, - LP location, double date, + PJ_LP location, double date, PJ_Region *optional_region, double *grid_date ) { diff --git a/src/gridinfo.cpp b/src/gridinfo.cpp index 046abfcc..041de935 100644 --- a/src/gridinfo.cpp +++ b/src/gridinfo.cpp @@ -483,7 +483,7 @@ static int pj_gridinfo_init_ntv2( projCtx ctx, PAFile fid, PJ_GRIDINFO *gilist ) for( subfile = 0; subfile < num_subfiles; subfile++ ) { struct CTABLE *ct; - LP ur; + PJ_LP ur; int gs_count; PJ_GRIDINFO *gi; @@ -662,7 +662,7 @@ static int pj_gridinfo_init_ntv1( projCtx ctx, PAFile fid, PJ_GRIDINFO *gi ) { unsigned char header[192]; /* 12 records of 16 bytes */ struct CTABLE *ct; - LP ur; + PJ_LP ur; /* cppcheck-suppress sizeofCalculation */ STATIC_ASSERT( sizeof(pj_int32) == 4 ); diff --git a/src/gridlist.cpp b/src/gridlist.cpp index 169abcb9..41f4e2c5 100644 --- a/src/gridlist.cpp +++ b/src/gridlist.cpp @@ -32,6 +32,7 @@ #include #include +#include "proj.h" #include "projects.h" static PJ_GRIDINFO *grid_list = nullptr; diff --git a/src/initcache.cpp b/src/initcache.cpp index 052a016c..4d1d8695 100644 --- a/src/initcache.cpp +++ b/src/initcache.cpp @@ -27,6 +27,7 @@ #include +#include "proj.h" #include "projects.h" static int cache_count = 0; diff --git a/src/inv.cpp b/src/inv.cpp index ba7e6722..8ce5dfcd 100644 --- a/src/inv.cpp +++ b/src/inv.cpp @@ -141,7 +141,7 @@ static PJ_COORD error_or_coord(PJ *P, PJ_COORD coord, int last_errno) { } -LP pj_inv(XY xy, PJ *P) { +PJ_LP pj_inv(PJ_XY xy, PJ *P) { int last_errno; PJ_COORD coo = {{0,0,0,0}}; coo.xy = xy; @@ -175,7 +175,7 @@ LP pj_inv(XY xy, PJ *P) { -LPZ pj_inv3d (XYZ xyz, PJ *P) { +PJ_LPZ pj_inv3d (PJ_XYZ xyz, PJ *P) { int last_errno; PJ_COORD coo = {{0,0,0,0}}; coo.xyz = xyz; diff --git a/src/iso19111/coordinateoperation.cpp b/src/iso19111/coordinateoperation.cpp index e9a9f434..6b6651da 100644 --- a/src/iso19111/coordinateoperation.cpp +++ b/src/iso19111/coordinateoperation.cpp @@ -41,7 +41,11 @@ #include "proj/internal/internal.hpp" #include "proj/internal/io_internal.hpp" +// PROJ include order is sensitive +// clang-format off +#include "proj.h" #include "projects.h" // M_PI +// clang-format on #include #include diff --git a/src/mk_cheby.cpp b/src/mk_cheby.cpp index 5e6bfef0..62528a41 100644 --- a/src/mk_cheby.cpp +++ b/src/mk_cheby.cpp @@ -1,9 +1,10 @@ +#include "proj.h" #include "projects.h" static void /* sum coefficients less than res */ -eval(projUV **w, int nu, int nv, double res, projUV *resid) { +eval(PJ_UV **w, int nu, int nv, double res, PJ_UV *resid) { int i, j; double ab; - projUV *s; + PJ_UV *s; resid->u = resid->v = 0.; for (i = 0; i < nu; ++i) { @@ -41,14 +42,14 @@ makeT(int nru, int nrv) { return T; } Tseries * -mk_cheby(projUV a, projUV b, double res, projUV *resid, projUV (*func)(projUV), +mk_cheby(PJ_UV a, PJ_UV b, double res, PJ_UV *resid, PJ_UV (*func)(PJ_UV), int nu, int nv, int power) { int j, i, nru, nrv, *ncu, *ncv; Tseries *T = nullptr; - projUV **w; + PJ_UV **w; double cutres; - if (!(w = (projUV **)vector2(nu, nv, sizeof(projUV)))) + if (!(w = (PJ_UV **)vector2(nu, nv, sizeof(PJ_UV)))) return nullptr; if (!(ncu = (int *)vector1(nu + nv, sizeof(int)))) { freev2((void **)w, nu); @@ -56,7 +57,7 @@ mk_cheby(projUV a, projUV b, double res, projUV *resid, projUV (*func)(projUV), } ncv = ncu + nu; if (!bchgen(a, b, nu, nv, w, func)) { - projUV *s; + PJ_UV *s; double ab, *p; /* analyse coefficients and adjust until residual OK */ diff --git a/src/mlfn.cpp b/src/mlfn.cpp index e032e642..e6bbd152 100644 --- a/src/mlfn.cpp +++ b/src/mlfn.cpp @@ -1,5 +1,6 @@ #include +#include "proj.h" #include "projects.h" /* meridional distance for ellipsoid and inverse diff --git a/src/msfn.cpp b/src/msfn.cpp index 999e73a7..cf6accf1 100644 --- a/src/msfn.cpp +++ b/src/msfn.cpp @@ -1,5 +1,6 @@ /* determine constant small m */ #include +#include "proj.h" #include "projects.h" double pj_msfn(double sinphi, double cosphi, double es) { diff --git a/src/mutex.cpp b/src/mutex.cpp index 3752324c..857c8bb4 100644 --- a/src/mutex.cpp +++ b/src/mutex.cpp @@ -38,6 +38,7 @@ #define _GNU_SOURCE #endif +#include "proj.h" #ifndef _WIN32 #include "proj_config.h" #include "projects.h" diff --git a/src/nad_cvt.cpp b/src/nad_cvt.cpp index c0e67943..91615bfa 100644 --- a/src/nad_cvt.cpp +++ b/src/nad_cvt.cpp @@ -10,8 +10,8 @@ #define MAX_ITERATIONS 10 #define TOL 1e-12 -LP nad_cvt(LP in, int inverse, struct CTABLE *ct) { - LP t, tb,del, dif; +PJ_LP nad_cvt(PJ_LP in, int inverse, struct CTABLE *ct) { + PJ_LP t, tb,del, dif; int i = MAX_ITERATIONS; const double toltol = TOL*TOL; diff --git a/src/nad_init.cpp b/src/nad_init.cpp index 1e2b150d..695fa973 100644 --- a/src/nad_init.cpp +++ b/src/nad_init.cpp @@ -33,6 +33,7 @@ #include #include +#include "proj.h" #include "projects.h" /************************************************************************/ diff --git a/src/nad_intr.cpp b/src/nad_intr.cpp index b5f61db7..92d3292b 100644 --- a/src/nad_intr.cpp +++ b/src/nad_intr.cpp @@ -5,9 +5,8 @@ #include "proj.h" #include "projects.h" - LP -nad_intr(LP t, struct CTABLE *ct) { - LP val, frct; +PJ_LP nad_intr(PJ_LP t, struct CTABLE *ct) { + PJ_LP val, frct; ILP indx; double m00, m10, m01, m11; FLP *f00, *f10, *f01, *f11; diff --git a/src/param.cpp b/src/param.cpp index 74247b72..22d21cf4 100644 --- a/src/param.cpp +++ b/src/param.cpp @@ -6,6 +6,7 @@ #include #include +#include "proj.h" #include "projects.h" /* create parameter list entry */ diff --git a/src/phi2.cpp b/src/phi2.cpp index a83302e6..1f7b0846 100644 --- a/src/phi2.cpp +++ b/src/phi2.cpp @@ -2,6 +2,7 @@ #include +#include "proj.h" #include "projects.h" static const double TOL = 1.0e-10; diff --git a/src/pipeline.cpp b/src/pipeline.cpp index 76fc58a5..23d8f969 100644 --- a/src/pipeline.cpp +++ b/src/pipeline.cpp @@ -122,10 +122,10 @@ struct pj_opaque { static PJ_COORD pipeline_forward_4d (PJ_COORD point, PJ *P); static PJ_COORD pipeline_reverse_4d (PJ_COORD point, PJ *P); -static XYZ pipeline_forward_3d (LPZ lpz, PJ *P); -static LPZ pipeline_reverse_3d (XYZ xyz, PJ *P); -static XY pipeline_forward (LP lp, PJ *P); -static LP pipeline_reverse (XY xy, PJ *P); +static PJ_XYZ pipeline_forward_3d (PJ_LPZ lpz, PJ *P); +static PJ_LPZ pipeline_reverse_3d (PJ_XYZ xyz, PJ *P); +static PJ_XY pipeline_forward (PJ_LP lp, PJ *P); +static PJ_LP pipeline_reverse (PJ_XY xy, PJ *P); @@ -158,7 +158,7 @@ static PJ_COORD pipeline_reverse_4d (PJ_COORD point, PJ *P) { -static XYZ pipeline_forward_3d (LPZ lpz, PJ *P) { +static PJ_XYZ pipeline_forward_3d (PJ_LPZ lpz, PJ *P) { PJ_COORD point = {{0,0,0,0}}; int i; point.lpz = lpz; @@ -170,7 +170,7 @@ static XYZ pipeline_forward_3d (LPZ lpz, PJ *P) { } -static LPZ pipeline_reverse_3d (XYZ xyz, PJ *P) { +static PJ_LPZ pipeline_reverse_3d (PJ_XYZ xyz, PJ *P) { PJ_COORD point = {{0,0,0,0}}; int i; point.xyz = xyz; @@ -184,7 +184,7 @@ static LPZ pipeline_reverse_3d (XYZ xyz, PJ *P) { -static XY pipeline_forward (LP lp, PJ *P) { +static PJ_XY pipeline_forward (PJ_LP lp, PJ *P) { PJ_COORD point = {{0,0,0,0}}; int i; point.lp = lp; @@ -196,7 +196,7 @@ static XY pipeline_forward (LP lp, PJ *P) { } -static LP pipeline_reverse (XY xy, PJ *P) { +static PJ_LP pipeline_reverse (PJ_XY xy, PJ *P) { PJ_COORD point = {{0,0,0,0}}; int i; point.xy = xy; diff --git a/src/pr_list.cpp b/src/pr_list.cpp index b8ad2c04..2ff91332 100644 --- a/src/pr_list.cpp +++ b/src/pr_list.cpp @@ -4,6 +4,7 @@ #include #include +#include "proj.h" #include "projects.h" #define LINE_LEN 72 diff --git a/src/proj_mdist.cpp b/src/proj_mdist.cpp index e3f0f5c6..e7acedcc 100644 --- a/src/proj_mdist.cpp +++ b/src/proj_mdist.cpp @@ -32,6 +32,7 @@ #include #include +#include "proj.h" #include "projects.h" #define MAX_ITER 20 diff --git a/src/projections/aea.cpp b/src/projections/aea.cpp index c4a4a72a..2b7f7238 100644 --- a/src/projections/aea.cpp +++ b/src/projections/aea.cpp @@ -99,8 +99,8 @@ static PJ *destructor (PJ *P, int errlev) { /* Destructor -static XY e_forward (LP lp, PJ *P) { /* Ellipsoid/spheroid, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoid/spheroid, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); Q->rho = Q->c - (Q->ellips ? Q->n * pj_qsfn(sin(lp.phi), P->e, P->one_es) : Q->n2 * sin(lp.phi));; if (Q->rho < 0.) { @@ -114,8 +114,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoid/spheroid, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoid/spheroid, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoid/spheroid, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); if( (Q->rho = hypot(xy.x, xy.y = Q->rho0 - xy.y)) != 0.0 ) { if (Q->n < 0.) { diff --git a/src/projections/aeqd.cpp b/src/projections/aeqd.cpp index 1a350d90..f92ecd81 100644 --- a/src/projections/aeqd.cpp +++ b/src/projections/aeqd.cpp @@ -75,8 +75,8 @@ static PJ *destructor (PJ *P, int errlev) { /* Destructor -static XY e_guam_fwd(LP lp, PJ *P) { /* Guam elliptical */ - XY xy = {0.0,0.0}; +static PJ_XY e_guam_fwd(PJ_LP lp, PJ *P) { /* Guam elliptical */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double cosphi, sinphi, t; @@ -91,8 +91,8 @@ static XY e_guam_fwd(LP lp, PJ *P) { /* Guam elliptical */ } -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double coslam, cosphi, sinphi, rho; double azi1, azi2, s12; @@ -130,8 +130,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double coslam, cosphi, sinphi; @@ -177,8 +177,8 @@ oblcon: } -static LP e_guam_inv(XY xy, PJ *P) { /* Guam elliptical */ - LP lp = {0.0,0.0}; +static PJ_LP e_guam_inv(PJ_XY xy, PJ *P) { /* Guam elliptical */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double x2, t = 0.0; int i; @@ -195,8 +195,8 @@ static LP e_guam_inv(XY xy, PJ *P) { /* Guam elliptical */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double c; double azi1, azi2, s12, x2, y2, lat1, lon1, lat2, lon2; @@ -227,8 +227,8 @@ static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double cosc, c_rh, sinc; diff --git a/src/projections/airy.cpp b/src/projections/airy.cpp index 0eb5efd7..9421edc9 100644 --- a/src/projections/airy.cpp +++ b/src/projections/airy.cpp @@ -58,8 +58,8 @@ struct pj_opaque { # define EPS 1.e-10 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double sinlam, coslam, cosphi, sinphi, t, s, Krho, cosz; diff --git a/src/projections/aitoff.cpp b/src/projections/aitoff.cpp index effd2c29..9388b75a 100644 --- a/src/projections/aitoff.cpp +++ b/src/projections/aitoff.cpp @@ -62,8 +62,8 @@ FORWARD(s_forward); /* spheroid */ #endif -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double c, d; @@ -100,8 +100,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ * ************************************************************************************/ -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); int iter, MAXITER = 10, round = 0, MAXROUND = 20; double EPSILON = 1e-12, D, C, f1, f2, f1p, f1l, f2p, f2l, dp, dl, sl, sp, cp, cl, x, y; diff --git a/src/projections/august.cpp b/src/projections/august.cpp index b5a21ef7..f7c24e3a 100644 --- a/src/projections/august.cpp +++ b/src/projections/august.cpp @@ -2,14 +2,15 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(august, "August Epicycloidal") "\n\tMisc Sph, no inv"; #define M 1.333333333333333 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double t, c1, c, x1, x12, y1, y12; (void) P; diff --git a/src/projections/bacon.cpp b/src/projections/bacon.cpp index 6c6350fe..74337ff2 100644 --- a/src/projections/bacon.cpp +++ b/src/projections/bacon.cpp @@ -4,6 +4,7 @@ #include #include +#include "proj.h" #include "projects.h" @@ -19,8 +20,8 @@ PROJ_HEAD(ortel, "Ortelius Oval") "\n\tMisc Sph, no inv"; PROJ_HEAD(bacon, "Bacon Globular") "\n\tMisc Sph, no inv"; -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double ax, f; diff --git a/src/projections/bertin1953.cpp b/src/projections/bertin1953.cpp index 2203d6f1..41301e7d 100644 --- a/src/projections/bertin1953.cpp +++ b/src/projections/bertin1953.cpp @@ -28,8 +28,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double fu = 1.4, k = 12., w = 1.68, d; diff --git a/src/projections/bipc.cpp b/src/projections/bipc.cpp index 19a6bbe1..d0b77092 100644 --- a/src/projections/bipc.cpp +++ b/src/projections/bipc.cpp @@ -36,8 +36,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double cphi, sphi, tphi, t, al, Az, z, Av, cdlam, sdlam, r; int tag; @@ -113,8 +113,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double t, r, rp, rl, al, z = 0.0, fAz, Az, s, c, Av; int neg, i; diff --git a/src/projections/boggs.cpp b/src/projections/boggs.cpp index 119357c0..df5afbd2 100644 --- a/src/projections/boggs.cpp +++ b/src/projections/boggs.cpp @@ -1,6 +1,7 @@ #define PJ_LIB__ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(boggs, "Boggs Eumorphic") "\n\tPCyl, no inv, Sph"; @@ -11,8 +12,8 @@ PROJ_HEAD(boggs, "Boggs Eumorphic") "\n\tPCyl, no inv, Sph"; # define FYC 0.49931 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double theta, th1, c; int i; (void) P; diff --git a/src/projections/bonne.cpp b/src/projections/bonne.cpp index 385c1c4b..2004c6e9 100644 --- a/src/projections/bonne.cpp +++ b/src/projections/bonne.cpp @@ -20,8 +20,8 @@ struct pj_opaque { } // anonymous namespace -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double rh, E, c; @@ -33,8 +33,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double E, rh; @@ -48,8 +48,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double rh; @@ -67,8 +67,8 @@ static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double s, rh; diff --git a/src/projections/calcofi.cpp b/src/projections/calcofi.cpp index e81e4d2a..2ca79553 100644 --- a/src/projections/calcofi.cpp +++ b/src/projections/calcofi.cpp @@ -35,8 +35,8 @@ whatever ellipsoid is provided. */ #define ROTATION_ANGLE 0.52359877559829882 /*CalCOFI angle of 30 deg in rad */ -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; double oy; /* pt O y value in Mercator */ double l1; /* l1 and l2 are distances calculated using trig that sum to the east/west distance between point O and point xy */ @@ -67,8 +67,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double oy; double l1; double l2; @@ -93,8 +93,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; double ry; /* y value of point r */ double oymctr; /* Mercator-transformed y value of point O */ double rymctr; /* Mercator-transformed ry */ @@ -116,8 +116,8 @@ static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; double ry; double oymctr; double rymctr; diff --git a/src/projections/cass.cpp b/src/projections/cass.cpp index c831558c..7afa2bd8 100644 --- a/src/projections/cass.cpp +++ b/src/projections/cass.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" PROJ_HEAD(cass, "Cassini") "\n\tCyl, Sph&Ell"; @@ -24,9 +25,9 @@ struct pj_opaque { -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ double n, t, a1, c, a2, tn; - XY xy = {0.0, 0.0}; + PJ_XY xy = {0.0, 0.0}; struct pj_opaque *Q = static_cast(P->opaque); xy.y = pj_mlfn (lp.phi, n = sin (lp.phi), c = cos (lp.phi), Q->en); @@ -46,17 +47,17 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0, 0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0, 0.0}; xy.x = asin (cos (lp.phi) * sin (lp.lam)); xy.y = atan2 (tan (lp.phi), cos (lp.lam)) - P->phi0; return xy; } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ double n, t, r, dd, d2, tn, ph1; - LP lp = {0.0, 0.0}; + PJ_LP lp = {0.0, 0.0}; struct pj_opaque *Q = static_cast(P->opaque); ph1 = pj_inv_mlfn (P->ctx, Q->m0 + xy.y, P->es, Q->en); @@ -75,8 +76,8 @@ static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; double dd; lp.phi = asin(sin(dd = xy.y + P->phi0) * cos(xy.x)); lp.lam = atan2(tan(xy.x), cos(dd)); diff --git a/src/projections/cc.cpp b/src/projections/cc.cpp index 152e6e4a..7ac886f0 100644 --- a/src/projections/cc.cpp +++ b/src/projections/cc.cpp @@ -9,8 +9,8 @@ PROJ_HEAD(cc, "Central Cylindrical") "\n\tCyl, Sph"; #define EPS10 1.e-10 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; if (fabs (fabs(lp.phi) - M_HALFPI) <= EPS10) { proj_errno_set(P, PJD_ERR_TOLERANCE_CONDITION); return xy; @@ -21,8 +21,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; (void) P; lp.phi = atan(xy.y); lp.lam = xy.x; diff --git a/src/projections/ccon.cpp b/src/projections/ccon.cpp index 4f7dedb4..4513a6f9 100644 --- a/src/projections/ccon.cpp +++ b/src/projections/ccon.cpp @@ -43,8 +43,8 @@ PROJ_HEAD(ccon, "Central Conic") -static XY forward (LP lp, PJ *P) { - XY xy = {0.0,0.0}; +static PJ_XY forward (PJ_LP lp, PJ *P) { + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double r; @@ -56,8 +56,8 @@ static XY forward (LP lp, PJ *P) { } -static LP inverse (XY xy, PJ *P) { - LP lp = {0.0,0.0}; +static PJ_LP inverse (PJ_XY xy, PJ *P) { + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); xy.y = Q->ctgphi1 - xy.y; diff --git a/src/projections/cea.cpp b/src/projections/cea.cpp index f8275b62..4abb5543 100644 --- a/src/projections/cea.cpp +++ b/src/projections/cea.cpp @@ -17,32 +17,32 @@ PROJ_HEAD(cea, "Equal Area Cylindrical") "\n\tCyl, Sph&Ell\n\tlat_ts="; # define EPS 1e-10 -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; xy.x = P->k0 * lp.lam; xy.y = 0.5 * pj_qsfn (sin (lp.phi), P->e, P->one_es) / P->k0; return xy; } -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; xy.x = P->k0 * lp.lam; xy.y = sin(lp.phi) / P->k0; return xy; } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; lp.phi = pj_authlat(asin( 2. * xy.y * P->k0 / static_cast(P->opaque)->qp), static_cast(P->opaque)->apa); lp.lam = xy.x / P->k0; return lp; } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; double t; if ((t = fabs(xy.y *= P->k0)) - EPS <= 1.) { diff --git a/src/projections/chamb.cpp b/src/projections/chamb.cpp index a490e817..c62e35f1 100644 --- a/src/projections/chamb.cpp +++ b/src/projections/chamb.cpp @@ -13,10 +13,10 @@ struct pj_opaque { double phi, lam; double cosphi, sinphi; VECT v; - XY p; + PJ_XY p; double Az; } c[3]; - XY p; + PJ_XY p; double beta_0, beta_1, beta_2; }; } // anonymous namespace @@ -54,8 +54,8 @@ static double lc(projCtx ctx, double b,double c,double a) { } -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy; struct pj_opaque *Q = static_cast(P->opaque); double sinphi, cosphi, a; VECT v[3]; diff --git a/src/projections/collg.cpp b/src/projections/collg.cpp index 7904de29..5f4de7c6 100644 --- a/src/projections/collg.cpp +++ b/src/projections/collg.cpp @@ -11,8 +11,8 @@ PROJ_HEAD(collg, "Collignon") "\n\tPCyl, Sph"; #define ONEEPS 1.0000001 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; (void) P; if ((xy.y = 1. - sin(lp.phi)) <= 0.) xy.y = 0.; @@ -24,8 +24,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; lp.phi = xy.y / FYC - 1.; if (fabs(lp.phi = 1. - lp.phi * lp.phi) < 1.) lp.phi = asin(lp.phi); diff --git a/src/projections/comill.cpp b/src/projections/comill.cpp index b6e0192e..dd0ce5c0 100644 --- a/src/projections/comill.cpp +++ b/src/projections/comill.cpp @@ -10,6 +10,7 @@ Port to PROJ.4 by Bojan Savric, 4 April 2016 #include +#include "proj.h" #include "projects.h" PROJ_HEAD(comill, "Compact Miller") "\n\tCyl, Sph"; @@ -25,8 +26,8 @@ PROJ_HEAD(comill, "Compact Miller") "\n\tCyl, Sph"; /* Not sure at all of the appropriate number for MAX_ITER... */ #define MAX_ITER 100 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double lat_sq; (void) P; /* silence unused parameter warnings */ @@ -38,8 +39,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; double yc, tol, y2, f, fder; int i; diff --git a/src/projections/crast.cpp b/src/projections/crast.cpp index 4e4dee8b..76846dbe 100644 --- a/src/projections/crast.cpp +++ b/src/projections/crast.cpp @@ -1,6 +1,7 @@ #define PJ_LIB__ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(crast, "Craster Parabolic (Putnins P4)") "\n\tPCyl, Sph"; @@ -12,8 +13,8 @@ PROJ_HEAD(crast, "Craster Parabolic (Putnins P4)") "\n\tPCyl, Sph"; #define THIRD 0.333333333333333333 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; (void) P; lp.phi *= THIRD; xy.x = XM * lp.lam * (2. * cos(lp.phi + lp.phi) - 1.); @@ -22,8 +23,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; (void) P; lp.phi = 3. * asin(xy.y * RYM); lp.lam = xy.x * RXM / (2. * cos((lp.phi + lp.phi) * THIRD) - 1); diff --git a/src/projections/denoy.cpp b/src/projections/denoy.cpp index 5c337c45..d10d8881 100644 --- a/src/projections/denoy.cpp +++ b/src/projections/denoy.cpp @@ -1,6 +1,7 @@ #define PJ_LIB__ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(denoy, "Denoyer Semi-Elliptical") "\n\tPCyl, no inv, Sph"; @@ -12,8 +13,8 @@ PROJ_HEAD(denoy, "Denoyer Semi-Elliptical") "\n\tPCyl, no inv, Sph"; #define D5 0.03 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0, 0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0, 0.0}; (void) P; xy.y = lp.phi; xy.x = lp.lam; diff --git a/src/projections/eck1.cpp b/src/projections/eck1.cpp index 88a7430c..d8dbc2c5 100644 --- a/src/projections/eck1.cpp +++ b/src/projections/eck1.cpp @@ -1,6 +1,7 @@ #define PJ_LIB__ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(eck1, "Eckert I") "\n\tPCyl, Sph"; @@ -8,8 +9,8 @@ PROJ_HEAD(eck1, "Eckert I") "\n\tPCyl, Sph"; #define RP 0.31830988618379067154 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; (void) P; xy.x = FC * lp.lam * (1. - RP * fabs(lp.phi)); @@ -19,8 +20,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; (void) P; lp.phi = xy.y / FC; diff --git a/src/projections/eck2.cpp b/src/projections/eck2.cpp index f76ab4ec..efedf8b7 100644 --- a/src/projections/eck2.cpp +++ b/src/projections/eck2.cpp @@ -13,8 +13,8 @@ PROJ_HEAD(eck2, "Eckert II") "\n\tPCyl, Sph"; #define ONEEPS 1.0000001 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; (void) P; xy.x = FXC * lp.lam * (xy.y = sqrt(4. - 3. * sin(fabs(lp.phi)))); @@ -25,8 +25,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; (void) P; lp.lam = xy.x / (FXC * ( lp.phi = 2. - fabs(xy.y) / FYC) ); diff --git a/src/projections/eck3.cpp b/src/projections/eck3.cpp index 90376631..71163083 100644 --- a/src/projections/eck3.cpp +++ b/src/projections/eck3.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" PROJ_HEAD(eck3, "Eckert III") "\n\tPCyl, Sph"; @@ -17,8 +18,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); xy.y = Q->C_y * lp.phi; @@ -27,8 +28,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double denominator; diff --git a/src/projections/eck4.cpp b/src/projections/eck4.cpp index 4fa4c21f..64a1158f 100644 --- a/src/projections/eck4.cpp +++ b/src/projections/eck4.cpp @@ -2,6 +2,7 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(eck4, "Eckert IV") "\n\tPCyl, Sph"; @@ -15,8 +16,8 @@ PROJ_HEAD(eck4, "Eckert IV") "\n\tPCyl, Sph"; #define NITER 6 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double p, V, s, c; int i; (void) P; @@ -43,8 +44,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; double c; lp.phi = aasin(P->ctx,xy.y * RC_y); diff --git a/src/projections/eck5.cpp b/src/projections/eck5.cpp index f9f28460..ab207aab 100644 --- a/src/projections/eck5.cpp +++ b/src/projections/eck5.cpp @@ -2,6 +2,7 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(eck5, "Eckert V") "\n\tPCyl, Sph"; @@ -12,8 +13,8 @@ PROJ_HEAD(eck5, "Eckert V") "\n\tPCyl, Sph"; #define RYF 1.13375401361911319568 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; (void) P; xy.x = XF * (1. + cos(lp.phi)) * lp.lam; xy.y = YF * lp.phi; @@ -22,8 +23,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; (void) P; lp.lam = RXF * xy.x / (1. + cos( lp.phi = RYF * xy.y)); diff --git a/src/projections/eqc.cpp b/src/projections/eqc.cpp index 3fdb6dc0..f7a0eede 100644 --- a/src/projections/eqc.cpp +++ b/src/projections/eqc.cpp @@ -16,8 +16,8 @@ PROJ_HEAD(eqc, "Equidistant Cylindrical (Plate Carree)") "\n\tCyl, Sph\n\tlat_ts=[, lat_0=0]"; -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); xy.x = Q->rc * lp.lam; @@ -27,8 +27,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); lp.lam = xy.x / Q->rc; diff --git a/src/projections/eqdc.cpp b/src/projections/eqdc.cpp index 0831fca4..1aa037a6 100644 --- a/src/projections/eqdc.cpp +++ b/src/projections/eqdc.cpp @@ -25,8 +25,8 @@ PROJ_HEAD(eqdc, "Equidistant Conic") # define EPS10 1.e-10 -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); Q->rho = Q->c - (Q->ellips ? pj_mlfn(lp.phi, sin(lp.phi), @@ -38,8 +38,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); if ((Q->rho = hypot(xy.x, xy.y = Q->rho0 - xy.y)) != 0.0 ) { diff --git a/src/projections/eqearth.cpp b/src/projections/eqearth.cpp index e5c1f974..96ea46ba 100644 --- a/src/projections/eqearth.cpp +++ b/src/projections/eqearth.cpp @@ -16,6 +16,7 @@ Added ellipsoidal equations by Bojan Savric, 22 August 2018 #include #include +#include "proj.h" #include "projects.h" PROJ_HEAD(eqearth, "Equal Earth") "\n\tPCyl, Sph&Ell"; @@ -39,8 +40,8 @@ struct pj_opaque { }; } // anonymous namespace -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal/spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal/spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double sbeta; double psi, psi2, psi6; @@ -73,8 +74,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal/spheroidal, forwar } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal/spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal/spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double yc, y2, y6; int i; diff --git a/src/projections/etmerc.cpp b/src/projections/etmerc.cpp index 05f86f37..9b75c606 100644 --- a/src/projections/etmerc.cpp +++ b/src/projections/etmerc.cpp @@ -145,8 +145,8 @@ static double clens(double *a, int size, double arg_r) { -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double sin_Cn, cos_Cn, cos_Ce, sin_Ce, dCn, dCe; double Cn = lp.phi, Ce = lp.lam; @@ -181,8 +181,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double sin_Cn, cos_Cn, cos_Ce, sin_Ce, dCn, dCe; double Cn = xy.y, Ce = xy.x; diff --git a/src/projections/fahey.cpp b/src/projections/fahey.cpp index 85e0ab69..bcce7eef 100644 --- a/src/projections/fahey.cpp +++ b/src/projections/fahey.cpp @@ -2,6 +2,7 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(fahey, "Fahey") "\n\tPcyl, Sph"; @@ -9,8 +10,8 @@ PROJ_HEAD(fahey, "Fahey") "\n\tPcyl, Sph"; #define TOL 1e-6 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; (void) P; xy.x = tan(0.5 * lp.phi); @@ -20,8 +21,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; (void) P; xy.y /= 1.819152; diff --git a/src/projections/fouc_s.cpp b/src/projections/fouc_s.cpp index c5e711de..08db782e 100644 --- a/src/projections/fouc_s.cpp +++ b/src/projections/fouc_s.cpp @@ -18,8 +18,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double t; @@ -30,8 +30,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double V; int i; diff --git a/src/projections/gall.cpp b/src/projections/gall.cpp index a8697482..d3eba43c 100644 --- a/src/projections/gall.cpp +++ b/src/projections/gall.cpp @@ -2,6 +2,7 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(gall, "Gall (Gall Stereographic)") "\n\tCyl, Sph"; @@ -12,8 +13,8 @@ PROJ_HEAD(gall, "Gall (Gall Stereographic)") "\n\tCyl, Sph"; #define RXF 1.41421356237309504880 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; (void) P; xy.x = XF * lp.lam; @@ -23,8 +24,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; (void) P; lp.lam = RXF * xy.x; diff --git a/src/projections/geos.cpp b/src/projections/geos.cpp index 90fb01ab..1e6c2d69 100644 --- a/src/projections/geos.cpp +++ b/src/projections/geos.cpp @@ -52,8 +52,8 @@ struct pj_opaque { PROJ_HEAD(geos, "Geostationary Satellite View") "\n\tAzi, Sph&Ell\n\th="; -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double Vx, Vy, Vz, tmp; @@ -82,8 +82,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double r, Vx, Vy, Vz, tmp; @@ -118,8 +118,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double Vx, Vy, Vz, a, b, det, k; @@ -155,8 +155,8 @@ static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double Vx, Vy, Vz, a, b, det, k; diff --git a/src/projections/gins8.cpp b/src/projections/gins8.cpp index cc422437..a8539db4 100644 --- a/src/projections/gins8.cpp +++ b/src/projections/gins8.cpp @@ -1,4 +1,6 @@ #define PJ_LIB__ + +#include "proj.h" #include "projects.h" PROJ_HEAD(gins8, "Ginsburg VIII (TsNIIGAiK)") "\n\tPCyl, Sph, no inv"; @@ -8,8 +10,8 @@ PROJ_HEAD(gins8, "Ginsburg VIII (TsNIIGAiK)") "\n\tPCyl, Sph, no inv"; #define C12 0.08333333333333333 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double t = lp.phi * lp.phi; (void) P; diff --git a/src/projections/gn_sinu.cpp b/src/projections/gn_sinu.cpp index 530de229..f301e05c 100644 --- a/src/projections/gn_sinu.cpp +++ b/src/projections/gn_sinu.cpp @@ -23,8 +23,8 @@ struct pj_opaque { } // anonymous namespace -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; double s, c; xy.y = pj_mlfn(lp.phi, s = sin(lp.phi), c = cos(lp.phi), static_cast(P->opaque)->en); @@ -33,8 +33,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; double s; if ((s = fabs(lp.phi = pj_inv_mlfn(P->ctx, xy.y, P->es, static_cast(P->opaque)->en))) < M_HALFPI) { @@ -50,8 +50,8 @@ static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ } -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); if (Q->m == 0.0) @@ -80,8 +80,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); xy.y /= Q->C_y; diff --git a/src/projections/gnom.cpp b/src/projections/gnom.cpp index a4b5e35d..513d9b42 100644 --- a/src/projections/gnom.cpp +++ b/src/projections/gnom.cpp @@ -29,8 +29,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double coslam, cosphi, sinphi; @@ -77,8 +77,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double rh, cosz, sinz; diff --git a/src/projections/goode.cpp b/src/projections/goode.cpp index c79d125e..2717a424 100644 --- a/src/projections/goode.cpp +++ b/src/projections/goode.cpp @@ -21,8 +21,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy; struct pj_opaque *Q = static_cast(P->opaque); if (fabs(lp.phi) <= PHI_LIM) @@ -35,8 +35,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp; struct pj_opaque *Q = static_cast(P->opaque); if (fabs(xy.y) <= PHI_LIM) diff --git a/src/projections/gstmerc.cpp b/src/projections/gstmerc.cpp index 9b819bac..69087228 100644 --- a/src/projections/gstmerc.cpp +++ b/src/projections/gstmerc.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" PROJ_HEAD(gstmerc, "Gauss-Schreiber Transverse Mercator (aka Gauss-Laborde Reunion)") @@ -21,8 +22,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double L, Ls, sinLs1, Ls1; @@ -37,8 +38,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double L, LC, sinC; diff --git a/src/projections/hammer.cpp b/src/projections/hammer.cpp index d4caa656..4c230a48 100644 --- a/src/projections/hammer.cpp +++ b/src/projections/hammer.cpp @@ -19,8 +19,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double cosphi, d; @@ -31,8 +31,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double z; diff --git a/src/projections/hatano.cpp b/src/projections/hatano.cpp index 019671cc..33bea55b 100644 --- a/src/projections/hatano.cpp +++ b/src/projections/hatano.cpp @@ -22,8 +22,8 @@ PROJ_HEAD(hatano, "Hatano Asymmetrical Equal Area") "\n\tPCyl, Sph"; #define RXC 1.17647058823529411764 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double th1, c; int i; (void) P; @@ -40,8 +40,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; double th; th = xy.y * ( xy.y < 0. ? RYCS : RYCN); diff --git a/src/projections/healpix.cpp b/src/projections/healpix.cpp index 7f0b3e83..72dac71c 100644 --- a/src/projections/healpix.cpp +++ b/src/projections/healpix.cpp @@ -1,6 +1,6 @@ /****************************************************************************** * Project: PROJ.4 - * Purpose: Implementation of the HEALPix and rHEALPix projections. + * Purpose: Implementation of the HEAPJ_LPix and rHEAPJ_LPix projections. * For background see . * Authors: Alex Raichev (raichev@cs.auckland.ac.nz) * Michael Speth (spethm@landcareresearch.co.nz) @@ -37,8 +37,8 @@ #include "proj.h" #include "projects.h" -PROJ_HEAD(healpix, "HEALPix") "\n\tSph&Ell"; -PROJ_HEAD(rhealpix, "rHEALPix") "\n\tSph&Ell\n\tnorth_square= south_square="; +PROJ_HEAD(healpix, "HEAPJ_LPix") "\n\tSph&Ell"; +PROJ_HEAD(rhealpix, "rHEAPJ_LPix") "\n\tSph&Ell\n\tnorth_square= south_square="; /* Matrix for counterclockwise rotation by pi/2: */ # define R1 {{ 0,-1},{ 1, 0}} @@ -116,7 +116,7 @@ static int pnpoly(int nvert, double vert[][2], double testx, double testy) { int i; int counter = 0; double xinters; - XY p1, p2; + PJ_XY p1, p2; /* Check for boundrary cases */ for (i = 0; i < nvert; i++) { @@ -153,10 +153,10 @@ static int pnpoly(int nvert, double vert[][2], double testx, double testy) { /** * Return 1 if (x, y) lies in (the interior or boundary of) the image of the - * HEALPix projection (in case proj=0) or in the image the rHEALPix projection + * HEAPJ_LPix projection (in case proj=0) or in the image the rHEAPJ_LPix projection * (in case proj=1), and return 0 otherwise. - * @param north_square the position of the north polar square (rHEALPix only) - * @param south_square the position of the south polar square (rHEALPix only) + * @param north_square the position of the north polar square (rHEAPJ_LPix only) + * @param south_square the position of the south polar square (rHEAPJ_LPix only) **/ static int in_image(double x, double y, int proj, int north_square, int south_square) { @@ -251,14 +251,14 @@ static double auth_lat(PJ *P, double alpha, int inverse) { /** - * Return the HEALPix projection of the longitude-latitude point lp on + * Return the HEAPJ_LPix projection of the longitude-latitude point lp on * the unit sphere. **/ -static XY healpix_sphere(LP lp) { +static PJ_XY healpix_sphere(PJ_LP lp) { double lam = lp.lam; double phi = lp.phi; double phi0 = asin(2.0/3.0); - XY xy; + PJ_XY xy; /* equatorial region */ if ( fabs(phi) <= phi0) { @@ -282,8 +282,8 @@ static XY healpix_sphere(LP lp) { /** * Return the inverse of healpix_sphere(). **/ -static LP healpix_sphere_inverse(XY xy) { - LP lp; +static PJ_LP healpix_sphere_inverse(PJ_XY xy) { + PJ_LP lp; double x = xy.x; double y = xy.y; double y0 = M_FORTPI; @@ -354,10 +354,10 @@ static void dot_product(const double a[2][2], const double b[2], double *ret) { /** * Return the number of the polar cap, the pole point coordinates, and * the region that (x, y) lies in. - * If inverse=0, then assume (x,y) lies in the image of the HEALPix + * If inverse=0, then assume (x,y) lies in the image of the HEAPJ_LPix * projection of the unit sphere. * If inverse=1, then assume (x,y) lies in the image of the - * (north_square, south_square)-rHEALPix projection of the unit sphere. + * (north_square, south_square)-rHEAPJ_LPix projection of the unit sphere. **/ static CapMap get_cap(double x, double y, int north_square, int south_square, int inverse) { @@ -412,8 +412,8 @@ static CapMap get_cap(double x, double y, int north_square, int south_square, capmap.cn = 0; return capmap; } - /* Polar Region, find the HEALPix polar cap number that - x, y moves to when rHEALPix polar square is disassembled. */ + /* Polar Region, find the HEAPJ_LPix polar cap number that + x, y moves to when rHEAPJ_LPix polar square is disassembled. */ if (capmap.region == CapMap::north) { if (y >= -x - M_FORTPI - EPS && y < x + 5*M_FORTPI - EPS) { capmap.cn = (north_square + 1) % 4; @@ -441,7 +441,7 @@ static CapMap get_cap(double x, double y, int north_square, int south_square, /** - * Rearrange point (x, y) in the HEALPix projection by + * Rearrange point (x, y) in the HEAPJ_LPix projection by * combining the polar caps into two polar squares. * Put the north polar square in position north_square and * the south polar square in position south_square. @@ -449,9 +449,9 @@ static CapMap get_cap(double x, double y, int north_square, int south_square, * @param north_square integer between 0 and 3. * @param south_square integer between 0 and 3. **/ -static XY combine_caps(double x, double y, int north_square, int south_square, +static PJ_XY combine_caps(double x, double y, int north_square, int south_square, int inverse) { - XY xy; + PJ_XY xy; double v[2]; double c[2]; double vector[2]; @@ -512,22 +512,22 @@ static XY combine_caps(double x, double y, int north_square, int south_square, } -static XY s_healpix_forward(LP lp, PJ *P) { /* sphere */ +static PJ_XY s_healpix_forward(PJ_LP lp, PJ *P) { /* sphere */ (void) P; return healpix_sphere(lp); } -static XY e_healpix_forward(LP lp, PJ *P) { /* ellipsoid */ +static PJ_XY e_healpix_forward(PJ_LP lp, PJ *P) { /* ellipsoid */ lp.phi = auth_lat(P, lp.phi, 0); return healpix_sphere(lp); } -static LP s_healpix_inverse(XY xy, PJ *P) { /* sphere */ - /* Check whether (x, y) lies in the HEALPix image */ +static PJ_LP s_healpix_inverse(PJ_XY xy, PJ *P) { /* sphere */ + /* Check whether (x, y) lies in the HEAPJ_LPix image */ if (in_image(xy.x, xy.y, 0, 0, 0) == 0) { - LP lp; + PJ_LP lp; lp.lam = HUGE_VAL; lp.phi = HUGE_VAL; pj_ctx_set_errno(P->ctx, PJD_ERR_INVALID_X_OR_Y); @@ -537,10 +537,10 @@ static LP s_healpix_inverse(XY xy, PJ *P) { /* sphere */ } -static LP e_healpix_inverse(XY xy, PJ *P) { /* ellipsoid */ - LP lp = {0.0,0.0}; +static PJ_LP e_healpix_inverse(PJ_XY xy, PJ *P) { /* ellipsoid */ + PJ_LP lp = {0.0,0.0}; - /* Check whether (x, y) lies in the HEALPix image. */ + /* Check whether (x, y) lies in the HEAPJ_LPix image. */ if (in_image(xy.x, xy.y, 0, 0, 0) == 0) { lp.lam = HUGE_VAL; lp.phi = HUGE_VAL; @@ -553,29 +553,29 @@ static LP e_healpix_inverse(XY xy, PJ *P) { /* ellipsoid */ } -static XY s_rhealpix_forward(LP lp, PJ *P) { /* sphere */ +static PJ_XY s_rhealpix_forward(PJ_LP lp, PJ *P) { /* sphere */ struct pj_opaque *Q = static_cast(P->opaque); - XY xy = healpix_sphere(lp); + PJ_XY xy = healpix_sphere(lp); return combine_caps(xy.x, xy.y, Q->north_square, Q->south_square, 0); } -static XY e_rhealpix_forward(LP lp, PJ *P) { /* ellipsoid */ +static PJ_XY e_rhealpix_forward(PJ_LP lp, PJ *P) { /* ellipsoid */ struct pj_opaque *Q = static_cast(P->opaque); - XY xy; + PJ_XY xy; lp.phi = auth_lat(P, lp.phi, 0); xy = healpix_sphere(lp); return combine_caps(xy.x, xy.y, Q->north_square, Q->south_square, 0); } -static LP s_rhealpix_inverse(XY xy, PJ *P) { /* sphere */ +static PJ_LP s_rhealpix_inverse(PJ_XY xy, PJ *P) { /* sphere */ struct pj_opaque *Q = static_cast(P->opaque); - /* Check whether (x, y) lies in the rHEALPix image. */ + /* Check whether (x, y) lies in the rHEAPJ_LPix image. */ if (in_image(xy.x, xy.y, 1, Q->north_square, Q->south_square) == 0) { - LP lp; + PJ_LP lp; lp.lam = HUGE_VAL; lp.phi = HUGE_VAL; pj_ctx_set_errno(P->ctx, PJD_ERR_INVALID_X_OR_Y); @@ -586,11 +586,11 @@ static LP s_rhealpix_inverse(XY xy, PJ *P) { /* sphere */ } -static LP e_rhealpix_inverse(XY xy, PJ *P) { /* ellipsoid */ +static PJ_LP e_rhealpix_inverse(PJ_XY xy, PJ *P) { /* ellipsoid */ struct pj_opaque *Q = static_cast(P->opaque); - LP lp = {0.0,0.0}; + PJ_LP lp = {0.0,0.0}; - /* Check whether (x, y) lies in the rHEALPix image. */ + /* Check whether (x, y) lies in the rHEAPJ_LPix image. */ if (in_image(xy.x, xy.y, 1, Q->north_square, Q->south_square) == 0) { lp.lam = HUGE_VAL; lp.phi = HUGE_VAL; diff --git a/src/projections/igh.cpp b/src/projections/igh.cpp index e3576861..1e1cdb01 100644 --- a/src/projections/igh.cpp +++ b/src/projections/igh.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" PROJ_HEAD(igh, "Interrupted Goode Homolosine") "\n\tPCyl, Sph"; @@ -40,8 +41,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy; struct pj_opaque *Q = static_cast(P->opaque); int z; @@ -73,8 +74,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); const double y90 = Q->dy0 + sqrt(2); /* lt=90 corresponds to y=y0+sqrt(2) */ @@ -184,8 +185,8 @@ static PJ *destructor (PJ *P, int errlev) { PJ *PROJECTION(igh) { - XY xy1, xy3; - LP lp = { 0, d4044118 }; + PJ_XY xy1, xy3; + PJ_LP lp = { 0, d4044118 }; struct pj_opaque *Q = static_cast(pj_calloc (1, sizeof (struct pj_opaque))); if (nullptr==Q) return pj_default_destructor (P, ENOMEM); diff --git a/src/projections/imw_p.cpp b/src/projections/imw_p.cpp index 012c5caa..db82e660 100644 --- a/src/projections/imw_p.cpp +++ b/src/projections/imw_p.cpp @@ -48,9 +48,9 @@ static int phi12(PJ *P, double *del, double *sig) { } -static XY loc_for(LP lp, PJ *P, double *yc) { +static PJ_XY loc_for(PJ_LP lp, PJ *P, double *yc) { struct pj_opaque *Q = static_cast(P->opaque); - XY xy; + PJ_XY xy; if (lp.phi == 0.0) { xy.x = lp.lam; @@ -97,17 +97,17 @@ static XY loc_for(LP lp, PJ *P, double *yc) { } -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ double yc; - XY xy = loc_for(lp, P, &yc); + PJ_XY xy = loc_for(lp, P, &yc); return (xy); } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); - XY t; + PJ_XY t; double yc = 0.0; int i = 0; const int N_MAX_ITER = 1000; /* Arbitrarily chosen number... */ diff --git a/src/projections/isea.cpp b/src/projections/isea.cpp index 522e6813..3ce4b623 100644 --- a/src/projections/isea.cpp +++ b/src/projections/isea.cpp @@ -995,8 +995,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); struct isea_pt out; struct isea_geo in; diff --git a/src/projections/krovak.cpp b/src/projections/krovak.cpp index 9ecffb89..6bd98f79 100644 --- a/src/projections/krovak.cpp +++ b/src/projections/krovak.cpp @@ -80,6 +80,7 @@ #include #include +#include "proj.h" #include "projects.h" PROJ_HEAD(krovak, "Krovak") "\n\tPCyl, Ell"; @@ -102,9 +103,9 @@ struct pj_opaque { } // anonymous namespace -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ struct pj_opaque *Q = static_cast(P->opaque); - XY xy = {0.0,0.0}; + PJ_XY xy = {0.0,0.0}; double gfi, u, deltav, s, d, eps, rho; @@ -129,9 +130,9 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ struct pj_opaque *Q = static_cast(P->opaque); - LP lp = {0.0,0.0}; + PJ_LP lp = {0.0,0.0}; double u, deltav, s, d, eps, rho, fi1, xy0; int i; diff --git a/src/projections/labrd.cpp b/src/projections/labrd.cpp index d3930243..77120fa4 100644 --- a/src/projections/labrd.cpp +++ b/src/projections/labrd.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" PROJ_HEAD(labrd, "Laborde") "\n\tCyl, Sph\n\tSpecial for Madagascar"; @@ -15,8 +16,8 @@ struct pj_opaque { } // anonymous namespace -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double V1, V2, ps, sinps, cosps, sinps2, cosps2; double I1, I2, I3, I4, I5, I6, x2, y2, t; @@ -48,8 +49,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); /* t = 0.0 optimization is to avoid a false positive cppcheck warning */ /* (cppcheck git beaf29c15867984aa3c2a15cf15bd7576ccde2b3). Might no */ diff --git a/src/projections/laea.cpp b/src/projections/laea.cpp index dd02c75a..cfdd1326 100644 --- a/src/projections/laea.cpp +++ b/src/projections/laea.cpp @@ -32,8 +32,8 @@ struct pj_opaque { #define EPS10 1.e-10 -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double coslam, sinlam, sinphi, q, sinb=0.0, cosb=0.0, b=0.0; @@ -94,8 +94,8 @@ eqcon: } -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double coslam, cosphi, sinphi; @@ -136,8 +136,8 @@ oblcon: } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double cCe, sCe, q, rho, ab=0.0; @@ -185,8 +185,8 @@ static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double cosz=0.0, rh, sinz=0.0; diff --git a/src/projections/lagrng.cpp b/src/projections/lagrng.cpp index a119ea31..c62b409b 100644 --- a/src/projections/lagrng.cpp +++ b/src/projections/lagrng.cpp @@ -21,8 +21,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double v, c; @@ -45,8 +45,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double c, x2, y2p, y2m; diff --git a/src/projections/larr.cpp b/src/projections/larr.cpp index e4d5d240..4ece694d 100644 --- a/src/projections/larr.cpp +++ b/src/projections/larr.cpp @@ -2,6 +2,7 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(larr, "Larrivee") "\n\tMisc Sph, no inv"; @@ -9,8 +10,8 @@ PROJ_HEAD(larr, "Larrivee") "\n\tMisc Sph, no inv"; #define SIXTH .16666666666666666 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; (void) P; xy.x = 0.5 * lp.lam * (1. + sqrt(cos(lp.phi))); diff --git a/src/projections/lask.cpp b/src/projections/lask.cpp index 46f23edb..d13a94e2 100644 --- a/src/projections/lask.cpp +++ b/src/projections/lask.cpp @@ -1,4 +1,6 @@ #define PJ_LIB__ + +#include "proj.h" #include "projects.h" PROJ_HEAD(lask, "Laskowski") "\n\tMisc Sph, no inv"; @@ -15,8 +17,8 @@ PROJ_HEAD(lask, "Laskowski") "\n\tMisc Sph, no inv"; #define b05 -0.0491032 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double l2, p2; (void) P; diff --git a/src/projections/latlong.cpp b/src/projections/latlong.cpp index 1331d59a..4d22ea5b 100644 --- a/src/projections/latlong.cpp +++ b/src/projections/latlong.cpp @@ -38,8 +38,8 @@ PROJ_HEAD(latlong, "Lat/long (Geodetic alias)") "\n\t"; PROJ_HEAD(longlat, "Lat/long (Geodetic alias)") "\n\t"; - static XY latlong_forward(LP lp, PJ *P) { - XY xy = {0.0,0.0}; + static PJ_XY latlong_forward(PJ_LP lp, PJ *P) { + PJ_XY xy = {0.0,0.0}; (void) P; xy.x = lp.lam; xy.y = lp.phi; @@ -47,8 +47,8 @@ PROJ_HEAD(longlat, "Lat/long (Geodetic alias)") "\n\t"; } -static LP latlong_inverse(XY xy, PJ *P) { - LP lp = {0.0,0.0}; +static PJ_LP latlong_inverse(PJ_XY xy, PJ *P) { + PJ_LP lp = {0.0,0.0}; (void) P; lp.phi = xy.y; lp.lam = xy.x; @@ -56,8 +56,8 @@ static LP latlong_inverse(XY xy, PJ *P) { } - static XYZ latlong_forward_3d (LPZ lpz, PJ *P) { - XYZ xyz = {0,0,0}; + static PJ_XYZ latlong_forward_3d (PJ_LPZ lpz, PJ *P) { + PJ_XYZ xyz = {0,0,0}; (void) P; xyz.x = lpz.lam; xyz.y = lpz.phi; @@ -66,8 +66,8 @@ static LP latlong_inverse(XY xy, PJ *P) { } -static LPZ latlong_inverse_3d (XYZ xyz, PJ *P) { - LPZ lpz = {0,0,0}; +static PJ_LPZ latlong_inverse_3d (PJ_XYZ xyz, PJ *P) { + PJ_LPZ lpz = {0,0,0}; (void) P; lpz.lam = xyz.x; lpz.phi = xyz.y; diff --git a/src/projections/lcc.cpp b/src/projections/lcc.cpp index 7d6e3f57..1b00732f 100644 --- a/src/projections/lcc.cpp +++ b/src/projections/lcc.cpp @@ -20,8 +20,8 @@ struct pj_opaque { } // anonymous namespace -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0., 0.}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0., 0.}; struct pj_opaque *Q = static_cast(P->opaque); double rho; @@ -43,8 +43,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0., 0.}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0., 0.}; struct pj_opaque *Q = static_cast(P->opaque); double rho; diff --git a/src/projections/lcca.cpp b/src/projections/lcca.cpp index 70b5dff9..e475dd6d 100644 --- a/src/projections/lcca.cpp +++ b/src/projections/lcca.cpp @@ -80,8 +80,8 @@ static double fSp(double S, double C) { /* deriv of fs */ } -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double S, r, dr; @@ -94,8 +94,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double theta, dr, S, dif; int i; diff --git a/src/projections/loxim.cpp b/src/projections/loxim.cpp index f68e844a..9c55cfce 100644 --- a/src/projections/loxim.cpp +++ b/src/projections/loxim.cpp @@ -19,8 +19,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); xy.y = lp.phi - Q->phi1; @@ -37,8 +37,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); lp.phi = xy.y + Q->phi1; diff --git a/src/projections/lsat.cpp b/src/projections/lsat.cpp index a0eca1bd..95bf1813 100644 --- a/src/projections/lsat.cpp +++ b/src/projections/lsat.cpp @@ -44,8 +44,8 @@ static void seraz0(double lam, double mult, PJ *P) { } -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); int l, nn; double lamt = 0.0, xlam, sdsq, c, d, s, lamdp = 0.0, phidp, lampp, tanph; @@ -107,8 +107,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); int nn; double lamt, sdsq, s, lamdp, phidp, sppsq, dd, sd, sl, fac, scl, sav, spp; diff --git a/src/projections/mbt_fps.cpp b/src/projections/mbt_fps.cpp index 66ed9458..6edc4103 100644 --- a/src/projections/mbt_fps.cpp +++ b/src/projections/mbt_fps.cpp @@ -2,6 +2,7 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(mbt_fps, "McBryde-Thomas Flat-Pole Sine (No. 2)") "\n\tCyl, Sph"; @@ -15,8 +16,8 @@ PROJ_HEAD(mbt_fps, "McBryde-Thomas Flat-Pole Sine (No. 2)") "\n\tCyl, Sph"; #define C_y 1.44492 #define C1_2 0.33333333333333333333333333 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double k, V, t; int i; (void) P; @@ -36,8 +37,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; double t; lp.phi = C2 * (t = aasin(P->ctx,xy.y / C_y)); diff --git a/src/projections/mbtfpp.cpp b/src/projections/mbtfpp.cpp index 276a43eb..f65b4ee2 100644 --- a/src/projections/mbtfpp.cpp +++ b/src/projections/mbtfpp.cpp @@ -15,8 +15,8 @@ PROJ_HEAD(mbtfpp, "McBride-Thomas Flat-Polar Parabolic") "\n\tCyl, Sph"; #define ONEEPS 1.0000001 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; (void) P; lp.phi = asin(CS * sin(lp.phi)); @@ -26,8 +26,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; lp.phi = xy.y / FYC; if (fabs(lp.phi) >= 1.) { diff --git a/src/projections/mbtfpq.cpp b/src/projections/mbtfpq.cpp index b7c0eb16..0ead16d7 100644 --- a/src/projections/mbtfpq.cpp +++ b/src/projections/mbtfpq.cpp @@ -18,8 +18,8 @@ PROJ_HEAD(mbtfpq, "McBryde-Thomas Flat-Polar Quartic") "\n\tCyl, Sph"; #define RXC 3.20041258076506210122 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double th1, c; int i; (void) P; @@ -36,8 +36,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; double t; lp.phi = RYC * xy.y; diff --git a/src/projections/merc.cpp b/src/projections/merc.cpp index 1998234e..ba12fc8b 100644 --- a/src/projections/merc.cpp +++ b/src/projections/merc.cpp @@ -20,8 +20,8 @@ static double logtanpfpim1(double x) { /* log(tan(x/2 + M_FORTPI)) */ return log(tan(M_FORTPI + .5 * x)); } -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; if (fabs(fabs(lp.phi) - M_HALFPI) <= EPS10) { proj_errno_set(P, PJD_ERR_TOLERANCE_CONDITION); return xy; @@ -32,8 +32,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; if (fabs(fabs(lp.phi) - M_HALFPI) <= EPS10) { proj_errno_set(P, PJD_ERR_TOLERANCE_CONDITION); return xy; @@ -44,8 +44,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; if ((lp.phi = pj_phi2(P->ctx, exp(- xy.y / P->k0), P->e)) == HUGE_VAL) { proj_errno_set(P, PJD_ERR_TOLERANCE_CONDITION); return lp; @@ -55,8 +55,8 @@ static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; lp.phi = atan(sinh(xy.y / P->k0)); lp.lam = xy.x / P->k0; return lp; diff --git a/src/projections/mill.cpp b/src/projections/mill.cpp index 3ea9636f..8171186a 100644 --- a/src/projections/mill.cpp +++ b/src/projections/mill.cpp @@ -2,12 +2,13 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(mill, "Miller Cylindrical") "\n\tCyl, Sph"; -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; (void) P; xy.x = lp.lam; @@ -17,8 +18,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; (void) P; lp.lam = xy.x; diff --git a/src/projections/misrsom.cpp b/src/projections/misrsom.cpp index c84b96e3..7ba74843 100644 --- a/src/projections/misrsom.cpp +++ b/src/projections/misrsom.cpp @@ -62,8 +62,8 @@ static void seraz0(double lam, double mult, PJ *P) { } -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); int l, nn; double lamt = 0.0, xlam, sdsq, c, d, s, lamdp = 0.0, phidp, lampp, tanph; @@ -123,8 +123,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); int nn; double lamt, sdsq, s, lamdp, phidp, sppsq, dd, sd, sl, fac, scl, sav, spp; diff --git a/src/projections/mod_ster.cpp b/src/projections/mod_ster.cpp index 7c4f363b..6603ec60 100644 --- a/src/projections/mod_ster.cpp +++ b/src/projections/mod_ster.cpp @@ -1,6 +1,7 @@ /* based upon Snyder and Linck, USGS-NMD */ #define PJ_LIB__ #include +#include "proj.h" #include "projects.h" #include "proj_math.h" @@ -21,8 +22,8 @@ struct pj_opaque { } // anonymous namespace -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double sinlon, coslon, esphi, chi, schi, cchi, s; COMPLEX p; @@ -45,8 +46,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); int nn; COMPLEX p, fxy, fpxy, dp; diff --git a/src/projections/moll.cpp b/src/projections/moll.cpp index c877a1bb..ec7df64d 100644 --- a/src/projections/moll.cpp +++ b/src/projections/moll.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" PROJ_HEAD(moll, "Mollweide") "\n\tPCyl, Sph"; @@ -19,8 +20,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double k, V; int i; @@ -42,8 +43,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); lp.phi = aasin(P->ctx, xy.y / Q->C_y); lp.lam = xy.x / (Q->C_x * cos(lp.phi)); diff --git a/src/projections/natearth.cpp b/src/projections/natearth.cpp index 27a6b137..c1f1619c 100644 --- a/src/projections/natearth.cpp +++ b/src/projections/natearth.cpp @@ -16,6 +16,7 @@ Port to PROJ.4 by Bernhard Jenny, 6 June 2011 #include +#include "proj.h" #include "projects.h" PROJ_HEAD(natearth, "Natural Earth") "\n\tPCyl, Sph"; @@ -41,8 +42,8 @@ PROJ_HEAD(natearth, "Natural Earth") "\n\tPCyl, Sph"; #define MAX_ITER 100 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double phi2, phi4; (void) P; @@ -54,8 +55,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; double yc, tol, y2, y4, f, fder; int i; (void) P; diff --git a/src/projections/natearth2.cpp b/src/projections/natearth2.cpp index f6aba671..ca46fcfe 100644 --- a/src/projections/natearth2.cpp +++ b/src/projections/natearth2.cpp @@ -9,6 +9,7 @@ Port to PROJ.4 by Bojan Savric, 4 April 2016 #include +#include "proj.h" #include "projects.h" PROJ_HEAD(natearth2, "Natural Earth 2") "\n\tPCyl, Sph"; @@ -33,8 +34,8 @@ PROJ_HEAD(natearth2, "Natural Earth 2") "\n\tPCyl, Sph"; #define MAX_ITER 100 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double phi2, phi4, phi6; (void) P; @@ -48,8 +49,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; double yc, tol, y2, y4, y6, f, fder; int i; (void) P; diff --git a/src/projections/nell.cpp b/src/projections/nell.cpp index 2a7ea32c..aac11ef2 100644 --- a/src/projections/nell.cpp +++ b/src/projections/nell.cpp @@ -2,6 +2,7 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(nell, "Nell") "\n\tPCyl, Sph"; @@ -10,8 +11,8 @@ PROJ_HEAD(nell, "Nell") "\n\tPCyl, Sph"; #define LOOP_TOL 1e-7 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double k, V; int i; (void) P; @@ -32,8 +33,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; lp.lam = 2. * xy.x / (1. + cos(xy.y)); lp.phi = aasin(P->ctx,0.5 * (xy.y + sin(xy.y))); diff --git a/src/projections/nell_h.cpp b/src/projections/nell_h.cpp index 28c3ace7..db679dff 100644 --- a/src/projections/nell_h.cpp +++ b/src/projections/nell_h.cpp @@ -2,6 +2,7 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(nell_h, "Nell-Hammer") "\n\tPCyl, Sph"; @@ -10,8 +11,8 @@ PROJ_HEAD(nell_h, "Nell-Hammer") "\n\tPCyl, Sph"; #define EPS 1e-7 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; (void) P; xy.x = 0.5 * lp.lam * (1. + cos(lp.phi)); @@ -21,8 +22,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; double V, c, p; int i; (void) P; diff --git a/src/projections/nicol.cpp b/src/projections/nicol.cpp index 541d08b2..3805d33d 100644 --- a/src/projections/nicol.cpp +++ b/src/projections/nicol.cpp @@ -2,6 +2,7 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(nicol, "Nicolosi Globular") "\n\tMisc Sph, no inv"; @@ -9,8 +10,8 @@ PROJ_HEAD(nicol, "Nicolosi Globular") "\n\tMisc Sph, no inv"; #define EPS 1e-10 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; (void) P; if (fabs(lp.lam) < EPS) { diff --git a/src/projections/nsper.cpp b/src/projections/nsper.cpp index f93010f8..0f646d00 100644 --- a/src/projections/nsper.cpp +++ b/src/projections/nsper.cpp @@ -38,8 +38,8 @@ PROJ_HEAD(tpers, "Tilted perspective") "\n\tAzi, Sph\n\ttilt= azi= h="; # define EPS10 1.e-10 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double coslam, cosphi, sinphi; @@ -93,8 +93,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double rh, cosz, sinz; diff --git a/src/projections/nzmg.cpp b/src/projections/nzmg.cpp index bf0862fb..a5eb07e2 100644 --- a/src/projections/nzmg.cpp +++ b/src/projections/nzmg.cpp @@ -29,6 +29,7 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(nzmg, "New Zealand Map Grid") "\n\tfixed Earth"; @@ -57,8 +58,8 @@ static const double tpsi[] = { .6399175073, -.1358797613, .063294409, -.02526853 #define Ntphi 8 -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; COMPLEX p; const double *C; int i; @@ -76,8 +77,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; int nn, i; COMPLEX p, f, fp, dp; double den; diff --git a/src/projections/ob_tran.cpp b/src/projections/ob_tran.cpp index d34059a9..85f34f24 100644 --- a/src/projections/ob_tran.cpp +++ b/src/projections/ob_tran.cpp @@ -24,7 +24,7 @@ PROJ_HEAD(ob_tran, "General Oblique Transformation") "\n\tMisc Sph" #define TOL 1e-10 -static XY o_forward(LP lp, PJ *P) { /* spheroid */ +static PJ_XY o_forward(PJ_LP lp, PJ *P) { /* spheroid */ struct pj_opaque *Q = static_cast(P->opaque); double coslam, sinphi, cosphi; @@ -39,7 +39,7 @@ static XY o_forward(LP lp, PJ *P) { /* spheroid */ } -static XY t_forward(LP lp, PJ *P) { /* spheroid */ +static PJ_XY t_forward(PJ_LP lp, PJ *P) { /* spheroid */ struct pj_opaque *Q = static_cast(P->opaque); double cosphi, coslam; @@ -52,12 +52,12 @@ static XY t_forward(LP lp, PJ *P) { /* spheroid */ } -static LP o_inverse(XY xy, PJ *P) { /* spheroid */ +static PJ_LP o_inverse(PJ_XY xy, PJ *P) { /* spheroid */ struct pj_opaque *Q = static_cast(P->opaque); double coslam, sinphi, cosphi; - LP lp = Q->link->inv(xy, Q->link); + PJ_LP lp = Q->link->inv(xy, Q->link); if (lp.lam != HUGE_VAL) { coslam = cos(lp.lam -= Q->lamp); sinphi = sin(lp.phi); @@ -70,12 +70,12 @@ static LP o_inverse(XY xy, PJ *P) { /* spheroid */ } -static LP t_inverse(XY xy, PJ *P) { /* spheroid */ +static PJ_LP t_inverse(PJ_XY xy, PJ *P) { /* spheroid */ struct pj_opaque *Q = static_cast(P->opaque); double cosphi, t; - LP lp = Q->link->inv(xy, Q->link); + PJ_LP lp = Q->link->inv(xy, Q->link); if (lp.lam != HUGE_VAL) { cosphi = cos(lp.phi); t = lp.lam - Q->lamp; diff --git a/src/projections/ocea.cpp b/src/projections/ocea.cpp index 0576ace7..23d0e164 100644 --- a/src/projections/ocea.cpp +++ b/src/projections/ocea.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" PROJ_HEAD(ocea, "Oblique Cylindrical Equal Area") "\n\tCyl, Sph" @@ -20,8 +21,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double t; xy.y = sin(lp.lam); @@ -35,8 +36,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double t, s; diff --git a/src/projections/oea.cpp b/src/projections/oea.cpp index 0c401b2f..78fa29be 100644 --- a/src/projections/oea.cpp +++ b/src/projections/oea.cpp @@ -16,8 +16,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double Az, M, N, cp, sp, cl, shz; @@ -35,8 +35,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double N, M, xp, yp, z, Az, cz, sz, cAz; diff --git a/src/projections/omerc.cpp b/src/projections/omerc.cpp index ead07128..255c38ae 100644 --- a/src/projections/omerc.cpp +++ b/src/projections/omerc.cpp @@ -45,8 +45,8 @@ struct pj_opaque { #define EPS 1.e-10 -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double S, T, U, V, W, temp, u, v; @@ -84,8 +84,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double u, v, Qp, Sp, Tp, Vp, Up; diff --git a/src/projections/ortho.cpp b/src/projections/ortho.cpp index 6ea55248..ef29e62e 100644 --- a/src/projections/ortho.cpp +++ b/src/projections/ortho.cpp @@ -26,15 +26,15 @@ struct pj_opaque { #define EPS10 1.e-10 -static XY forward_error(PJ *P, LP lp, XY xy) { +static PJ_XY forward_error(PJ *P, PJ_LP lp, PJ_XY xy) { proj_errno_set(P, PJD_ERR_TOLERANCE_CONDITION); proj_log_trace(P, "Coordinate (%.3f, %.3f) is on the unprojected hemisphere", proj_todeg(lp.lam), proj_todeg(lp.phi)); return xy; } -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy; struct pj_opaque *Q = static_cast(P->opaque); double coslam, cosphi, sinphi; @@ -67,8 +67,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp; struct pj_opaque *Q = static_cast(P->opaque); double rh, cosc, sinc; diff --git a/src/projections/patterson.cpp b/src/projections/patterson.cpp index 0d19414e..26abfba6 100644 --- a/src/projections/patterson.cpp +++ b/src/projections/patterson.cpp @@ -42,6 +42,7 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(patterson, "Patterson Cylindrical") "\n\tCyl"; @@ -60,8 +61,8 @@ PROJ_HEAD(patterson, "Patterson Cylindrical") "\n\tCyl"; #define MAX_ITER 100 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double phi2; (void) P; @@ -73,8 +74,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; double yc, tol, y2, f, fder; int i; (void) P; diff --git a/src/projections/poly.cpp b/src/projections/poly.cpp index a970fdb1..6a7ff513 100644 --- a/src/projections/poly.cpp +++ b/src/projections/poly.cpp @@ -23,8 +23,8 @@ struct pj_opaque { #define ITOL 1.e-12 -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double ms, sp, cp; @@ -42,8 +42,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double cot, E; @@ -60,8 +60,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); xy.y += Q->ml0; @@ -104,8 +104,8 @@ static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; double B, dphi, tp; int i; diff --git a/src/projections/putp2.cpp b/src/projections/putp2.cpp index d7a847c8..006cb813 100644 --- a/src/projections/putp2.cpp +++ b/src/projections/putp2.cpp @@ -2,6 +2,7 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(putp2, "Putnins P2") "\n\tPCyl, Sph"; @@ -14,8 +15,8 @@ PROJ_HEAD(putp2, "Putnins P2") "\n\tPCyl, Sph"; #define PI_DIV_3 1.0471975511965977 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double p, c, s, V; int i; (void) P; @@ -40,8 +41,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; double c; lp.phi = aasin(P->ctx,xy.y / C_y); diff --git a/src/projections/putp3.cpp b/src/projections/putp3.cpp index 98bb2ff0..ca356bd0 100644 --- a/src/projections/putp3.cpp +++ b/src/projections/putp3.cpp @@ -1,5 +1,7 @@ #define PJ_LIB__ #include + +#include "proj.h" #include "projects.h" namespace { // anonymous namespace @@ -15,8 +17,8 @@ PROJ_HEAD(putp3p, "Putnins P3'") "\n\tPCyl, Sph"; #define RPISQ 0.1013211836 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; xy.x = C * lp.lam * (1. - static_cast(P->opaque)->A * lp.phi * lp.phi); xy.y = C * lp.phi; @@ -25,8 +27,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; lp.phi = xy.y / C; lp.lam = xy.x / (C * (1. - static_cast(P->opaque)->A * lp.phi * lp.phi)); diff --git a/src/projections/putp4p.cpp b/src/projections/putp4p.cpp index 608fc76e..5ec465d2 100644 --- a/src/projections/putp4p.cpp +++ b/src/projections/putp4p.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" namespace { // anonymous namespace @@ -15,8 +16,8 @@ PROJ_HEAD(putp4p, "Putnins P4'") "\n\tPCyl, Sph"; PROJ_HEAD(weren, "Werenskiold I") "\n\tPCyl, Sph"; -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); lp.phi = aasin(P->ctx,0.883883476 * sin(lp.phi)); @@ -28,8 +29,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); lp.phi = aasin(P->ctx,xy.y / Q->C_y); diff --git a/src/projections/putp5.cpp b/src/projections/putp5.cpp index 79e2ad15..2baa3914 100644 --- a/src/projections/putp5.cpp +++ b/src/projections/putp5.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" namespace { // anonymous namespace @@ -18,8 +19,8 @@ PROJ_HEAD(putp5p, "Putnins P5'") "\n\tPCyl, Sph"; #define D 1.2158542 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); xy.x = C * lp.lam * (Q->A - Q->B * sqrt(1. + D * lp.phi * lp.phi)); @@ -29,8 +30,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); lp.phi = xy.y / C; diff --git a/src/projections/putp6.cpp b/src/projections/putp6.cpp index 1186b18b..134bbc8f 100644 --- a/src/projections/putp6.cpp +++ b/src/projections/putp6.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" namespace { // anonymous namespace @@ -19,8 +20,8 @@ PROJ_HEAD(putp6p, "Putnins P6'") "\n\tPCyl, Sph"; #define CON_POLE 1.732050807568877 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double p, r, V; int i; @@ -43,8 +44,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double r; diff --git a/src/projections/qsc.cpp b/src/projections/qsc.cpp index b50a7c95..ab287de8 100644 --- a/src/projections/qsc.cpp +++ b/src/projections/qsc.cpp @@ -43,6 +43,7 @@ #include #include +#include "proj.h" #include "projects.h" /* The six cube faces. */ @@ -118,8 +119,8 @@ static double qsc_shift_lon_origin(double lon, double offset) { } -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double lat, lon; double theta, phi; @@ -234,8 +235,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double mu, nu, cosmu, tannu; double tantheta, theta, cosphi, phi; diff --git a/src/projections/robin.cpp b/src/projections/robin.cpp index 987977ae..d24cd7fa 100644 --- a/src/projections/robin.cpp +++ b/src/projections/robin.cpp @@ -78,8 +78,8 @@ static const struct COEFS Y[] = { /* Not sure at all of the appropriate number for MAX_ITER... */ #define MAX_ITER 100 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; long i; double dphi; (void) P; @@ -100,8 +100,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; long i; double t, t1; struct COEFS T; diff --git a/src/projections/rouss.cpp b/src/projections/rouss.cpp index 3b4428bc..2ac31855 100644 --- a/src/projections/rouss.cpp +++ b/src/projections/rouss.cpp @@ -44,8 +44,8 @@ struct pj_opaque { PROJ_HEAD(rouss, "Roussilhe Stereographic") "\n\tAzi, Ell"; -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double s, al, cp, sp, al2, s2; @@ -65,8 +65,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double s, al, x = xy.x / P->k0, y = xy.y / P->k0, x2, y2;; diff --git a/src/projections/rpoly.cpp b/src/projections/rpoly.cpp index a34f6171..e21e27ac 100644 --- a/src/projections/rpoly.cpp +++ b/src/projections/rpoly.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" namespace { // anonymous namespace @@ -19,8 +20,8 @@ PROJ_HEAD(rpoly, "Rectangular Polyconic") #define EPS 1e-9 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double fa; diff --git a/src/projections/sch.cpp b/src/projections/sch.cpp index 5a2f944b..418ebb5e 100644 --- a/src/projections/sch.cpp +++ b/src/projections/sch.cpp @@ -55,8 +55,8 @@ struct pj_opaque { PROJ_HEAD(sch, "Spherical Cross-track Height") "\n\tMisc\n\tplat_0= plon_0= phdg_0= [h_0=]"; -static LPZ inverse3d(XYZ xyz, PJ *P) { - LPZ lpz = {0.0, 0.0, 0.0}; +static PJ_LPZ inverse3d(PJ_XYZ xyz, PJ *P) { + PJ_LPZ lpz = {0.0, 0.0, 0.0}; struct pj_opaque *Q = static_cast(P->opaque); double temp[3]; double pxyz[3]; @@ -93,8 +93,8 @@ static LPZ inverse3d(XYZ xyz, PJ *P) { return lpz; } -static XYZ forward3d(LPZ lpz, PJ *P) { - XYZ xyz = {0.0, 0.0, 0.0}; +static PJ_XYZ forward3d(PJ_LPZ lpz, PJ *P) { + PJ_XYZ xyz = {0.0, 0.0, 0.0}; struct pj_opaque *Q = static_cast(P->opaque); double temp[3]; double pxyz[3]; diff --git a/src/projections/sconics.cpp b/src/projections/sconics.cpp index 1d19a13d..4e796136 100644 --- a/src/projections/sconics.cpp +++ b/src/projections/sconics.cpp @@ -62,8 +62,8 @@ static int phi12(PJ *P, double *del) { } -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0, 0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0, 0.0}; struct pj_opaque *Q = static_cast(P->opaque); double rho; @@ -85,8 +85,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, (and ellipsoidal?) inverse */ - LP lp = {0.0, 0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, (and ellipsoidal?) inverse */ + PJ_LP lp = {0.0, 0.0}; struct pj_opaque *Q = static_cast(P->opaque); double rho; diff --git a/src/projections/somerc.cpp b/src/projections/somerc.cpp index 15d2e765..6c554e7f 100644 --- a/src/projections/somerc.cpp +++ b/src/projections/somerc.cpp @@ -18,8 +18,8 @@ struct pj_opaque { #define NITER 6 -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0, 0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0, 0.0}; double phip, lamp, phipp, lampp, sp, cp; struct pj_opaque *Q = static_cast(P->opaque); @@ -37,8 +37,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double phip, lamp, phipp, lampp, cp, esp, con, delp; int i; diff --git a/src/projections/stere.cpp b/src/projections/stere.cpp index 1502b2a6..a26c27c2 100644 --- a/src/projections/stere.cpp +++ b/src/projections/stere.cpp @@ -41,8 +41,8 @@ static double ssfn_ (double phit, double sinphi, double eccen) { } -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double coslam, sinlam, sinX = 0.0, cosX = 0.0, X, A = 0.0, sinphi; @@ -89,8 +89,8 @@ xmul: } -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double sinphi, cosphi, coslam, sinlam; @@ -131,8 +131,8 @@ oblcon: } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double cosphi, sinphi, tp=0.0, phi_l=0.0, rho, halfe=0.0, halfpi=0.0; int i; @@ -181,8 +181,8 @@ static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double c, rh, sinc, cosc; diff --git a/src/projections/sterea.cpp b/src/projections/sterea.cpp index bb498068..60431a18 100644 --- a/src/projections/sterea.cpp +++ b/src/projections/sterea.cpp @@ -25,6 +25,7 @@ */ #define PJ_LIB__ #include +#include "proj.h" #include "projects.h" #include "proj_math.h" @@ -43,8 +44,8 @@ PROJ_HEAD(sterea, "Oblique Stereographic Alternative") "\n\tAzimuthal, Sph&Ell"; -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double cosc, sinc, cosl, k; @@ -59,8 +60,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double rho, c, sinc, cosc; diff --git a/src/projections/sts.cpp b/src/projections/sts.cpp index 9f889611..bdb1fd72 100644 --- a/src/projections/sts.cpp +++ b/src/projections/sts.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" PROJ_HEAD(kav5, "Kavraisky V") "\n\tPCyl, Sph"; @@ -19,8 +20,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double c; @@ -39,8 +40,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double c; diff --git a/src/projections/tcc.cpp b/src/projections/tcc.cpp index 64fdc182..ebe21015 100644 --- a/src/projections/tcc.cpp +++ b/src/projections/tcc.cpp @@ -10,8 +10,8 @@ PROJ_HEAD(tcc, "Transverse Central Cylindrical") "\n\tCyl, Sph, no inv"; #define EPS10 1.e-10 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0, 0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0, 0.0}; double b, bt; b = cos (lp.phi) * sin (lp.lam); diff --git a/src/projections/tcea.cpp b/src/projections/tcea.cpp index d30f3df0..6c7b44f5 100644 --- a/src/projections/tcea.cpp +++ b/src/projections/tcea.cpp @@ -2,21 +2,22 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(tcea, "Transverse Cylindrical Equal Area") "\n\tCyl, Sph"; -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; xy.x = cos (lp.phi) * sin (lp.lam) / P->k0; xy.y = P->k0 * (atan2 (tan (lp.phi), cos (lp.lam)) - P->phi0); return xy; } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0, 0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0, 0.0}; double t; xy.y = xy.y / P->k0 + P->phi0; diff --git a/src/projections/times.cpp b/src/projections/times.cpp index e8b4499f..a7ff1b93 100644 --- a/src/projections/times.cpp +++ b/src/projections/times.cpp @@ -33,13 +33,14 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(times, "Times") "\n\tCyl, Sph"; -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ double T, S, S2; - XY xy = {0.0,0.0}; + PJ_XY xy = {0.0,0.0}; (void) P; T = tan(lp.phi/2.0); @@ -53,9 +54,9 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ double T, S, S2; - LP lp = {0.0,0.0}; + PJ_LP lp = {0.0,0.0}; (void) P; T = xy.y / 1.70711; diff --git a/src/projections/tmerc.cpp b/src/projections/tmerc.cpp index 5a2dacbd..29d88d6e 100644 --- a/src/projections/tmerc.cpp +++ b/src/projections/tmerc.cpp @@ -28,8 +28,8 @@ struct pj_opaque { #define FC8 .01785714285714285714 -static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ - XY xy = {0.0, 0.0}; +static PJ_XY e_forward (PJ_LP lp, PJ *P) { /* Ellipsoidal, forward */ + PJ_XY xy = {0.0, 0.0}; struct pj_opaque *Q = static_cast(P->opaque); double al, als, n, cosphi, sinphi, t; @@ -70,8 +70,8 @@ static XY e_forward (LP lp, PJ *P) { /* Ellipsoidal, forward */ } -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double b, cosphi; /* @@ -115,8 +115,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double n, con, cosphi, d, ds, sinphi, t; @@ -149,8 +149,8 @@ static LP e_inverse (XY xy, PJ *P) { /* Ellipsoidal, inverse */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0, 0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0, 0.0}; double h, g; h = exp(xy.x / static_cast(P->opaque)->esp); diff --git a/src/projections/tobmerc.cpp b/src/projections/tobmerc.cpp index 9c939f0b..1889b484 100644 --- a/src/projections/tobmerc.cpp +++ b/src/projections/tobmerc.cpp @@ -19,8 +19,8 @@ static double logtanpfpim1(double x) { /* log(tan(x/2 + M_FORTPI)) */ return log(tan(M_FORTPI + .5 * x)); } -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0, 0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0, 0.0}; double cosphi; if (fabs(fabs(lp.phi) - M_HALFPI) <= EPS10) { @@ -34,8 +34,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ return xy; } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0, 0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0, 0.0}; double cosphi; lp.phi = atan(sinh(xy.y / P->k0)); diff --git a/src/projections/tpeqd.cpp b/src/projections/tpeqd.cpp index 2720327a..e25f8ed3 100644 --- a/src/projections/tpeqd.cpp +++ b/src/projections/tpeqd.cpp @@ -16,8 +16,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0, 0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0, 0.0}; struct pj_opaque *Q = static_cast(P->opaque); double t, z1, z2, dl1, dl2, sp, cp; @@ -37,8 +37,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double cz1, cz2, s, d, cp, sp; diff --git a/src/projections/urm5.cpp b/src/projections/urm5.cpp index 0e3c7e3c..576eac76 100644 --- a/src/projections/urm5.cpp +++ b/src/projections/urm5.cpp @@ -15,8 +15,8 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0, 0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0, 0.0}; struct pj_opaque *Q = static_cast(P->opaque); double t; diff --git a/src/projections/urmfps.cpp b/src/projections/urmfps.cpp index 7103222a..2aa6432c 100644 --- a/src/projections/urmfps.cpp +++ b/src/projections/urmfps.cpp @@ -19,8 +19,8 @@ struct pj_opaque { #define Cy 1.139753528477 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0, 0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0, 0.0}; lp.phi = aasin (P->ctx,static_cast(P->opaque)->n * sin (lp.phi)); xy.x = C_x * lp.lam * cos (lp.phi); xy.y = static_cast(P->opaque)->C_y * lp.phi; @@ -28,8 +28,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0, 0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0, 0.0}; xy.y /= static_cast(P->opaque)->C_y; lp.phi = aasin(P->ctx, sin (xy.y) / static_cast(P->opaque)->n); lp.lam = xy.x / (C_x * cos (xy.y)); diff --git a/src/projections/vandg.cpp b/src/projections/vandg.cpp index d148e210..91811b46 100644 --- a/src/projections/vandg.cpp +++ b/src/projections/vandg.cpp @@ -13,8 +13,8 @@ PROJ_HEAD(vandg, "van der Grinten (I)") "\n\tMisc Sph"; # define HPISQ 4.93480220054467930934 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double al, al2, g, g2, p2; p2 = fabs(lp.phi / M_HALFPI); @@ -58,8 +58,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; double t, c0, c1, c2, c3, al, r2, r, m, d, ay, x2, y2; x2 = xy.x * xy.x; diff --git a/src/projections/vandg2.cpp b/src/projections/vandg2.cpp index 61d50044..a1336029 100644 --- a/src/projections/vandg2.cpp +++ b/src/projections/vandg2.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" namespace { // anonymous namespace @@ -17,8 +18,8 @@ PROJ_HEAD(vandg3, "van der Grinten III") "\n\tMisc Sph, no inv"; #define TOL 1e-10 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; struct pj_opaque *Q = static_cast(P->opaque); double x1, at, bt, ct; diff --git a/src/projections/vandg4.cpp b/src/projections/vandg4.cpp index d9a53c87..15171b75 100644 --- a/src/projections/vandg4.cpp +++ b/src/projections/vandg4.cpp @@ -2,6 +2,7 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(vandg4, "van der Grinten IV") "\n\tMisc Sph, no inv"; @@ -9,8 +10,8 @@ PROJ_HEAD(vandg4, "van der Grinten IV") "\n\tMisc Sph, no inv"; #define TOL 1e-10 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; double x1, t, bt, ct, ft, bt2, ct2, dt, dt2; (void) P; diff --git a/src/projections/wag2.cpp b/src/projections/wag2.cpp index 1bee737a..3b62593a 100644 --- a/src/projections/wag2.cpp +++ b/src/projections/wag2.cpp @@ -2,6 +2,7 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(wag2, "Wagner II") "\n\tPCyl, Sph"; @@ -12,8 +13,8 @@ PROJ_HEAD(wag2, "Wagner II") "\n\tPCyl, Sph"; #define C_p2 0.88550 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; lp.phi = aasin (P->ctx,C_p1 * sin (C_p2 * lp.phi)); xy.x = C_x * lp.lam * cos (lp.phi); xy.y = C_y * lp.phi; @@ -21,8 +22,8 @@ static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; lp.phi = xy.y / C_y; lp.lam = xy.x / (C_x * cos(lp.phi)); lp.phi = aasin (P->ctx,sin(lp.phi) / C_p1) / C_p2; diff --git a/src/projections/wag3.cpp b/src/projections/wag3.cpp index bb1b4d49..c9d5470a 100644 --- a/src/projections/wag3.cpp +++ b/src/projections/wag3.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" PROJ_HEAD(wag3, "Wagner III") "\n\tPCyl, Sph\n\tlat_ts="; @@ -16,16 +17,16 @@ struct pj_opaque { } // anonymous namespace -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; xy.x = static_cast(P->opaque)->C_x * lp.lam * cos(TWOTHIRD * lp.phi); xy.y = lp.phi; return xy; } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; lp.phi = xy.y; lp.lam = xy.x / (static_cast(P->opaque)->C_x * cos(TWOTHIRD * lp.phi)); return lp; diff --git a/src/projections/wag7.cpp b/src/projections/wag7.cpp index c8807f12..eada904b 100644 --- a/src/projections/wag7.cpp +++ b/src/projections/wag7.cpp @@ -2,14 +2,15 @@ #include +#include "proj.h" #include "projects.h" PROJ_HEAD(wag7, "Wagner VII") "\n\tMisc Sph, no inv"; -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0, 0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0, 0.0}; double theta, ct, D; (void) P; /* Shut up compiler warnnings about unused P */ diff --git a/src/projections/wink1.cpp b/src/projections/wink1.cpp index de2f55ee..28eee9cf 100644 --- a/src/projections/wink1.cpp +++ b/src/projections/wink1.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" PROJ_HEAD(wink1, "Winkel I") "\n\tPCyl, Sph\n\tlat_ts="; @@ -15,16 +16,16 @@ struct pj_opaque { -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0,0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0,0.0}; xy.x = .5 * lp.lam * (static_cast(P->opaque)->cosphi1 + cos(lp.phi)); xy.y = lp.phi; return (xy); } -static LP s_inverse (XY xy, PJ *P) { /* Spheroidal, inverse */ - LP lp = {0.0,0.0}; +static PJ_LP s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inverse */ + PJ_LP lp = {0.0,0.0}; lp.phi = xy.y; lp.lam = 2. * xy.x / (static_cast(P->opaque)->cosphi1 + cos(lp.phi)); return (lp); diff --git a/src/projections/wink2.cpp b/src/projections/wink2.cpp index 74a47283..9e7ec411 100644 --- a/src/projections/wink2.cpp +++ b/src/projections/wink2.cpp @@ -3,6 +3,7 @@ #include #include +#include "proj.h" #include "projects.h" PROJ_HEAD(wink2, "Winkel II") "\n\tPCyl, Sph, no inv\n\tlat_1="; @@ -17,8 +18,8 @@ struct pj_opaque { #define LOOP_TOL 1e-7 -static XY s_forward (LP lp, PJ *P) { /* Spheroidal, forward */ - XY xy = {0.0, 0.0}; +static PJ_XY s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forward */ + PJ_XY xy = {0.0, 0.0}; double k, V; int i; diff --git a/src/projects.h b/src/projects.h index 768b1c1d..81b27875 100644 --- a/src/projects.h +++ b/src/projects.h @@ -161,39 +161,7 @@ typedef long pj_int32; #define DIR_CHAR '/' #endif -#define USE_PROJUV - -typedef struct { double u, v; } projUV; typedef struct { double r, i; } COMPLEX; -typedef struct { double u, v, w; } projUVW; - -/* If user explicitly includes proj.h, before projects.h, then avoid implicit type-punning */ -#ifndef PROJ_H -#ifndef PJ_LIB__ -#define XY projUV -#define LP projUV -#define XYZ projUVW -#define LPZ projUVW - -#else -typedef struct { double x, y; } XY; -typedef struct { double x, y, z; } XYZ; -typedef struct { double lam, phi; } LP; -typedef struct { double lam, phi, z; } LPZ; -typedef struct { double u, v; } UV; -typedef struct { double u, v, w; } UVW; -#endif /* ndef PJ_LIB__ */ - -#else -typedef PJ_XY XY; -typedef PJ_LP LP; -typedef PJ_UV UV; -typedef PJ_XYZ XYZ; -typedef PJ_LPZ LPZ; -typedef PJ_UVW UVW; - -#endif /* ndef PROJ_H */ - /* Forward declarations and typedefs for stuff needed inside the PJ object */ struct PJconsts; @@ -319,10 +287,10 @@ struct PJconsts { **************************************************************************************/ - XY (*fwd)(LP, PJ *) = nullptr; - LP (*inv)(XY, PJ *) = nullptr; - XYZ (*fwd3d)(LPZ, PJ *) = nullptr; - LPZ (*inv3d)(XYZ, PJ *) = nullptr; + PJ_XY (*fwd)(PJ_LP, PJ *) = nullptr; + PJ_LP (*inv)(PJ_XY, PJ *) = nullptr; + PJ_XYZ (*fwd3d)(PJ_LPZ, PJ *) = nullptr; + PJ_LPZ (*inv3d)(PJ_XYZ, PJ *) = nullptr; PJ_OPERATOR fwd4d = nullptr; PJ_OPERATOR inv4d = nullptr; @@ -638,7 +606,7 @@ C_NAMESPACE_VAR struct PJ_DATUMS pj_datums[]; #ifdef PJ_LIB__ #define PROJ_HEAD(name, desc) static const char des_##name [] = desc -#define OPERATION(name, NEED_ELLPS) \ +#define OPERATION(name, NEED_ELPJ_LPS) \ \ pj_projection_specific_setup_##name (PJ *P); \ C_NAMESPACE PJ *pj_##name (PJ *P); \ @@ -652,7 +620,7 @@ C_NAMESPACE PJ *pj_##name (PJ *P) { \ if (nullptr==P) \ return nullptr; \ P->descr = des_##name; \ - P->need_ellps = NEED_ELLPS; \ + P->need_ellps = NEED_ELPJ_LPS; \ P->left = PJ_IO_UNITS_ANGULAR; \ P->right = PJ_IO_UNITS_CLASSIC; \ return P; \ @@ -676,8 +644,8 @@ typedef struct { pj_int32 lam, phi; } ILP; struct CTABLE { char id[MAX_TAB_ID]; /* ascii info */ - LP ll; /* lower left corner coordinates */ - LP del; /* size of cells */ + PJ_LP ll; /* lower left corner coordinates */ + PJ_LP del; /* size of cells */ ILP lim; /* limits of conversion matrix */ FLP *cvs; /* conversion matrix */ }; @@ -759,8 +727,8 @@ double pj_authlat(double, double *); COMPLEX pj_zpoly1(COMPLEX, const COMPLEX *, int); COMPLEX pj_zpolyd1(COMPLEX, const COMPLEX *, int, COMPLEX *); -int pj_deriv(LP, double, const PJ *, struct DERIVS *); -int pj_factors(LP, const PJ *, double, struct FACTORS *); +int pj_deriv(PJ_LP, double, const PJ *, struct DERIVS *); +int pj_factors(PJ_LP, const PJ *, double, struct FACTORS *); struct PW_COEF { /* row coefficient structure */ int m; /* number of c coefficients (=0 for none) */ @@ -769,26 +737,26 @@ struct PW_COEF { /* row coefficient structure */ /* Approximation structures and procedures */ typedef struct { /* Chebyshev or Power series structure */ - projUV a, b; /* power series range for evaluation */ + PJ_UV a, b; /* power series range for evaluation */ /* or Chebyshev argument shift/scaling */ struct PW_COEF *cu, *cv; int mu, mv; /* maximum cu and cv index (+1 for count) */ int power; /* != 0 if power series, else Chebyshev */ } Tseries; -Tseries PROJ_DLL *mk_cheby(projUV, projUV, double, projUV *, projUV (*)(projUV), int, int, int); -projUV bpseval(projUV, Tseries *); -projUV bcheval(projUV, Tseries *); -projUV biveval(projUV, Tseries *); +Tseries PROJ_DLL *mk_cheby(PJ_UV, PJ_UV, double, PJ_UV *, PJ_UV (*)(PJ_UV), int, int, int); +PJ_UV bpseval(PJ_UV, Tseries *); +PJ_UV bcheval(PJ_UV, Tseries *); +PJ_UV biveval(PJ_UV, Tseries *); void *vector1(int, int); void **vector2(int, int, int); void freev2(void **v, int nrows); -int bchgen(projUV, projUV, int, int, projUV **, projUV(*)(projUV)); -int bch2bps(projUV, projUV, projUV **, int, int); +int bchgen(PJ_UV, PJ_UV, int, int, PJ_UV **, PJ_UV(*)(PJ_UV)); +int bch2bps(PJ_UV, PJ_UV, PJ_UV **, int, int); /* nadcon related protos */ -LP nad_intr(LP, struct CTABLE *); -LP nad_cvt(LP, int, struct CTABLE *); +PJ_LP nad_intr(PJ_LP, struct CTABLE *); +PJ_LP nad_cvt(PJ_LP, int, struct CTABLE *); struct CTABLE *nad_init(projCtx ctx, char *); struct CTABLE *nad_ctable_init( projCtx ctx, PAFile fid ); int nad_ctable_load( projCtx ctx, struct CTABLE *, PAFile fid ); @@ -831,7 +799,7 @@ int pj_gc_apply_gridshift( PJ *defn, int inverse, PJ_GRIDINFO *pj_gc_findgrid( projCtx ctx, PJ_GridCatalog *catalog, int after, - LP location, double date, + PJ_LP location, double date, PJ_Region *optional_region, double *grid_date ); @@ -841,8 +809,8 @@ void *proj_mdist_ini(double); double proj_mdist(double, double, double, const void *); double proj_inv_mdist(projCtx ctx, double, const void *); void *pj_gauss_ini(double, double, double *,double *); -LP pj_gauss(projCtx, LP, const void *); -LP pj_inv_gauss(projCtx, LP, const void *); +PJ_LP pj_gauss(projCtx, PJ_LP, const void *); +PJ_LP pj_inv_gauss(projCtx, PJ_LP, const void *); struct PJ_DATUMS PROJ_DLL *pj_get_datums_ref( void ); diff --git a/src/qsfn.cpp b/src/qsfn.cpp index c18a7b95..c8592d3d 100644 --- a/src/qsfn.cpp +++ b/src/qsfn.cpp @@ -1,5 +1,6 @@ /* determine small q */ #include +#include "proj.h" #include "projects.h" # define EPSILON 1.0e-7 diff --git a/src/rtodms.cpp b/src/rtodms.cpp index 674cebdf..d7686931 100644 --- a/src/rtodms.cpp +++ b/src/rtodms.cpp @@ -5,6 +5,7 @@ #include #include +#include "proj.h" #include "projects.h" /* diff --git a/src/strtod.cpp b/src/strtod.cpp index 5a360c2e..ccf26321 100644 --- a/src/strtod.cpp +++ b/src/strtod.cpp @@ -32,6 +32,7 @@ #include #include +#include "proj.h" #include "projects.h" /* Windows nmake build doesn't have a proj_config.h, but HAVE_LOCALECONV */ diff --git a/src/transform.cpp b/src/transform.cpp index 433fc017..2c8dc467 100644 --- a/src/transform.cpp +++ b/src/transform.cpp @@ -193,8 +193,8 @@ static int geographic_to_projected (PJ *P, long n, int dist, double *x, double * for( i = 0; i < n; i++ ) { - XYZ projected_loc; - LPZ geodetic_loc; + PJ_XYZ projected_loc; + PJ_LPZ geodetic_loc; geodetic_loc.lam = x[dist*i]; geodetic_loc.phi = y[dist*i]; @@ -232,8 +232,8 @@ static int geographic_to_projected (PJ *P, long n, int dist, double *x, double * for( i = 0; i XYZ formula described in: + from ENU-space to cartesian PJ_XYZ-space. ENU -> PJ_XYZ formula described in: Nørbech, T., et al, 2003(?), "Transformation from a Common Nordic Reference Frame to ETRS89 in Denmark, Finland, Norway, and Sweden – status report" @@ -109,7 +109,7 @@ static XYZ get_grid_shift(PJ* P, XYZ cartesian) { sl = sin(geodetic.lp.lam); cl = cos(geodetic.lp.lam); - /* ENU -> XYZ */ + /* ENU -> PJ_XYZ */ temp.xyz.x = -sp*cl*shift.enu.n - sl*shift.enu.e + cp*cl*shift.enu.u; temp.xyz.y = -sp*sl*shift.enu.n + cl*shift.enu.e + cp*sl*shift.enu.u; temp.xyz.z = cp*shift.enu.n + sp*shift.enu.u; @@ -122,11 +122,11 @@ static XYZ get_grid_shift(PJ* P, XYZ cartesian) { } /********************************************************************************/ -static XYZ reverse_shift(PJ *P, XYZ input, double dt) { +static PJ_XYZ reverse_shift(PJ *P, PJ_XYZ input, double dt) { /******************************************************************************** Iteratively determine the reverse grid shift correction values. *********************************************************************************/ - XYZ out, delta, dif; + PJ_XYZ out, delta, dif; double z0; int i = MAX_ITERATIONS; @@ -163,10 +163,10 @@ static XYZ reverse_shift(PJ *P, XYZ input, double dt) { return out; } -static XYZ forward_3d(LPZ lpz, PJ *P) { +static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { struct pj_opaque *Q = (struct pj_opaque *) P->opaque; PJ_COORD out, in; - XYZ shift; + PJ_XYZ shift; double dt = 0.0; in.lpz = lpz; out = in; @@ -192,7 +192,7 @@ static XYZ forward_3d(LPZ lpz, PJ *P) { static PJ_COORD forward_4d(PJ_COORD in, PJ *P) { struct pj_opaque *Q = (struct pj_opaque *) P->opaque; double dt; - XYZ shift; + PJ_XYZ shift; PJ_COORD out = in; if (Q->t_obs != HUGE_VAL) { @@ -212,7 +212,7 @@ static PJ_COORD forward_4d(PJ_COORD in, PJ *P) { } -static LPZ reverse_3d(XYZ in, PJ *P) { +static PJ_LPZ reverse_3d(PJ_XYZ in, PJ *P) { struct pj_opaque *Q = (struct pj_opaque *) P->opaque; PJ_COORD out; double dt = 0.0; diff --git a/src/transformations/helmert.cpp b/src/transformations/helmert.cpp index 4a3abf4e..55112aaa 100644 --- a/src/transformations/helmert.cpp +++ b/src/transformations/helmert.cpp @@ -59,8 +59,8 @@ Last update: 2018-10-26 PROJ_HEAD(helmert, "3(6)-, 4(8)- and 7(14)-parameter Helmert shift"); PROJ_HEAD(molobadekas, "Molodensky-Badekas transformation"); -static XYZ helmert_forward_3d (LPZ lpz, PJ *P); -static LPZ helmert_reverse_3d (XYZ xyz, PJ *P); +static PJ_XYZ helmert_forward_3d (PJ_LPZ lpz, PJ *P); +static PJ_LPZ helmert_reverse_3d (PJ_XYZ xyz, PJ *P); @@ -70,10 +70,10 @@ struct pj_opaque_helmert { /************************************************************************ Projection specific elements for the "helmert" PJ object ************************************************************************/ - XYZ xyz; - XYZ xyz_0; - XYZ dxyz; - XYZ refp; + PJ_XYZ xyz; + PJ_XYZ xyz_0; + PJ_XYZ dxyz; + PJ_XYZ refp; PJ_OPK opk; PJ_OPK opk_0; PJ_OPK dopk; @@ -322,7 +322,7 @@ static void build_rot_matrix(PJ *P) { /***********************************************************************/ -static XY helmert_forward (LP lp, PJ *P) { +static PJ_XY helmert_forward (PJ_LP lp, PJ *P) { /***********************************************************************/ struct pj_opaque_helmert *Q = (struct pj_opaque_helmert *) P->opaque; PJ_COORD point = {{0,0,0,0}}; @@ -342,7 +342,7 @@ static XY helmert_forward (LP lp, PJ *P) { /***********************************************************************/ -static LP helmert_reverse (XY xy, PJ *P) { +static PJ_LP helmert_reverse (PJ_XY xy, PJ *P) { /***********************************************************************/ struct pj_opaque_helmert *Q = (struct pj_opaque_helmert *) P->opaque; PJ_COORD point = {{0,0,0,0}}; @@ -362,7 +362,7 @@ static LP helmert_reverse (XY xy, PJ *P) { /***********************************************************************/ -static XYZ helmert_forward_3d (LPZ lpz, PJ *P) { +static PJ_XYZ helmert_forward_3d (PJ_LPZ lpz, PJ *P) { /***********************************************************************/ struct pj_opaque_helmert *Q = (struct pj_opaque_helmert *) P->opaque; PJ_COORD point = {{0,0,0,0}}; @@ -402,7 +402,7 @@ static XYZ helmert_forward_3d (LPZ lpz, PJ *P) { /***********************************************************************/ -static LPZ helmert_reverse_3d (XYZ xyz, PJ *P) { +static PJ_LPZ helmert_reverse_3d (PJ_XYZ xyz, PJ *P) { /***********************************************************************/ struct pj_opaque_helmert *Q = (struct pj_opaque_helmert *) P->opaque; PJ_COORD point = {{0,0,0,0}}; diff --git a/src/transformations/hgridshift.cpp b/src/transformations/hgridshift.cpp index f0e57251..c8dfea15 100644 --- a/src/transformations/hgridshift.cpp +++ b/src/transformations/hgridshift.cpp @@ -17,7 +17,7 @@ struct pj_opaque_hgridshift { }; } // anonymous namespace -static XYZ forward_3d(LPZ lpz, PJ *P) { +static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { PJ_COORD point = {{0,0,0,0}}; point.lpz = lpz; @@ -31,7 +31,7 @@ static XYZ forward_3d(LPZ lpz, PJ *P) { } -static LPZ reverse_3d(XYZ xyz, PJ *P) { +static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { PJ_COORD point = {{0,0,0,0}}; point.xyz = xyz; diff --git a/src/transformations/horner.cpp b/src/transformations/horner.cpp index 73977de6..271d1187 100644 --- a/src/transformations/horner.cpp +++ b/src/transformations/horner.cpp @@ -83,6 +83,7 @@ #include #include +#include "proj.h" #include "proj_internal.h" #include "projects.h" @@ -109,13 +110,13 @@ struct horner { double *fwd_c; /* coefficients for the complex forward transformations */ double *inv_c; /* coefficients for the complex inverse transformations */ - UV *fwd_origin; /* False longitude/latitude */ - UV *inv_origin; /* False easting/northing */ + PJ_UV *fwd_origin; /* False longitude/latitude */ + PJ_UV *inv_origin; /* False easting/northing */ }; } // anonymous namespace typedef struct horner HORNER; -static UV horner_func (const HORNER *transformation, PJ_DIRECTION direction, UV position); +static PJ_UV horner_func (const HORNER *transformation, PJ_DIRECTION direction, PJ_UV position); static HORNER *horner_alloc (size_t order, int complex_polynomia); static void horner_free (HORNER *h); @@ -166,8 +167,8 @@ static HORNER *horner_alloc (size_t order, int complex_polynomia) { polynomia_ok = 1; } - h->fwd_origin = static_cast(horner_calloc (1, sizeof(UV))); - h->inv_origin = static_cast(horner_calloc (1, sizeof(UV))); + h->fwd_origin = static_cast(horner_calloc (1, sizeof(PJ_UV))); + h->inv_origin = static_cast(horner_calloc (1, sizeof(PJ_UV))); if (polynomia_ok && h->fwd_origin && h->inv_origin) return h; @@ -181,7 +182,7 @@ static HORNER *horner_alloc (size_t order, int complex_polynomia) { /**********************************************************************/ -static UV horner_func (const HORNER *transformation, PJ_DIRECTION direction, UV position) { +static PJ_UV horner_func (const HORNER *transformation, PJ_DIRECTION direction, PJ_UV position) { /*********************************************************************** A reimplementation of the classic Engsager/Poder 2D Horner polynomial @@ -223,7 +224,7 @@ summing the tiny high order elements first. double *tcx, *tcy; /* Coefficient pointers */ double range; /* Equivalent to the gen_pol's FLOATLIMIT constant */ double n, e; - UV uv_error; + PJ_UV uv_error; uv_error.u = uv_error.v = HUGE_VAL; if (nullptr==transformation) @@ -310,7 +311,7 @@ static PJ_COORD horner_reverse_4d (PJ_COORD point, PJ *P) { /**********************************************************************/ -static UV complex_horner (const HORNER *transformation, PJ_DIRECTION direction, UV position) { +static PJ_UV complex_horner (const HORNER *transformation, PJ_DIRECTION direction, PJ_UV position) { /*********************************************************************** A reimplementation of a classic Engsager/Poder Horner complex @@ -323,7 +324,7 @@ polynomial evaluation engine. double *c, *cb; /* Coefficient pointers */ double range; /* Equivalent to the gen_pol's FLOATLIMIT constant */ double n, e, w, N, E; - UV uv_error; + PJ_UV uv_error; uv_error.u = uv_error.v = HUGE_VAL; if (nullptr==transformation) diff --git a/src/transformations/molodensky.cpp b/src/transformations/molodensky.cpp index 91743fda..843da5c9 100644 --- a/src/transformations/molodensky.cpp +++ b/src/transformations/molodensky.cpp @@ -53,8 +53,8 @@ PROJ_HEAD(molodensky, "Molodensky transform"); -static XYZ forward_3d(LPZ lpz, PJ *P); -static LPZ reverse_3d(XYZ xyz, PJ *P); +static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P); +static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P); namespace { // anonymous namespace struct pj_opaque_molodensky { @@ -123,7 +123,7 @@ static double RM (double a, double es, double phi) { } -static LPZ calc_standard_params(LPZ lpz, PJ *P) { +static PJ_LPZ calc_standard_params(PJ_LPZ lpz, PJ *P) { struct pj_opaque_molodensky *Q = (struct pj_opaque_molodensky *) P->opaque; double dphi, dlam, dh; @@ -162,7 +162,7 @@ static LPZ calc_standard_params(LPZ lpz, PJ *P) { } -static LPZ calc_abridged_params(LPZ lpz, PJ *P) { +static PJ_LPZ calc_abridged_params(PJ_LPZ lpz, PJ *P) { struct pj_opaque_molodensky *Q = (struct pj_opaque_molodensky *) P->opaque; double dphi, dlam, dh; @@ -197,7 +197,7 @@ static LPZ calc_abridged_params(LPZ lpz, PJ *P) { } -static XY forward_2d(LP lp, PJ *P) { +static PJ_XY forward_2d(PJ_LP lp, PJ *P) { PJ_COORD point = {{0,0,0,0}}; point.lp = lp; @@ -207,7 +207,7 @@ static XY forward_2d(LP lp, PJ *P) { } -static LP reverse_2d(XY xy, PJ *P) { +static PJ_LP reverse_2d(PJ_XY xy, PJ *P) { PJ_COORD point = {{0,0,0,0}}; point.xy = xy; @@ -218,7 +218,7 @@ static LP reverse_2d(XY xy, PJ *P) { } -static XYZ forward_3d(LPZ lpz, PJ *P) { +static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { struct pj_opaque_molodensky *Q = (struct pj_opaque_molodensky *) P->opaque; PJ_COORD point = {{0,0,0,0}}; @@ -246,10 +246,10 @@ static PJ_COORD forward_4d(PJ_COORD obs, PJ *P) { } -static LPZ reverse_3d(XYZ xyz, PJ *P) { +static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { struct pj_opaque_molodensky *Q = (struct pj_opaque_molodensky *) P->opaque; PJ_COORD point = {{0,0,0,0}}; - LPZ lpz; + PJ_LPZ lpz; /* calculate parameters depending on the mode we are in */ point.xyz = xyz; diff --git a/src/transformations/vgridshift.cpp b/src/transformations/vgridshift.cpp index b3da906d..fe2bc3e5 100644 --- a/src/transformations/vgridshift.cpp +++ b/src/transformations/vgridshift.cpp @@ -18,7 +18,7 @@ struct pj_opaque_vgridshift { }; } // anonymous namespace -static XYZ forward_3d(LPZ lpz, PJ *P) { +static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) { struct pj_opaque_vgridshift *Q = (struct pj_opaque_vgridshift *) P->opaque; PJ_COORD point = {{0,0,0,0}}; point.lpz = lpz; @@ -33,7 +33,7 @@ static XYZ forward_3d(LPZ lpz, PJ *P) { } -static LPZ reverse_3d(XYZ xyz, PJ *P) { +static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) { struct pj_opaque_vgridshift *Q = (struct pj_opaque_vgridshift *) P->opaque; PJ_COORD point = {{0,0,0,0}}; point.xyz = xyz; diff --git a/src/tsfn.cpp b/src/tsfn.cpp index ea3b896d..fb299dc9 100644 --- a/src/tsfn.cpp +++ b/src/tsfn.cpp @@ -1,5 +1,6 @@ /* determine small t */ #include +#include "proj.h" #include "projects.h" double pj_tsfn(double phi, double sinphi, double e) { diff --git a/src/utils.cpp b/src/utils.cpp index 8587dc30..9a320fa4 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -31,6 +31,7 @@ #include #include +#include "proj.h" #include "projects.h" /************************************************************************/ diff --git a/src/vector1.cpp b/src/vector1.cpp index 869dd76a..31a425a8 100644 --- a/src/vector1.cpp +++ b/src/vector1.cpp @@ -1,5 +1,6 @@ /* make storage for one and two dimensional matricies */ #include +#include "proj.h" #include "projects.h" void * /* one dimension array */ vector1(int nvals, int size) { return((void *)pj_malloc(size * nvals)); } diff --git a/src/zpoly1.cpp b/src/zpoly1.cpp index bacb62ce..5aded697 100644 --- a/src/zpoly1.cpp +++ b/src/zpoly1.cpp @@ -1,4 +1,5 @@ /* evaluate complex polynomial */ +#include "proj.h" #include "projects.h" /* note: coefficients are always from C_1 to C_n ** i.e. C_0 == (0., 0) diff --git a/test/unit/pj_phi2_test.cpp b/test/unit/pj_phi2_test.cpp index 67441b69..fcfa1e30 100644 --- a/test/unit/pj_phi2_test.cpp +++ b/test/unit/pj_phi2_test.cpp @@ -26,6 +26,7 @@ * DEALINGS IN THE SOFTWARE. ****************************************************************************/ +#include "proj.h" #include "projects.h" #include diff --git a/test/unit/pj_transform_test.cpp b/test/unit/pj_transform_test.cpp index 95329bdb..eb6a7f9d 100644 --- a/test/unit/pj_transform_test.cpp +++ b/test/unit/pj_transform_test.cpp @@ -33,6 +33,7 @@ // PROJ include order is sensitive // clang-format off +#include #include #include // clang-format on -- cgit v1.2.3 From 843e7f770f45f0f3a6659db822db40104e473997 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 26 Dec 2018 14:25:09 +0100 Subject: test/cli/Makefile.am: parallelize CLI tests --- test/cli/Makefile.am | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/test/cli/Makefile.am b/test/cli/Makefile.am index 3650a9a8..55667ee8 100644 --- a/test/cli/Makefile.am +++ b/test/cli/Makefile.am @@ -26,17 +26,28 @@ EXTRA_DIST = pj_out27.dist pj_out83.dist td_out.dist \ testprojinfo-check: PROJ_LIB=$(DATAPATH) $(TESTPROJINFO) $(PROJINFOEXE) -check-local: testprojinfo-check +test27-check: $(TEST27) $(PROJEXE) + +test83-check: $(TEST83) $(PROJEXE) + +testvarious-check: PROJ_LIB=$(DATAPATH) $(TESTVARIOUS) $(CS2CSEXE) + +testdatumfile-check: @if [ -f $(DATAPATH)/conus -a -f $(DATAPATH)/ntv1_can.dat -a -f $(DATAPATH)/MD -a -f $(DATAPATH)/ntf_r93.dat ]; then \ PROJ_LIB=$(DATAPATH) $(TESTDATUMFILE) $(CS2CSEXE) ; \ fi + +testign-check: @if [ -f $(DATAPATH)/ntf_r93.gsb ] ; then \ PROJ_LIB=$(DATAPATH) $(TESTIGN) $(CS2CSEXE) ; \ fi + +testntv2-check: @if [ -f $(DATAPATH)/ntv2_0.gsb ] ; then \ PROJ_LIB=$(DATAPATH) $(TESTNTV2) $(CS2CSEXE) ; \ fi +check-local: testprojinfo-check test27-check test83-check testvarious-check testdatumfile-check testign-check testntv2-check -- cgit v1.2.3 From 7acbe96928d564ac86f74c319e4d37143352671b Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 26 Dec 2018 14:33:54 +0100 Subject: proj_api.h: remove traces of removed structures of projects.h --- src/proj_api.h | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/proj_api.h b/src/proj_api.h index a8a7f106..5c4d5e7a 100644 --- a/src/proj_api.h +++ b/src/proj_api.h @@ -82,7 +82,7 @@ extern "C" { #define DEG_TO_RAD .017453292519943296 -#if defined(PROJECTS_H) || defined(PROJ_H) +#if defined(PROJ_H) #define PROJ_API_H_NOT_INVOKED_AS_PRIMARY_API #endif @@ -103,17 +103,10 @@ PROJ_DLL extern int pj_errno; /* global error return code */ /* These make the function declarations below conform with classic proj */ typedef PJ *projPJ; /* projPJ is a pointer to PJ */ typedef struct projCtx_t *projCtx; /* projCtx is a pointer to projCtx_t */ -#ifdef PROJ_H # define projXY PJ_XY # define projLP PJ_LP # define projXYZ PJ_XYZ # define projLPZ PJ_LPZ -#else -# define projXY XY -# define projLP LP -# define projXYZ XYZ -# define projLPZ LPZ -#endif #else /* i.e. proj_api invoked as primary API */ -- cgit v1.2.3 From 8ab6f683cd316acf57bb89ed83932a267c5aa3c2 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 26 Dec 2018 14:58:26 +0100 Subject: Merge projects.h into proj_internal.h --- src/4D_api.cpp | 2 +- src/Makefile.am | 2 +- src/aasincos.cpp | 2 +- src/adjlon.cpp | 2 +- src/apply_gridshift.cpp | 2 +- src/apply_vgridshift.cpp | 2 +- src/apps/cct.cpp | 2 +- src/apps/cs2cs.cpp | 2 +- src/apps/gen_cheb.cpp | 2 +- src/apps/geod.cpp | 2 +- src/apps/geod_interface.cpp | 2 +- src/apps/geod_set.cpp | 2 +- src/apps/gie.cpp | 2 +- src/apps/nad2bin.cpp | 2 +- src/apps/p_series.cpp | 2 +- src/apps/proj.cpp | 2 +- src/apps/projinfo.cpp | 2 +- src/auth.cpp | 2 +- src/bch2bps.cpp | 2 +- src/bchgen.cpp | 2 +- src/biveval.cpp | 2 +- src/conversions/axisswap.cpp | 2 +- src/conversions/cart.cpp | 2 +- src/conversions/geoc.cpp | 2 +- src/conversions/geocent.cpp | 2 +- src/conversions/unitconvert.cpp | 2 +- src/ctx.cpp | 2 +- src/datum_set.cpp | 2 +- src/datums.cpp | 2 +- src/deriv.cpp | 2 +- src/dmstor.cpp | 2 +- src/ell_set.cpp | 2 +- src/ellps.cpp | 2 +- src/errno.cpp | 2 +- src/factors.cpp | 2 +- src/fileapi.cpp | 2 +- src/fwd.cpp | 2 +- src/gauss.cpp | 2 +- src/gc_reader.cpp | 2 +- src/gridcatalog.cpp | 2 +- src/gridinfo.cpp | 2 +- src/gridlist.cpp | 2 +- src/init.cpp | 2 +- src/initcache.cpp | 2 +- src/internal.cpp | 2 +- src/inv.cpp | 2 +- src/iso19111/c_api.cpp | 3 +- src/iso19111/coordinateoperation.cpp | 2 +- src/iso19111/datum.cpp | 2 +- src/iso19111/factory.cpp | 2 +- src/iso19111/io.cpp | 2 +- src/jniproj.cpp | 2 +- src/lib_proj.cmake | 2 +- src/list.cpp | 2 +- src/log.cpp | 2 +- src/malloc.cpp | 2 +- src/mk_cheby.cpp | 2 +- src/mlfn.cpp | 2 +- src/msfn.cpp | 2 +- src/mutex.cpp | 2 +- src/nad_cvt.cpp | 2 +- src/nad_init.cpp | 2 +- src/nad_intr.cpp | 2 +- src/open_lib.cpp | 2 +- src/param.cpp | 2 +- src/phi2.cpp | 2 +- src/pipeline.cpp | 2 +- src/pr_list.cpp | 2 +- src/proj.h | 9 +- src/proj_experimental.h | 5 +- src/proj_internal.h | 791 ++++++++++++++++++++++++++++++++- src/proj_mdist.cpp | 2 +- src/projections/aea.cpp | 2 +- src/projections/aeqd.cpp | 2 +- src/projections/airy.cpp | 2 +- src/projections/aitoff.cpp | 2 +- src/projections/august.cpp | 2 +- src/projections/bacon.cpp | 2 +- src/projections/bertin1953.cpp | 2 +- src/projections/bipc.cpp | 2 +- src/projections/boggs.cpp | 2 +- src/projections/bonne.cpp | 2 +- src/projections/calcofi.cpp | 2 +- src/projections/cass.cpp | 2 +- src/projections/cc.cpp | 2 +- src/projections/ccon.cpp | 2 +- src/projections/cea.cpp | 2 +- src/projections/chamb.cpp | 2 +- src/projections/collg.cpp | 2 +- src/projections/comill.cpp | 2 +- src/projections/crast.cpp | 2 +- src/projections/denoy.cpp | 2 +- src/projections/eck1.cpp | 2 +- src/projections/eck2.cpp | 2 +- src/projections/eck3.cpp | 2 +- src/projections/eck4.cpp | 2 +- src/projections/eck5.cpp | 2 +- src/projections/eqc.cpp | 2 +- src/projections/eqdc.cpp | 2 +- src/projections/eqearth.cpp | 2 +- src/projections/etmerc.cpp | 2 +- src/projections/fahey.cpp | 2 +- src/projections/fouc_s.cpp | 2 +- src/projections/gall.cpp | 2 +- src/projections/geos.cpp | 2 +- src/projections/gins8.cpp | 2 +- src/projections/gn_sinu.cpp | 2 +- src/projections/gnom.cpp | 2 +- src/projections/goode.cpp | 2 +- src/projections/gstmerc.cpp | 2 +- src/projections/hammer.cpp | 2 +- src/projections/hatano.cpp | 2 +- src/projections/healpix.cpp | 2 +- src/projections/igh.cpp | 2 +- src/projections/imw_p.cpp | 2 +- src/projections/isea.cpp | 2 +- src/projections/krovak.cpp | 2 +- src/projections/labrd.cpp | 2 +- src/projections/laea.cpp | 2 +- src/projections/lagrng.cpp | 2 +- src/projections/larr.cpp | 2 +- src/projections/lask.cpp | 2 +- src/projections/latlong.cpp | 2 +- src/projections/lcc.cpp | 2 +- src/projections/lcca.cpp | 2 +- src/projections/loxim.cpp | 2 +- src/projections/lsat.cpp | 2 +- src/projections/mbt_fps.cpp | 2 +- src/projections/mbtfpp.cpp | 2 +- src/projections/mbtfpq.cpp | 2 +- src/projections/merc.cpp | 2 +- src/projections/mill.cpp | 2 +- src/projections/misrsom.cpp | 2 +- src/projections/mod_ster.cpp | 2 +- src/projections/moll.cpp | 2 +- src/projections/natearth.cpp | 2 +- src/projections/natearth2.cpp | 2 +- src/projections/nell.cpp | 2 +- src/projections/nell_h.cpp | 2 +- src/projections/nicol.cpp | 2 +- src/projections/nsper.cpp | 2 +- src/projections/nzmg.cpp | 2 +- src/projections/ob_tran.cpp | 2 +- src/projections/ocea.cpp | 2 +- src/projections/oea.cpp | 2 +- src/projections/omerc.cpp | 2 +- src/projections/ortho.cpp | 2 +- src/projections/patterson.cpp | 2 +- src/projections/poly.cpp | 2 +- src/projections/putp2.cpp | 2 +- src/projections/putp3.cpp | 2 +- src/projections/putp4p.cpp | 2 +- src/projections/putp5.cpp | 2 +- src/projections/putp6.cpp | 2 +- src/projections/qsc.cpp | 2 +- src/projections/robin.cpp | 2 +- src/projections/rouss.cpp | 2 +- src/projections/rpoly.cpp | 2 +- src/projections/sch.cpp | 2 +- src/projections/sconics.cpp | 2 +- src/projections/somerc.cpp | 2 +- src/projections/stere.cpp | 2 +- src/projections/sterea.cpp | 2 +- src/projections/sts.cpp | 2 +- src/projections/tcc.cpp | 2 +- src/projections/tcea.cpp | 2 +- src/projections/times.cpp | 2 +- src/projections/tmerc.cpp | 2 +- src/projections/tobmerc.cpp | 2 +- src/projections/tpeqd.cpp | 2 +- src/projections/urm5.cpp | 2 +- src/projections/urmfps.cpp | 2 +- src/projections/vandg.cpp | 2 +- src/projections/vandg2.cpp | 2 +- src/projections/vandg4.cpp | 2 +- src/projections/wag2.cpp | 2 +- src/projections/wag3.cpp | 2 +- src/projections/wag7.cpp | 2 +- src/projections/wink1.cpp | 2 +- src/projections/wink2.cpp | 2 +- src/projects.h | 829 ----------------------------------- src/qsfn.cpp | 2 +- src/release.cpp | 2 +- src/rtodms.cpp | 2 +- src/strerrno.cpp | 2 +- src/strtod.cpp | 2 +- src/transform.cpp | 2 +- src/transformations/affine.cpp | 2 +- src/transformations/deformation.cpp | 2 +- src/transformations/helmert.cpp | 2 +- src/transformations/hgridshift.cpp | 2 +- src/transformations/horner.cpp | 2 +- src/transformations/molodensky.cpp | 2 +- src/transformations/vgridshift.cpp | 2 +- src/tsfn.cpp | 2 +- src/units.cpp | 2 +- src/utils.cpp | 2 +- src/vector1.cpp | 2 +- src/zpoly1.cpp | 2 +- test/unit/gie_self_tests.cpp | 3 +- test/unit/pj_phi2_test.cpp | 2 +- test/unit/pj_transform_test.cpp | 2 +- 202 files changed, 980 insertions(+), 1052 deletions(-) delete mode 100644 src/projects.h diff --git a/src/4D_api.cpp b/src/4D_api.cpp index 43ffe72c..ce9d7bd9 100644 --- a/src/4D_api.cpp +++ b/src/4D_api.cpp @@ -39,7 +39,7 @@ #include "proj.h" #include "proj_internal.h" #include "proj_math.h" -#include "projects.h" +#include "proj_internal.h" #include "geodesic.h" #include "proj/common.hpp" diff --git a/src/Makefile.am b/src/Makefile.am index e8b9977c..3b23a044 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -48,7 +48,7 @@ libproj_la_LDFLAGS = -no-undefined -version-info 14:1:1 libproj_la_LIBADD = @SQLITE3_LDFLAGS@ libproj_la_SOURCES = \ - pj_list.h proj_internal.h proj_math.h projects.h \ + pj_list.h proj_internal.h proj_math.h \ \ iso19111/static.cpp \ iso19111/util.cpp \ diff --git a/src/aasincos.cpp b/src/aasincos.cpp index d2851716..398a8cfc 100644 --- a/src/aasincos.cpp +++ b/src/aasincos.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #define ONE_TOL 1.00000000000001 #define ATOL 1e-50 diff --git a/src/adjlon.cpp b/src/adjlon.cpp index 52448c2e..112a9152 100644 --- a/src/adjlon.cpp +++ b/src/adjlon.cpp @@ -2,7 +2,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" double adjlon (double lon) { /* Let lon slightly overshoot, to avoid spurious sign switching at the date line */ diff --git a/src/apply_gridshift.cpp b/src/apply_gridshift.cpp index 4fd9b077..c7070432 100644 --- a/src/apply_gridshift.cpp +++ b/src/apply_gridshift.cpp @@ -36,7 +36,7 @@ #include "proj_internal.h" #include "proj.h" -#include "projects.h" +#include "proj_internal.h" /************************************************************************/ /* pj_apply_gridshift() */ diff --git a/src/apply_vgridshift.cpp b/src/apply_vgridshift.cpp index 5384f368..61e0c528 100644 --- a/src/apply_vgridshift.cpp +++ b/src/apply_vgridshift.cpp @@ -33,7 +33,7 @@ #include "proj_math.h" #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" static int is_nodata(float value) { diff --git a/src/apps/cct.cpp b/src/apps/cct.cpp index 046257da..4deefba6 100644 --- a/src/apps/cct.cpp +++ b/src/apps/cct.cpp @@ -81,7 +81,7 @@ Thomas Knudsen, thokn@sdfe.dk, 2016-05-25/2017-10-26 #include "proj.h" #include "proj_internal.h" #include "proj_strtod.h" -#include "projects.h" +#include "proj_internal.h" #include "optargpm.h" diff --git a/src/apps/cs2cs.cpp b/src/apps/cs2cs.cpp index 9000454a..e7f43c76 100644 --- a/src/apps/cs2cs.cpp +++ b/src/apps/cs2cs.cpp @@ -43,7 +43,7 @@ // PROJ include order is sensitive // clang-format off #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "emess.h" // clang-format on diff --git a/src/apps/gen_cheb.cpp b/src/apps/gen_cheb.cpp index 167ee79d..23285314 100644 --- a/src/apps/gen_cheb.cpp +++ b/src/apps/gen_cheb.cpp @@ -1,7 +1,7 @@ /* generates 'T' option output */ #define PJ_LIB__ #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include #include #include diff --git a/src/apps/geod.cpp b/src/apps/geod.cpp index 7b6367c6..7225856e 100644 --- a/src/apps/geod.cpp +++ b/src/apps/geod.cpp @@ -1,7 +1,7 @@ /* <<<< Geodesic filter program >>>> */ #include "proj.h" -# include "projects.h" +# include "proj_internal.h" # include "geod_interface.h" # include "emess.h" # include diff --git a/src/apps/geod_interface.cpp b/src/apps/geod_interface.cpp index 1a085b38..a21a89e6 100644 --- a/src/apps/geod_interface.cpp +++ b/src/apps/geod_interface.cpp @@ -1,5 +1,5 @@ #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "geod_interface.h" void geod_ini(void) { diff --git a/src/apps/geod_set.cpp b/src/apps/geod_set.cpp index b9e9c42f..cd6b5018 100644 --- a/src/apps/geod_set.cpp +++ b/src/apps/geod_set.cpp @@ -5,7 +5,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "geod_interface.h" #include "emess.h" diff --git a/src/apps/gie.cpp b/src/apps/gie.cpp index 3e4770a2..e912a076 100644 --- a/src/apps/gie.cpp +++ b/src/apps/gie.cpp @@ -117,7 +117,7 @@ Thomas Knudsen, thokn@sdfe.dk, 2017-10-01/2017-10-08 #include "proj_internal.h" #include "proj_math.h" #include "proj_strtod.h" -#include "projects.h" +#include "proj_internal.h" #include "optargpm.h" diff --git a/src/apps/nad2bin.cpp b/src/apps/nad2bin.cpp index 62a7b320..a684b087 100644 --- a/src/apps/nad2bin.cpp +++ b/src/apps/nad2bin.cpp @@ -4,7 +4,7 @@ #define PJ_LIB__ #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" #define U_SEC_TO_RAD 4.848136811095359935899141023e-12 /************************************************************************/ diff --git a/src/apps/p_series.cpp b/src/apps/p_series.cpp index 3815824b..2f668ce0 100644 --- a/src/apps/p_series.cpp +++ b/src/apps/p_series.cpp @@ -1,6 +1,6 @@ /* print row coefficients of Tseries structure */ #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include #include #define NF 20 /* length of final format string */ diff --git a/src/apps/proj.cpp b/src/apps/proj.cpp index 9958a777..c8cd20a1 100644 --- a/src/apps/proj.cpp +++ b/src/apps/proj.cpp @@ -1,6 +1,6 @@ /* <<<< Cartographic projection filter program >>>> */ #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include #include #include diff --git a/src/apps/projinfo.cpp b/src/apps/projinfo.cpp index 589ca832..4fcd3e5e 100644 --- a/src/apps/projinfo.cpp +++ b/src/apps/projinfo.cpp @@ -36,7 +36,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include #include diff --git a/src/auth.cpp b/src/auth.cpp index 3da63c60..a8ee262a 100644 --- a/src/auth.cpp +++ b/src/auth.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" # define P00 .33333333333333333333 /* 1 / 3 */ # define P01 .17222222222222222222 /* 31 / 180 */ diff --git a/src/bch2bps.cpp b/src/bch2bps.cpp index 1812ee2b..9346457c 100644 --- a/src/bch2bps.cpp +++ b/src/bch2bps.cpp @@ -1,7 +1,7 @@ /* convert bivariate w Chebyshev series to w Power series */ #include "proj.h" -#include "projects.h" +#include "proj_internal.h" /* basic support procedures */ static void /* clear vector to zero */ clear(PJ_UV *p, int n) { static const PJ_UV c = {0., 0.}; while (n--) *p++ = c; } diff --git a/src/bchgen.cpp b/src/bchgen.cpp index 324ac8f6..9677b6f2 100644 --- a/src/bchgen.cpp +++ b/src/bchgen.cpp @@ -1,6 +1,6 @@ /* generate double bivariate Chebychev polynomial */ #include "proj.h" -#include "projects.h" +#include "proj_internal.h" int bchgen(PJ_UV a, PJ_UV b, int nu, int nv, PJ_UV **f, PJ_UV(*func)(PJ_UV)) { int i, j, k; diff --git a/src/biveval.cpp b/src/biveval.cpp index 219534c3..9ead2fb7 100644 --- a/src/biveval.cpp +++ b/src/biveval.cpp @@ -1,6 +1,6 @@ /* procedures for evaluating Tseries */ #include "proj.h" -# include "projects.h" +#include "proj_internal.h" # define NEAR_ONE 1.00001 static double ceval(struct PW_COEF *C, int n, PJ_UV w, PJ_UV w2) { double d=0, dd=0, vd, vdd, tmp, *c; diff --git a/src/conversions/axisswap.cpp b/src/conversions/axisswap.cpp index f9dd4fa5..18d13f8c 100644 --- a/src/conversions/axisswap.cpp +++ b/src/conversions/axisswap.cpp @@ -59,7 +59,7 @@ operation: #include "proj.h" #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(axisswap, "Axis ordering"); diff --git a/src/conversions/cart.cpp b/src/conversions/cart.cpp index bcfbb5e6..f8ec256b 100644 --- a/src/conversions/cart.cpp +++ b/src/conversions/cart.cpp @@ -43,7 +43,7 @@ #define PJ_LIB__ #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" PROJ_HEAD(cart, "Geodetic/cartesian conversions"); diff --git a/src/conversions/geoc.cpp b/src/conversions/geoc.cpp index 0455fada..66ca6199 100644 --- a/src/conversions/geoc.cpp +++ b/src/conversions/geoc.cpp @@ -32,7 +32,7 @@ #include "proj.h" #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(geoc, "Geocentric Latitude"); diff --git a/src/conversions/geocent.cpp b/src/conversions/geocent.cpp index d5f3e075..c8d2d486 100644 --- a/src/conversions/geocent.cpp +++ b/src/conversions/geocent.cpp @@ -30,7 +30,7 @@ #define PJ_LIB__ #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(geocent, "Geocentric") "\n\t"; diff --git a/src/conversions/unitconvert.cpp b/src/conversions/unitconvert.cpp index 10c56344..cbd81a7d 100644 --- a/src/conversions/unitconvert.cpp +++ b/src/conversions/unitconvert.cpp @@ -72,7 +72,7 @@ Last update: 2017-05-16 #include "proj_internal.h" #include "proj_math.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(unitconvert, "Unit conversion"); diff --git a/src/ctx.cpp b/src/ctx.cpp index 1742ee87..195f3b7f 100644 --- a/src/ctx.cpp +++ b/src/ctx.cpp @@ -31,7 +31,7 @@ #include "proj_experimental.h" #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" static projCtx_t default_context; static volatile int default_context_initialized = 0; diff --git a/src/datum_set.cpp b/src/datum_set.cpp index 7fca783f..c1cb4cb9 100644 --- a/src/datum_set.cpp +++ b/src/datum_set.cpp @@ -29,7 +29,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" /* SEC_TO_RAD = Pi/180/3600 */ #define SEC_TO_RAD 4.84813681109535993589914102357e-6 diff --git a/src/datums.cpp b/src/datums.cpp index acbe12f7..5b57a713 100644 --- a/src/datums.cpp +++ b/src/datums.cpp @@ -30,7 +30,7 @@ #include "proj.h" #define PJ_DATUMS__ -#include "projects.h" +#include "proj_internal.h" /* * The ellipse code must match one from pj_ellps.c. The datum id should diff --git a/src/deriv.cpp b/src/deriv.cpp index 3839809e..bc7fa19e 100644 --- a/src/deriv.cpp +++ b/src/deriv.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" int pj_deriv(PJ_LP lp, double h, const PJ *P, struct DERIVS *der) { PJ_XY t; diff --git a/src/dmstor.cpp b/src/dmstor.cpp index bffebc9c..3ba66030 100644 --- a/src/dmstor.cpp +++ b/src/dmstor.cpp @@ -6,7 +6,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" static double proj_strtod(char *nptr, char **endptr); diff --git a/src/ell_set.cpp b/src/ell_set.cpp index ee819917..65049a90 100644 --- a/src/ell_set.cpp +++ b/src/ell_set.cpp @@ -6,7 +6,7 @@ #include "proj.h" #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" /* Prototypes of the pj_ellipsoid helper functions */ diff --git a/src/ellps.cpp b/src/ellps.cpp index f548d30d..7a42768b 100644 --- a/src/ellps.cpp +++ b/src/ellps.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" static const struct PJ_ELLPS pj_ellps[] = { diff --git a/src/errno.cpp b/src/errno.cpp index f948a945..4f3119b3 100644 --- a/src/errno.cpp +++ b/src/errno.cpp @@ -1,7 +1,7 @@ /* For full ANSI compliance of global variable */ #include "proj.h" -#include "projects.h" +#include "proj_internal.h" int pj_errno = 0; diff --git a/src/factors.cpp b/src/factors.cpp index 76b0d4e6..f50c8e21 100644 --- a/src/factors.cpp +++ b/src/factors.cpp @@ -3,7 +3,7 @@ #include "proj.h" #include "proj_internal.h" #include "proj_math.h" -#include "projects.h" +#include "proj_internal.h" #include diff --git a/src/fileapi.cpp b/src/fileapi.cpp index c9e986e5..70c7b5de 100644 --- a/src/fileapi.cpp +++ b/src/fileapi.cpp @@ -33,7 +33,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" static PAFile stdio_fopen(projCtx ctx, const char *filename, const char *access); diff --git a/src/fwd.cpp b/src/fwd.cpp index 2824a039..02f31f87 100644 --- a/src/fwd.cpp +++ b/src/fwd.cpp @@ -33,7 +33,7 @@ #include "proj_internal.h" #include "proj_math.h" -#include "projects.h" +#include "proj_internal.h" #define INPUT_UNITS P->left #define OUTPUT_UNITS P->right diff --git a/src/gauss.cpp b/src/gauss.cpp index d7354bdc..b7a27191 100644 --- a/src/gauss.cpp +++ b/src/gauss.cpp @@ -29,7 +29,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #define MAX_ITER 20 diff --git a/src/gc_reader.cpp b/src/gc_reader.cpp index 094aa44c..def52a11 100644 --- a/src/gc_reader.cpp +++ b/src/gc_reader.cpp @@ -33,7 +33,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" static int gc_readentry(projCtx ctx, PAFile fid, PJ_GridCatalogEntry *entry); diff --git a/src/gridcatalog.cpp b/src/gridcatalog.cpp index 18f93b4e..ca5750ab 100644 --- a/src/gridcatalog.cpp +++ b/src/gridcatalog.cpp @@ -33,7 +33,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" static PJ_GridCatalog *grid_catalog_list = nullptr; diff --git a/src/gridinfo.cpp b/src/gridinfo.cpp index 041de935..1a0bc16a 100644 --- a/src/gridinfo.cpp +++ b/src/gridinfo.cpp @@ -36,7 +36,7 @@ #include #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" /************************************************************************/ /* swap_words() */ diff --git a/src/gridlist.cpp b/src/gridlist.cpp index 41f4e2c5..c540b134 100644 --- a/src/gridlist.cpp +++ b/src/gridlist.cpp @@ -33,7 +33,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" static PJ_GRIDINFO *grid_list = nullptr; #define PJ_MAX_PATH_LENGTH 1024 diff --git a/src/init.cpp b/src/init.cpp index bc5f6dcb..85c59d58 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -40,7 +40,7 @@ #include "proj.h" #include "proj_internal.h" #include "proj_math.h" -#include "projects.h" +#include "proj_internal.h" /**************************************************************************************/ diff --git a/src/initcache.cpp b/src/initcache.cpp index 4d1d8695..6120a406 100644 --- a/src/initcache.cpp +++ b/src/initcache.cpp @@ -28,7 +28,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" static int cache_count = 0; static int cache_alloc = 0; diff --git a/src/internal.cpp b/src/internal.cpp index 41744d16..f774cad6 100644 --- a/src/internal.cpp +++ b/src/internal.cpp @@ -39,7 +39,7 @@ #include "geodesic.h" #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" enum pj_io_units pj_left (PJ *P) { diff --git a/src/inv.cpp b/src/inv.cpp index 8ce5dfcd..83c5498c 100644 --- a/src/inv.cpp +++ b/src/inv.cpp @@ -32,7 +32,7 @@ #include "proj_internal.h" #include "proj_math.h" -#include "projects.h" +#include "proj_internal.h" #define INPUT_UNITS P->right #define OUTPUT_UNITS P->left diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index 0fe0c247..20629e8b 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -50,10 +50,9 @@ // PROJ include order is sensitive // clang-format off -#include "proj_internal.h" #include "proj.h" +#include "proj_internal.h" #include "proj_experimental.h" -#include "projects.h" // clang-format on #include "proj_constants.h" diff --git a/src/iso19111/coordinateoperation.cpp b/src/iso19111/coordinateoperation.cpp index 6b6651da..93314b85 100644 --- a/src/iso19111/coordinateoperation.cpp +++ b/src/iso19111/coordinateoperation.cpp @@ -44,7 +44,7 @@ // PROJ include order is sensitive // clang-format off #include "proj.h" -#include "projects.h" // M_PI +#include "proj_internal.h" // M_PI // clang-format on #include diff --git a/src/iso19111/datum.cpp b/src/iso19111/datum.cpp index 16e86296..320be14b 100644 --- a/src/iso19111/datum.cpp +++ b/src/iso19111/datum.cpp @@ -42,7 +42,7 @@ // PROJ include order is sensitive // clang-format off #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_api.h" // clang-format on diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index 47d31db9..dcc32f32 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -59,7 +59,7 @@ // PROJ include order is sensitive // clang-format off #include "proj.h" -#include "projects.h" +#include "proj_internal.h" // clang-format on #include diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index effb3968..15a069c6 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -66,7 +66,7 @@ // PROJ include order is sensitive // clang-format off #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_api.h" // clang-format on diff --git a/src/jniproj.cpp b/src/jniproj.cpp index e6f83270..59b5b2a0 100644 --- a/src/jniproj.cpp +++ b/src/jniproj.cpp @@ -48,7 +48,7 @@ #include #include -#include "projects.h" +#include "proj_internal.h" #include "org_proj4_PJ.h" #include diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake index 767106e6..b595d87e 100644 --- a/src/lib_proj.cmake +++ b/src/lib_proj.cmake @@ -200,7 +200,7 @@ SET(SRC_LIBPROJ_ISO19111 ) SET(SRC_LIBPROJ_CORE - pj_list.h proj_internal.h proj_math.h projects.h + pj_list.h proj_internal.h proj_math.h aasincos.cpp adjlon.cpp bch2bps.cpp bchgen.cpp biveval.cpp dmstor.cpp mk_cheby.cpp auth.cpp deriv.cpp ell_set.cpp ellps.cpp errno.cpp diff --git a/src/list.cpp b/src/list.cpp index 73ca5f86..360d6b66 100644 --- a/src/list.cpp +++ b/src/list.cpp @@ -5,7 +5,7 @@ #include "proj.h" #define USE_PJ_LIST_H 1 -#include "projects.h" +#include "proj_internal.h" /* Generate prototypes for projection functions */ diff --git a/src/log.cpp b/src/log.cpp index 0f81dc13..4c15772b 100644 --- a/src/log.cpp +++ b/src/log.cpp @@ -31,7 +31,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" /************************************************************************/ /* pj_stderr_logger() */ diff --git a/src/malloc.cpp b/src/malloc.cpp index a14b1727..6bd4639e 100644 --- a/src/malloc.cpp +++ b/src/malloc.cpp @@ -47,7 +47,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" /**********************************************************************/ void *pj_malloc(size_t size) { diff --git a/src/mk_cheby.cpp b/src/mk_cheby.cpp index 62528a41..0f3b97ed 100644 --- a/src/mk_cheby.cpp +++ b/src/mk_cheby.cpp @@ -1,5 +1,5 @@ #include "proj.h" -#include "projects.h" +#include "proj_internal.h" static void /* sum coefficients less than res */ eval(PJ_UV **w, int nu, int nv, double res, PJ_UV *resid) { int i, j; diff --git a/src/mlfn.cpp b/src/mlfn.cpp index e6bbd152..a5448e3b 100644 --- a/src/mlfn.cpp +++ b/src/mlfn.cpp @@ -1,7 +1,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" /* meridional distance for ellipsoid and inverse ** 8th degree - accurate to < 1e-5 meters when used in conjunction diff --git a/src/msfn.cpp b/src/msfn.cpp index cf6accf1..74506317 100644 --- a/src/msfn.cpp +++ b/src/msfn.cpp @@ -1,7 +1,7 @@ /* determine constant small m */ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" double pj_msfn(double sinphi, double cosphi, double es) { return (cosphi / sqrt (1. - es * sinphi * sinphi)); diff --git a/src/mutex.cpp b/src/mutex.cpp index 857c8bb4..12251f0f 100644 --- a/src/mutex.cpp +++ b/src/mutex.cpp @@ -41,7 +41,7 @@ #include "proj.h" #ifndef _WIN32 #include "proj_config.h" -#include "projects.h" +#include "proj_internal.h" #else #ifndef ACCEPT_USE_OF_DEPRECATED_PROJ_API_H #define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H diff --git a/src/nad_cvt.cpp b/src/nad_cvt.cpp index 91615bfa..76d2ccd0 100644 --- a/src/nad_cvt.cpp +++ b/src/nad_cvt.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" #define MAX_ITERATIONS 10 diff --git a/src/nad_init.cpp b/src/nad_init.cpp index 695fa973..b29f7f0e 100644 --- a/src/nad_init.cpp +++ b/src/nad_init.cpp @@ -34,7 +34,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" /************************************************************************/ /* swap_words() */ diff --git a/src/nad_intr.cpp b/src/nad_intr.cpp index 92d3292b..2c301ef8 100644 --- a/src/nad_intr.cpp +++ b/src/nad_intr.cpp @@ -3,7 +3,7 @@ #include "proj_internal.h" #include "proj_math.h" #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PJ_LP nad_intr(PJ_LP t, struct CTABLE *ct) { PJ_LP val, frct; diff --git a/src/open_lib.cpp b/src/open_lib.cpp index c75b4af6..f4fa313f 100644 --- a/src/open_lib.cpp +++ b/src/open_lib.cpp @@ -37,7 +37,7 @@ #include #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" static const char *(*pj_finder)(const char *) = nullptr; static int path_count = 0; diff --git a/src/param.cpp b/src/param.cpp index 22d21cf4..8125d62f 100644 --- a/src/param.cpp +++ b/src/param.cpp @@ -7,7 +7,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" /* create parameter list entry */ paralist *pj_mkparam(const char *str) { diff --git a/src/phi2.cpp b/src/phi2.cpp index 1f7b0846..afabd06e 100644 --- a/src/phi2.cpp +++ b/src/phi2.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" static const double TOL = 1.0e-10; static const int N_ITER = 15; diff --git a/src/pipeline.cpp b/src/pipeline.cpp index 23d8f969..4b4ba3a7 100644 --- a/src/pipeline.cpp +++ b/src/pipeline.cpp @@ -104,7 +104,7 @@ Thomas Knudsen, thokn@sdfe.dk, 2016-05-20 #include "geodesic.h" #include "proj.h" #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(pipeline, "Transformation pipeline manager"); diff --git a/src/pr_list.cpp b/src/pr_list.cpp index 2ff91332..77db5bfb 100644 --- a/src/pr_list.cpp +++ b/src/pr_list.cpp @@ -5,7 +5,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #define LINE_LEN 72 static int diff --git a/src/proj.h b/src/proj.h index 54720664..cf42ccd5 100644 --- a/src/proj.h +++ b/src/proj.h @@ -113,12 +113,11 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#include /* For size_t */ +#ifndef PROJ_H +#define PROJ_H +#include /* For size_t */ -#ifdef PROJECTS_H -#error proj.h must be included before projects.h -#endif #ifdef PROJ_API_H #error proj.h must be included before proj_api.h #endif @@ -127,8 +126,6 @@ #include "proj_symbol_rename.h" #endif -#ifndef PROJ_H -#define PROJ_H #ifdef __cplusplus extern "C" { #endif diff --git a/src/proj_experimental.h b/src/proj_experimental.h index 31600e67..10faccd4 100644 --- a/src/proj_experimental.h +++ b/src/proj_experimental.h @@ -26,14 +26,15 @@ * DEALINGS IN THE SOFTWARE. ****************************************************************************/ -#include "proj.h" - #ifndef PROJ_EXPERIMENTAL_H #define PROJ_EXPERIMENTAL_H + #ifdef __cplusplus extern "C" { #endif +#include "proj.h" + /** * \file proj_experimental.h * diff --git a/src/proj_internal.h b/src/proj_internal.h index d5c807fb..93edae5e 100644 --- a/src/proj_internal.h +++ b/src/proj_internal.h @@ -26,20 +26,45 @@ * DEALINGS IN THE SOFTWARE. *****************************************************************************/ -#ifdef _MSC_VER -#ifndef _USE_MATH_DEFINES -#define _USE_MATH_DEFINES +#ifndef PROJ_INTERNAL_H +#define PROJ_INTERNAL_H + +#ifndef __cplusplus +#error "proj_internal.h can only be included from a C++ file" #endif + +#ifndef ACCEPT_USE_OF_DEPRECATED_PROJ_API_H +#define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H +#endif + +#ifdef _MSC_VER +# ifndef _CRT_SECURE_NO_DEPRECATE +# define _CRT_SECURE_NO_DEPRECATE +# endif +# ifndef _CRT_NONSTDC_NO_DEPRECATE +# define _CRT_NONSTDC_NO_DEPRECATE +# endif +/* enable predefined math constants M_* for MS Visual Studio workaround */ +# ifndef _USE_MATH_DEFINES +# define _USE_MATH_DEFINES +# endif #endif -#include /* For M_PI */ +/* standard inclusions */ +#include +#include #include +#include +#include +#include + +#include "proj/common.hpp" +#include "proj/coordinateoperation.hpp" +#include +#include #include "proj.h" -#ifdef PROJECTS_H -#error proj_internal.h must be included before projects.h -#endif #ifdef PROJ_API_H #error proj_internal.h must be included before proj_api.h #endif @@ -48,12 +73,6 @@ #include "proj_symbol_rename.h" #endif -#ifndef PROJ_INTERNAL_H -#define PROJ_INTERNAL_H -#ifdef __cplusplus -extern "C" { -#endif - #define STATIC_ASSERT(COND) ((void)sizeof(char[(COND) ? 1 : -1])) #if !defined(HAVE_C99_MATH) @@ -70,6 +89,89 @@ extern "C" { /* Maximum latitudinal overshoot accepted */ #define PJ_EPS_LAT 1e-12 +#define C_NAMESPACE extern "C" +#define C_NAMESPACE_VAR extern "C" + +#ifndef NULL +# define NULL 0 +#endif + +#ifndef FALSE +# define FALSE 0 +#endif + +#ifndef TRUE +# define TRUE 1 +#endif + +#ifndef MAX +# define MIN(a,b) ((ab) ? a : b) +#endif + +#ifndef ABS +# define ABS(x) ((x<0) ? (-1*(x)) : x) +#endif + +#if INT_MAX == 2147483647 +typedef int pj_int32; +#elif LONG_MAX == 2147483647 +typedef long pj_int32; +#else +#warning It seems no 32-bit integer type is available +#endif + +/* maximum path/filename */ +#ifndef MAX_PATH_FILENAME +#define MAX_PATH_FILENAME 1024 +#endif + +/* If we still haven't got M_PI*, we rely on our own defines. + * For example, this is necessary when compiling with gcc and + * the -ansi flag. + */ +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#define M_PI_2 1.57079632679489661923 +#define M_PI_4 0.78539816339744830962 +#define M_2_PI 0.63661977236758134308 +#endif + +/* M_SQRT2 might be missing */ +#ifndef M_SQRT2 +#define M_SQRT2 1.41421356237309504880 +#endif + +/* some more useful math constants and aliases */ +#define M_FORTPI M_PI_4 /* pi/4 */ +#define M_HALFPI M_PI_2 /* pi/2 */ +#define M_PI_HALFPI 4.71238898038468985769 /* 1.5*pi */ +#define M_TWOPI 6.28318530717958647693 /* 2*pi */ +#define M_TWO_D_PI M_2_PI /* 2/pi */ +#define M_TWOPI_HALFPI 7.85398163397448309616 /* 2.5*pi */ + + +/* maximum tag id length for +init and default files */ +#ifndef ID_TAG_MAX +#define ID_TAG_MAX 50 +#endif + +/* Use WIN32 as a standard windows 32 bit declaration */ +#if defined(_WIN32) && !defined(WIN32) +# define WIN32 +#endif + +#if defined(_WINDOWS) && !defined(WIN32) +# define WIN32 +#endif + +/* directory delimiter for DOS support */ +#ifdef WIN32 +#define DIR_CHAR '\\' +#else +#define DIR_CHAR '/' +#endif + /* This enum is also conditionally defined in projects.h - but enums cannot */ /* be forward declared and we need it here for the pj_left/right prototypes */ @@ -132,8 +234,667 @@ void proj_fileapi_set (PJ *P, void *fileapi); const char * const *proj_get_searchpath(void); int proj_get_path_count(void); -#ifdef __cplusplus -} +typedef struct { double r, i; } COMPLEX; + +/* Forward declarations and typedefs for stuff needed inside the PJ object */ +struct PJconsts; + +union PJ_COORD; +struct geod_geodesic; +struct ARG_list; +struct PJ_REGION_S; +typedef struct PJ_REGION_S PJ_Region; +typedef struct ARG_list paralist; /* parameter list */ +#ifndef PROJ_INTERNAL_H +enum pj_io_units { + PJ_IO_UNITS_WHATEVER = 0, /* Doesn't matter (or depends on pipeline neighbours) */ + PJ_IO_UNITS_CLASSIC = 1, /* Scaled meters (right), projected system */ + PJ_IO_UNITS_PROJECTED = 2, /* Meters, projected system */ + PJ_IO_UNITS_CARTESIAN = 3, /* Meters, 3D cartesian system */ + PJ_IO_UNITS_ANGULAR = 4 /* Radians */ +}; +#endif +#ifndef PROJ_H +typedef struct PJconsts PJ; /* the PJ object herself */ +typedef union PJ_COORD PJ_COORD; +#endif + +struct PJ_REGION_S { + double ll_long; /* lower left corner coordinates (radians) */ + double ll_lat; + double ur_long; /* upper right corner coordinates (radians) */ + double ur_lat; +}; + +struct PJ_AREA { + int bbox_set; + double west_lon_degree; + double south_lat_degree; + double east_lon_degree; + double north_lat_degree; +}; + +struct projCtx_t; +typedef struct projCtx_t projCtx_t; + +/***************************************************************************** + + Some function types that are especially useful when working with PJs + +****************************************************************************** + +PJ_CONSTRUCTOR: + + A function taking a pointer-to-PJ as arg, and returning a pointer-to-PJ. + Historically called twice: First with a 0 argument, to allocate memory, + second with the first return value as argument, for actual setup. + +PJ_DESTRUCTOR: + + A function taking a pointer-to-PJ and an integer as args, then first + handling the deallocation of the PJ, afterwards handing the integer over + to the error reporting subsystem, and finally returning a null pointer in + support of the "return free (P)" (aka "get the hell out of here") idiom. + +PJ_OPERATOR: + + A function taking a PJ_COORD and a pointer-to-PJ as args, applying the + PJ to the PJ_COORD, and returning the resulting PJ_COORD. + +*****************************************************************************/ +typedef PJ *(* PJ_CONSTRUCTOR) (PJ *); +typedef PJ *(* PJ_DESTRUCTOR) (PJ *, int); +typedef PJ_COORD (* PJ_OPERATOR) (PJ_COORD, PJ *); +/****************************************************************************/ + + +/* datum_type values */ +#define PJD_UNKNOWN 0 +#define PJD_3PARAM 1 +#define PJD_7PARAM 2 +#define PJD_GRIDSHIFT 3 +#define PJD_WGS84 4 /* WGS84 (or anything considered equivalent) */ + + +/* base projection data structure */ +struct PJconsts { + + /************************************************************************************* + + G E N E R A L P A R A M E T E R S T R U C T + + ************************************************************************************** + + TODO: Need some description here - especially about the thread context... + This is the struct behind the PJ typedef + + **************************************************************************************/ + + projCtx_t *ctx = nullptr; + const char *descr = nullptr; /* From pj_list.h or individual PJ_*.c file */ + paralist *params = nullptr; /* Parameter list */ + char *def_full = nullptr; /* Full textual definition (usually 0 - set by proj_pj_info) */ + char *def_size = nullptr; /* Shape and size parameters extracted from params */ + char *def_shape = nullptr; + char *def_spherification = nullptr; + char *def_ellps = nullptr; + + struct geod_geodesic *geod = nullptr; /* For geodesic computations */ + void *opaque = nullptr; /* Projection specific parameters, Defined in PJ_*.c */ + int inverted = 0; /* Tell high level API functions to swap inv/fwd */ + + + /************************************************************************************* + + F U N C T I O N P O I N T E R S + + ************************************************************************************** + + For projection xxx, these are pointers to functions in the corresponding + PJ_xxx.c file. + + pj_init() delegates the setup of these to pj_projection_specific_setup_xxx(), + a name which is currently hidden behind the magic curtain of the PROJECTION + macro. + + **************************************************************************************/ + + + PJ_XY (*fwd)(PJ_LP, PJ *) = nullptr; + PJ_LP (*inv)(PJ_XY, PJ *) = nullptr; + PJ_XYZ (*fwd3d)(PJ_LPZ, PJ *) = nullptr; + PJ_LPZ (*inv3d)(PJ_XYZ, PJ *) = nullptr; + PJ_OPERATOR fwd4d = nullptr; + PJ_OPERATOR inv4d = nullptr; + + PJ_DESTRUCTOR destructor = nullptr; + + + /************************************************************************************* + + E L L I P S O I D P A R A M E T E R S + + ************************************************************************************** + + Despite YAGNI, we add a large number of ellipsoidal shape parameters, which + are not yet set up in pj_init. They are, however, inexpensive to compute, + compared to the overall time taken for setting up the complex PJ object + (cf. e.g. https://en.wikipedia.org/wiki/Angular_eccentricity). + + But during single point projections it will often be a useful thing to have + these readily available without having to recompute at every pj_fwd / pj_inv + call. + + With this wide selection, we should be ready for quite a number of geodetic + algorithms, without having to incur further ABI breakage. + + **************************************************************************************/ + + /* The linear parameters */ + + double a = 0.0; /* semimajor axis (radius if eccentricity==0) */ + double b = 0.0; /* semiminor axis */ + double ra = 0.0; /* 1/a */ + double rb = 0.0; /* 1/b */ + + /* The eccentricities */ + + double alpha = 0.0; /* angular eccentricity */ + double e = 0.0; /* first eccentricity */ + double es = 0.0; /* first eccentricity squared */ + double e2 = 0.0; /* second eccentricity */ + double e2s = 0.0; /* second eccentricity squared */ + double e3 = 0.0; /* third eccentricity */ + double e3s = 0.0; /* third eccentricity squared */ + double one_es = 0.0; /* 1 - e^2 */ + double rone_es = 0.0; /* 1/one_es */ + + + /* The flattenings */ + double f = 0.0; /* first flattening */ + double f2 = 0.0; /* second flattening */ + double n = 0.0; /* third flattening */ + double rf = 0.0; /* 1/f */ + double rf2 = 0.0; /* 1/f2 */ + double rn = 0.0; /* 1/n */ + + /* This one's for GRS80 */ + double J = 0.0; /* "Dynamic form factor" */ + + double es_orig = 0.0; /* es and a before any +proj related adjustment */ + double a_orig = 0.0; + + + /************************************************************************************* + + C O O R D I N A T E H A N D L I N G + + **************************************************************************************/ + + int over = 0; /* Over-range flag */ + int geoc = 0; /* Geocentric latitude flag */ + int is_latlong = 0; /* proj=latlong ... not really a projection at all */ + int is_geocent = 0; /* proj=geocent ... not really a projection at all */ + int is_pipeline = 0; /* 1 if PJ represents a pipeline */ + int need_ellps = 0; /* 0 for operations that are purely cartesian */ + int skip_fwd_prepare = 0; + int skip_fwd_finalize = 0; + int skip_inv_prepare = 0; + int skip_inv_finalize = 0; + + enum pj_io_units left = PJ_IO_UNITS_WHATEVER; /* Flags for input/output coordinate types */ + enum pj_io_units right = PJ_IO_UNITS_WHATEVER; + + /* These PJs are used for implementing cs2cs style coordinate handling in the 4D API */ + PJ *axisswap = nullptr; + PJ *cart = nullptr; + PJ *cart_wgs84 = nullptr; + PJ *helmert = nullptr; + PJ *hgridshift = nullptr; + PJ *vgridshift = nullptr; + + + /************************************************************************************* + + C A R T O G R A P H I C O F F S E T S + + **************************************************************************************/ + + double lam0 = 0.0; /* central meridian */ + double phi0 = 0.0; /* central parallel */ + double x0 = 0.0; /* false easting */ + double y0 = 0.0; /* false northing */ + double z0 = 0.0; /* height origin */ + double t0 = 0.0; /* time origin */ + + + /************************************************************************************* + + S C A L I N G + + **************************************************************************************/ + + double k0 = 0.0; /* General scaling factor - e.g. the 0.9996 of UTM */ + double to_meter = 0.0, fr_meter = 0.0; /* Plane coordinate scaling. Internal unit [m] */ + double vto_meter = 0.0, vfr_meter = 0.0; /* Vertical scaling. Internal unit [m] */ + + + /************************************************************************************* + + D A T U M S A N D H E I G H T S Y S T E M S + + ************************************************************************************** + + It may be possible, and meaningful, to move the list parts of this up to the + PJ_CONTEXT level. + + **************************************************************************************/ + + int datum_type = PJD_UNKNOWN; /* PJD_UNKNOWN/3PARAM/7PARAM/GRIDSHIFT/WGS84 */ + double datum_params[7] = {0,0,0,0,0,0,0}; /* Parameters for 3PARAM and 7PARAM */ + struct _pj_gi **gridlist = nullptr; /* TODO: Description needed */ + int gridlist_count = 0; + + int has_geoid_vgrids = 0; /* TODO: Description needed */ + struct _pj_gi **vgridlist_geoid = nullptr; /* TODO: Description needed */ + int vgridlist_geoid_count = 0; + + double from_greenwich = 0.0; /* prime meridian offset (in radians) */ + double long_wrap_center = 0.0; /* 0.0 for -180 to 180, actually in radians*/ + int is_long_wrap_set = 0; + char axis[4] = {0,0,0,0}; /* Axis order, pj_transform/pj_adjust_axis */ + + /* New Datum Shift Grid Catalogs */ + char *catalog_name = nullptr; + struct _PJ_GridCatalog *catalog = nullptr; + + double datum_date = 0.0; /* TODO: Description needed */ + + struct _pj_gi *last_before_grid = nullptr; /* TODO: Description needed */ + PJ_Region last_before_region = {0,0,0,0}; /* TODO: Description needed */ + double last_before_date = 0.0; /* TODO: Description needed */ + + struct _pj_gi *last_after_grid = nullptr; /* TODO: Description needed */ + PJ_Region last_after_region = {0,0,0,0}; /* TODO: Description needed */ + double last_after_date = 0.0; /* TODO: Description needed */ + + /************************************************************************************* + ISO-19111 interface + **************************************************************************************/ + + NS_PROJ::common::IdentifiedObjectPtr iso_obj{}; + + // cached results + mutable std::string lastWKT{}; + mutable std::string lastPROJString{}; + mutable bool gridsNeededAsked = false; + mutable std::vector gridsNeeded{}; + + /************************************************************************************* + + E N D O F G E N E R A L P A R A M E T E R S T R U C T + + **************************************************************************************/ + + PJconsts(); + PJconsts(const PJconsts &) = delete; + PJconsts &operator=(const PJconsts &) = delete; +}; + + + + +/* Parameter list (a copy of the +proj=... etc. parameters) */ +struct ARG_list { + paralist *next; + char used; +#if defined(__GNUC__) && __GNUC__ >= 8 + char param[]; /* variable-length member */ + /* Safer to use [] for gcc 8. See https://github.com/OSGeo/proj.4/pull/1087 */ + /* and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86914 */ +#else + char param[1]; /* variable-length member */ #endif +}; + + +typedef union { double f; int i; char *s; } PROJVALUE; + + +struct PJ_DATUMS { + const char *id; /* datum keyword */ + const char *defn; /* ie. "to_wgs84=..." */ + const char *ellipse_id; /* ie from ellipse table */ + const char *comments; /* EPSG code, etc */ +}; + + +struct DERIVS { + double x_l, x_p; /* derivatives of x for lambda-phi */ + double y_l, y_p; /* derivatives of y for lambda-phi */ +}; + +struct FACTORS { + struct DERIVS der; + double h, k; /* meridional, parallel scales */ + double omega, thetap; /* angular distortion, theta prime */ + double conv; /* convergence */ + double s; /* areal scale factor */ + double a, b; /* max-min scale error */ + int code; /* always 0 */ +}; + +/* library errors */ +#define PJD_ERR_NO_ARGS -1 +#define PJD_ERR_NO_OPTION_IN_INIT_FILE -2 +#define PJD_ERR_NO_COLON_IN_INIT_STRING -3 +#define PJD_ERR_PROJ_NOT_NAMED -4 +#define PJD_ERR_UNKNOWN_PROJECTION_ID -5 +#define PJD_ERR_ECCENTRICITY_IS_ONE -6 +#define PJD_ERR_UNKNOWN_UNIT_ID -7 +#define PJD_ERR_INVALID_BOOLEAN_PARAM -8 +#define PJD_ERR_UNKNOWN_ELLP_PARAM -9 +#define PJD_ERR_REV_FLATTENING_IS_ZERO -10 +#define PJD_ERR_REF_RAD_LARGER_THAN_90 -11 +#define PJD_ERR_ES_LESS_THAN_ZERO -12 +#define PJD_ERR_MAJOR_AXIS_NOT_GIVEN -13 +#define PJD_ERR_LAT_OR_LON_EXCEED_LIMIT -14 +#define PJD_ERR_INVALID_X_OR_Y -15 +#define PJD_ERR_WRONG_FORMAT_DMS_VALUE -16 +#define PJD_ERR_NON_CONV_INV_MERI_DIST -17 +#define PJD_ERR_NON_CON_INV_PHI2 -18 +#define PJD_ERR_ACOS_ASIN_ARG_TOO_LARGE -19 +#define PJD_ERR_TOLERANCE_CONDITION -20 +#define PJD_ERR_CONIC_LAT_EQUAL -21 +#define PJD_ERR_LAT_LARGER_THAN_90 -22 +#define PJD_ERR_LAT1_IS_ZERO -23 +#define PJD_ERR_LAT_TS_LARGER_THAN_90 -24 +#define PJD_ERR_CONTROL_POINT_NO_DIST -25 +#define PJD_ERR_NO_ROTATION_PROJ -26 +#define PJD_ERR_W_OR_M_ZERO_OR_LESS -27 +#define PJD_ERR_LSAT_NOT_IN_RANGE -28 +#define PJD_ERR_PATH_NOT_IN_RANGE -29 +#define PJD_ERR_H_LESS_THAN_ZERO -30 +#define PJD_ERR_K_LESS_THAN_ZERO -31 +#define PJD_ERR_LAT_1_OR_2_ZERO_OR_90 -32 +#define PJD_ERR_LAT_0_OR_ALPHA_EQ_90 -33 +#define PJD_ERR_ELLIPSOID_USE_REQUIRED -34 +#define PJD_ERR_INVALID_UTM_ZONE -35 +#define PJD_ERR_TCHEBY_VAL_OUT_OF_RANGE -36 +#define PJD_ERR_FAILED_TO_FIND_PROJ -37 +#define PJD_ERR_FAILED_TO_LOAD_GRID -38 +#define PJD_ERR_INVALID_M_OR_N -39 +#define PJD_ERR_N_OUT_OF_RANGE -40 +#define PJD_ERR_LAT_1_2_UNSPECIFIED -41 +#define PJD_ERR_ABS_LAT1_EQ_ABS_LAT2 -42 +#define PJD_ERR_LAT_0_HALF_PI_FROM_MEAN -43 +#define PJD_ERR_UNPARSEABLE_CS_DEF -44 +#define PJD_ERR_GEOCENTRIC -45 +#define PJD_ERR_UNKNOWN_PRIME_MERIDIAN -46 +#define PJD_ERR_AXIS -47 +#define PJD_ERR_GRID_AREA -48 +#define PJD_ERR_INVALID_SWEEP_AXIS -49 +#define PJD_ERR_MALFORMED_PIPELINE -50 +#define PJD_ERR_UNIT_FACTOR_LESS_THAN_0 -51 +#define PJD_ERR_INVALID_SCALE -52 +#define PJD_ERR_NON_CONVERGENT -53 +#define PJD_ERR_MISSING_ARGS -54 +#define PJD_ERR_LAT_0_IS_ZERO -55 +#define PJD_ERR_ELLIPSOIDAL_UNSUPPORTED -56 +#define PJD_ERR_TOO_MANY_INITS -57 +#define PJD_ERR_INVALID_ARG -58 +#define PJD_ERR_INCONSISTENT_UNIT -59 +/* NOTE: Remember to update pj_strerrno.c and transient_error in */ +/* pj_transform.c when adding new value */ + +struct projFileAPI_t; + +struct projCppContext; + +/* proj thread context */ +struct projCtx_t { + int last_errno; + int debug_level; + void (*logger)(void *, int, const char *); + void *app_data; + struct projFileAPI_t *fileapi; + struct projCppContext* cpp_context; /* internal context for C++ code */ + int use_proj4_init_rules; /* -1 = unknown, 0 = no, 1 = yes */ + int epsg_file_exists; /* -1 = unknown, 0 = no, 1 = yes */ +}; + +/* classic public API */ +#include "proj_api.h" + + +/* Generate pj_list external or make list from include file */ +#ifndef PJ_DATUMS__ +C_NAMESPACE_VAR struct PJ_DATUMS pj_datums[]; +#endif + + + + + +#ifdef PJ_LIB__ +#define PROJ_HEAD(name, desc) static const char des_##name [] = desc + +#define OPERATION(name, NEED_ELPJ_LPS) \ + \ +pj_projection_specific_setup_##name (PJ *P); \ +C_NAMESPACE PJ *pj_##name (PJ *P); \ + \ +C_NAMESPACE_VAR const char * const pj_s_##name = des_##name; \ + \ +C_NAMESPACE PJ *pj_##name (PJ *P) { \ + if (P) \ + return pj_projection_specific_setup_##name (P); \ + P = pj_new(); \ + if (nullptr==P) \ + return nullptr; \ + P->descr = des_##name; \ + P->need_ellps = NEED_ELPJ_LPS; \ + P->left = PJ_IO_UNITS_ANGULAR; \ + P->right = PJ_IO_UNITS_CLASSIC; \ + return P; \ +} \ + \ +PJ *pj_projection_specific_setup_##name (PJ *P) + +/* In ISO19000 lingo, an operation is either a conversion or a transformation */ +#define CONVERSION(name, need_ellps) OPERATION (name, need_ellps) +#define TRANSFORMATION(name, need_ellps) OPERATION (name, need_ellps) + +/* In PROJ.4 a projection is a conversion taking angular input and giving scaled linear output */ +#define PROJECTION(name) CONVERSION (name, 1) + +#endif /* def PJ_LIB__ */ + + +#define MAX_TAB_ID 80 +typedef struct { float lam, phi; } FLP; +typedef struct { pj_int32 lam, phi; } ILP; + +struct CTABLE { + char id[MAX_TAB_ID]; /* ascii info */ + PJ_LP ll; /* lower left corner coordinates */ + PJ_LP del; /* size of cells */ + ILP lim; /* limits of conversion matrix */ + FLP *cvs; /* conversion matrix */ +}; + +typedef struct _pj_gi { + char *gridname; /* identifying name of grid, eg "conus" or ntv2_0.gsb */ + char *filename; /* full path to filename */ + + const char *format; /* format of this grid, ie "ctable", "ntv1", + "ntv2" or "missing". */ + + long grid_offset; /* offset in file, for delayed loading */ + int must_swap; /* only for NTv2 */ + + struct CTABLE *ct; + + struct _pj_gi *next; + struct _pj_gi *child; +} PJ_GRIDINFO; + +typedef struct { + PJ_Region region; + int priority; /* higher used before lower */ + double date; /* year.fraction */ + char *definition; /* usually the gridname */ + + PJ_GRIDINFO *gridinfo; + int available; /* 0=unknown, 1=true, -1=false */ +} PJ_GridCatalogEntry; + +typedef struct _PJ_GridCatalog { + char *catalog_name; + + PJ_Region region; /* maximum extent of catalog data */ + + int entry_count; + PJ_GridCatalogEntry *entries; + + struct _PJ_GridCatalog *next; +} PJ_GridCatalog; + +/* procedure prototypes */ +double PROJ_DLL dmstor(const char *, char **); +double dmstor_ctx(projCtx ctx, const char *, char **); +void PROJ_DLL set_rtodms(int, int); +char PROJ_DLL *rtodms(char *, double, int, int); +double PROJ_DLL adjlon(double); +double aacos(projCtx,double), aasin(projCtx,double), asqrt(double), aatan2(double, double); + +PROJVALUE PROJ_DLL pj_param(projCtx ctx, paralist *, const char *); +paralist PROJ_DLL *pj_param_exists (paralist *list, const char *parameter); +paralist PROJ_DLL *pj_mkparam(const char *); +paralist *pj_mkparam_ws (const char *str); + + +int PROJ_DLL pj_ell_set(projCtx ctx, paralist *, double *, double *); +int pj_datum_set(projCtx,paralist *, PJ *); +int pj_angular_units_set(paralist *, PJ *); + +paralist *pj_clone_paralist( const paralist* ); +paralist *pj_search_initcache( const char *filekey ); +void pj_insert_initcache( const char *filekey, const paralist *list); +paralist *pj_expand_init(projCtx ctx, paralist *init); + +void *pj_dealloc_params (projCtx ctx, paralist *start, int errlev); + + +double *pj_enfn(double); +double pj_mlfn(double, double, double, double *); +double pj_inv_mlfn(projCtx, double, double, double *); +double pj_qsfn(double, double, double); +double pj_tsfn(double, double, double); +double pj_msfn(double, double, double); +double PROJ_DLL pj_phi2(projCtx, double, double); +double pj_qsfn_(double, PJ *); +double *pj_authset(double); +double pj_authlat(double, double *); + +COMPLEX pj_zpoly1(COMPLEX, const COMPLEX *, int); +COMPLEX pj_zpolyd1(COMPLEX, const COMPLEX *, int, COMPLEX *); + +int pj_deriv(PJ_LP, double, const PJ *, struct DERIVS *); +int pj_factors(PJ_LP, const PJ *, double, struct FACTORS *); + +struct PW_COEF { /* row coefficient structure */ + int m; /* number of c coefficients (=0 for none) */ + double *c; /* power coefficients */ +}; + +/* Approximation structures and procedures */ +typedef struct { /* Chebyshev or Power series structure */ + PJ_UV a, b; /* power series range for evaluation */ + /* or Chebyshev argument shift/scaling */ + struct PW_COEF *cu, *cv; + int mu, mv; /* maximum cu and cv index (+1 for count) */ + int power; /* != 0 if power series, else Chebyshev */ +} Tseries; + +Tseries PROJ_DLL *mk_cheby(PJ_UV, PJ_UV, double, PJ_UV *, PJ_UV (*)(PJ_UV), int, int, int); +PJ_UV bpseval(PJ_UV, Tseries *); +PJ_UV bcheval(PJ_UV, Tseries *); +PJ_UV biveval(PJ_UV, Tseries *); +void *vector1(int, int); +void **vector2(int, int, int); +void freev2(void **v, int nrows); +int bchgen(PJ_UV, PJ_UV, int, int, PJ_UV **, PJ_UV(*)(PJ_UV)); +int bch2bps(PJ_UV, PJ_UV, PJ_UV **, int, int); + +/* nadcon related protos */ +PJ_LP nad_intr(PJ_LP, struct CTABLE *); +PJ_LP nad_cvt(PJ_LP, int, struct CTABLE *); +struct CTABLE *nad_init(projCtx ctx, char *); +struct CTABLE *nad_ctable_init( projCtx ctx, PAFile fid ); +int nad_ctable_load( projCtx ctx, struct CTABLE *, PAFile fid ); +struct CTABLE *nad_ctable2_init( projCtx ctx, PAFile fid ); +int nad_ctable2_load( projCtx ctx, struct CTABLE *, PAFile fid ); +void nad_free(struct CTABLE *); + +/* higher level handling of datum grid shift files */ + +int pj_apply_vgridshift( PJ *defn, const char *listname, + PJ_GRIDINFO ***gridlist_p, + int *gridlist_count_p, + int inverse, + long point_count, int point_offset, + double *x, double *y, double *z ); +int pj_apply_gridshift_2( PJ *defn, int inverse, + long point_count, int point_offset, + double *x, double *y, double *z ); +int pj_apply_gridshift_3( projCtx ctx, + PJ_GRIDINFO **gridlist, int gridlist_count, + int inverse, long point_count, int point_offset, + double *x, double *y, double *z ); + +PJ_GRIDINFO **pj_gridlist_from_nadgrids( projCtx, const char *, int * ); +void PROJ_DLL pj_deallocate_grids(); + +PJ_GRIDINFO *pj_gridinfo_init( projCtx, const char * ); +int pj_gridinfo_load( projCtx, PJ_GRIDINFO * ); +void pj_gridinfo_free( projCtx, PJ_GRIDINFO * ); + +PJ_GridCatalog *pj_gc_findcatalog( projCtx, const char * ); +PJ_GridCatalog *pj_gc_readcatalog( projCtx, const char * ); +void pj_gc_unloadall( projCtx ); +int pj_gc_apply_gridshift( PJ *defn, int inverse, + long point_count, int point_offset, + double *x, double *y, double *z ); +int pj_gc_apply_gridshift( PJ *defn, int inverse, + long point_count, int point_offset, + double *x, double *y, double *z ); + +PJ_GRIDINFO *pj_gc_findgrid( projCtx ctx, + PJ_GridCatalog *catalog, int after, + PJ_LP location, double date, + PJ_Region *optional_region, + double *grid_date ); + +double pj_gc_parsedate( projCtx, const char * ); + +void *proj_mdist_ini(double); +double proj_mdist(double, double, double, const void *); +double proj_inv_mdist(projCtx ctx, double, const void *); +void *pj_gauss_ini(double, double, double *,double *); +PJ_LP pj_gauss(projCtx, PJ_LP, const void *); +PJ_LP pj_inv_gauss(projCtx, PJ_LP, const void *); + +struct PJ_DATUMS PROJ_DLL *pj_get_datums_ref( void ); + +PJ *pj_new(void); +PJ *pj_default_destructor (PJ *P, int errlev); + +double PROJ_DLL pj_atof( const char* nptr ); +double pj_strtod( const char *nptr, char **endptr ); +void pj_freeup_plain (PJ *P); + +projPJ pj_init_ctx_with_allow_init_epsg( projCtx ctx, int argc, char **argv, int allow_init_epsg ); + #endif /* ndef PROJ_INTERNAL_H */ diff --git a/src/proj_mdist.cpp b/src/proj_mdist.cpp index e7acedcc..d15a692c 100644 --- a/src/proj_mdist.cpp +++ b/src/proj_mdist.cpp @@ -33,7 +33,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #define MAX_ITER 20 #define TOL 1e-14 diff --git a/src/projections/aea.cpp b/src/projections/aea.cpp index 2b7f7238..9a0c4656 100644 --- a/src/projections/aea.cpp +++ b/src/projections/aea.cpp @@ -30,7 +30,7 @@ #define PJ_LIB__ #include "proj.h" #include -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" diff --git a/src/projections/aeqd.cpp b/src/projections/aeqd.cpp index f92ecd81..8566062d 100644 --- a/src/projections/aeqd.cpp +++ b/src/projections/aeqd.cpp @@ -29,7 +29,7 @@ #include "geodesic.h" #include "proj.h" #include -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" namespace { // anonymous namespace diff --git a/src/projections/airy.cpp b/src/projections/airy.cpp index 9421edc9..f7068061 100644 --- a/src/projections/airy.cpp +++ b/src/projections/airy.cpp @@ -29,7 +29,7 @@ #define PJ_LIB__ #include "proj.h" #include -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(airy, "Airy") "\n\tMisc Sph, no inv\n\tno_cut lat_b="; diff --git a/src/projections/aitoff.cpp b/src/projections/aitoff.cpp index 9388b75a..127841ff 100644 --- a/src/projections/aitoff.cpp +++ b/src/projections/aitoff.cpp @@ -34,7 +34,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" namespace { // anonymous namespace diff --git a/src/projections/august.cpp b/src/projections/august.cpp index f7c24e3a..3523034e 100644 --- a/src/projections/august.cpp +++ b/src/projections/august.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(august, "August Epicycloidal") "\n\tMisc Sph, no inv"; #define M 1.333333333333333 diff --git a/src/projections/bacon.cpp b/src/projections/bacon.cpp index 74337ff2..c713a989 100644 --- a/src/projections/bacon.cpp +++ b/src/projections/bacon.cpp @@ -5,7 +5,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" namespace { // anonymous namespace diff --git a/src/projections/bertin1953.cpp b/src/projections/bertin1953.cpp index 41301e7d..96de6d4b 100644 --- a/src/projections/bertin1953.cpp +++ b/src/projections/bertin1953.cpp @@ -16,7 +16,7 @@ #include "proj_internal.h" #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(bertin1953, "Bertin 1953") "\n\tMisc Sph no inv."; diff --git a/src/projections/bipc.cpp b/src/projections/bipc.cpp index d0b77092..5cfef11f 100644 --- a/src/projections/bipc.cpp +++ b/src/projections/bipc.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" PROJ_HEAD(bipc, "Bipolar conic of western hemisphere") "\n\tConic Sph"; diff --git a/src/projections/boggs.cpp b/src/projections/boggs.cpp index df5afbd2..5502d493 100644 --- a/src/projections/boggs.cpp +++ b/src/projections/boggs.cpp @@ -2,7 +2,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(boggs, "Boggs Eumorphic") "\n\tPCyl, no inv, Sph"; # define NITER 20 diff --git a/src/projections/bonne.cpp b/src/projections/bonne.cpp index 2004c6e9..0e9bae79 100644 --- a/src/projections/bonne.cpp +++ b/src/projections/bonne.cpp @@ -1,7 +1,7 @@ #define PJ_LIB__ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" diff --git a/src/projections/calcofi.cpp b/src/projections/calcofi.cpp index 2ca79553..e81843b4 100644 --- a/src/projections/calcofi.cpp +++ b/src/projections/calcofi.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_api.h" PROJ_HEAD(calcofi, diff --git a/src/projections/cass.cpp b/src/projections/cass.cpp index 7afa2bd8..ee050548 100644 --- a/src/projections/cass.cpp +++ b/src/projections/cass.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(cass, "Cassini") "\n\tCyl, Sph&Ell"; diff --git a/src/projections/cc.cpp b/src/projections/cc.cpp index 7ac886f0..559a4f1a 100644 --- a/src/projections/cc.cpp +++ b/src/projections/cc.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(cc, "Central Cylindrical") "\n\tCyl, Sph"; #define EPS10 1.e-10 diff --git a/src/projections/ccon.cpp b/src/projections/ccon.cpp index 4513a6f9..5f5128cf 100644 --- a/src/projections/ccon.cpp +++ b/src/projections/ccon.cpp @@ -23,7 +23,7 @@ #define PJ_LIB__ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" #define EPS10 1e-10 diff --git a/src/projections/cea.cpp b/src/projections/cea.cpp index 4abb5543..a1c9c8b5 100644 --- a/src/projections/cea.cpp +++ b/src/projections/cea.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" namespace { // anonymous namespace struct pj_opaque { diff --git a/src/projections/chamb.cpp b/src/projections/chamb.cpp index c62e35f1..33a38781 100644 --- a/src/projections/chamb.cpp +++ b/src/projections/chamb.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" typedef struct { double r, Az; } VECT; namespace { // anonymous namespace diff --git a/src/projections/collg.cpp b/src/projections/collg.cpp index 5f4de7c6..b22e1bf2 100644 --- a/src/projections/collg.cpp +++ b/src/projections/collg.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(collg, "Collignon") "\n\tPCyl, Sph"; #define FXC 1.12837916709551257390 diff --git a/src/projections/comill.cpp b/src/projections/comill.cpp index dd0ce5c0..3af19b42 100644 --- a/src/projections/comill.cpp +++ b/src/projections/comill.cpp @@ -11,7 +11,7 @@ Port to PROJ.4 by Bojan Savric, 4 April 2016 #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(comill, "Compact Miller") "\n\tCyl, Sph"; diff --git a/src/projections/crast.cpp b/src/projections/crast.cpp index 76846dbe..35272058 100644 --- a/src/projections/crast.cpp +++ b/src/projections/crast.cpp @@ -2,7 +2,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(crast, "Craster Parabolic (Putnins P4)") "\n\tPCyl, Sph"; diff --git a/src/projections/denoy.cpp b/src/projections/denoy.cpp index d10d8881..1560ad6b 100644 --- a/src/projections/denoy.cpp +++ b/src/projections/denoy.cpp @@ -2,7 +2,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(denoy, "Denoyer Semi-Elliptical") "\n\tPCyl, no inv, Sph"; diff --git a/src/projections/eck1.cpp b/src/projections/eck1.cpp index d8dbc2c5..3a19796e 100644 --- a/src/projections/eck1.cpp +++ b/src/projections/eck1.cpp @@ -2,7 +2,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(eck1, "Eckert I") "\n\tPCyl, Sph"; #define FC 0.92131773192356127802 diff --git a/src/projections/eck2.cpp b/src/projections/eck2.cpp index efedf8b7..f019fdab 100644 --- a/src/projections/eck2.cpp +++ b/src/projections/eck2.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(eck2, "Eckert II") "\n\tPCyl, Sph"; diff --git a/src/projections/eck3.cpp b/src/projections/eck3.cpp index 71163083..6777c765 100644 --- a/src/projections/eck3.cpp +++ b/src/projections/eck3.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(eck3, "Eckert III") "\n\tPCyl, Sph"; PROJ_HEAD(putp1, "Putnins P1") "\n\tPCyl, Sph"; diff --git a/src/projections/eck4.cpp b/src/projections/eck4.cpp index 64a1158f..7f8203b2 100644 --- a/src/projections/eck4.cpp +++ b/src/projections/eck4.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(eck4, "Eckert IV") "\n\tPCyl, Sph"; diff --git a/src/projections/eck5.cpp b/src/projections/eck5.cpp index ab207aab..40e9d3bb 100644 --- a/src/projections/eck5.cpp +++ b/src/projections/eck5.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(eck5, "Eckert V") "\n\tPCyl, Sph"; diff --git a/src/projections/eqc.cpp b/src/projections/eqc.cpp index f7a0eede..eb021eac 100644 --- a/src/projections/eqc.cpp +++ b/src/projections/eqc.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" namespace { // anonymous namespace struct pj_opaque { diff --git a/src/projections/eqdc.cpp b/src/projections/eqdc.cpp index 1aa037a6..d175d4a1 100644 --- a/src/projections/eqdc.cpp +++ b/src/projections/eqdc.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" namespace { // anonymous namespace diff --git a/src/projections/eqearth.cpp b/src/projections/eqearth.cpp index 96ea46ba..dc58eed9 100644 --- a/src/projections/eqearth.cpp +++ b/src/projections/eqearth.cpp @@ -17,7 +17,7 @@ Added ellipsoidal equations by Bojan Savric, 22 August 2018 #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(eqearth, "Equal Earth") "\n\tPCyl, Sph&Ell"; diff --git a/src/projections/etmerc.cpp b/src/projections/etmerc.cpp index 9b75c606..e75bc168 100644 --- a/src/projections/etmerc.cpp +++ b/src/projections/etmerc.cpp @@ -43,7 +43,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" diff --git a/src/projections/fahey.cpp b/src/projections/fahey.cpp index bcce7eef..ba8cb8f9 100644 --- a/src/projections/fahey.cpp +++ b/src/projections/fahey.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(fahey, "Fahey") "\n\tPcyl, Sph"; diff --git a/src/projections/fouc_s.cpp b/src/projections/fouc_s.cpp index 08db782e..e91f41c3 100644 --- a/src/projections/fouc_s.cpp +++ b/src/projections/fouc_s.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(fouc_s, "Foucaut Sinusoidal") "\n\tPCyl, Sph"; diff --git a/src/projections/gall.cpp b/src/projections/gall.cpp index d3eba43c..8f1ca1f8 100644 --- a/src/projections/gall.cpp +++ b/src/projections/gall.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(gall, "Gall (Gall Stereographic)") "\n\tCyl, Sph"; diff --git a/src/projections/geos.cpp b/src/projections/geos.cpp index 1e6c2d69..cdb0244a 100644 --- a/src/projections/geos.cpp +++ b/src/projections/geos.cpp @@ -33,7 +33,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" namespace { // anonymous namespace diff --git a/src/projections/gins8.cpp b/src/projections/gins8.cpp index a8539db4..6f499889 100644 --- a/src/projections/gins8.cpp +++ b/src/projections/gins8.cpp @@ -1,7 +1,7 @@ #define PJ_LIB__ #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(gins8, "Ginsburg VIII (TsNIIGAiK)") "\n\tPCyl, Sph, no inv"; diff --git a/src/projections/gn_sinu.cpp b/src/projections/gn_sinu.cpp index f301e05c..3a591669 100644 --- a/src/projections/gn_sinu.cpp +++ b/src/projections/gn_sinu.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(gn_sinu, "General Sinusoidal Series") "\n\tPCyl, Sph\n\tm= n="; PROJ_HEAD(sinu, "Sinusoidal (Sanson-Flamsteed)") "\n\tPCyl, Sph&Ell"; diff --git a/src/projections/gnom.cpp b/src/projections/gnom.cpp index 513d9b42..bf454ba9 100644 --- a/src/projections/gnom.cpp +++ b/src/projections/gnom.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" PROJ_HEAD(gnom, "Gnomonic") "\n\tAzi, Sph"; diff --git a/src/projections/goode.cpp b/src/projections/goode.cpp index 2717a424..802df90c 100644 --- a/src/projections/goode.cpp +++ b/src/projections/goode.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(goode, "Goode Homolosine") "\n\tPCyl, Sph"; diff --git a/src/projections/gstmerc.cpp b/src/projections/gstmerc.cpp index 69087228..735d39e5 100644 --- a/src/projections/gstmerc.cpp +++ b/src/projections/gstmerc.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(gstmerc, "Gauss-Schreiber Transverse Mercator (aka Gauss-Laborde Reunion)") "\n\tCyl, Sph&Ell\n\tlat_0= lon_0= k_0="; diff --git a/src/projections/hammer.cpp b/src/projections/hammer.cpp index 4c230a48..aa7d1ba9 100644 --- a/src/projections/hammer.cpp +++ b/src/projections/hammer.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(hammer, "Hammer & Eckert-Greifendorff") "\n\tMisc Sph, \n\tW= M="; diff --git a/src/projections/hatano.cpp b/src/projections/hatano.cpp index 33bea55b..b2ef6c6f 100644 --- a/src/projections/hatano.cpp +++ b/src/projections/hatano.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(hatano, "Hatano Asymmetrical Equal Area") "\n\tPCyl, Sph"; diff --git a/src/projections/healpix.cpp b/src/projections/healpix.cpp index 72dac71c..8e4846ed 100644 --- a/src/projections/healpix.cpp +++ b/src/projections/healpix.cpp @@ -35,7 +35,7 @@ #include "proj_internal.h" #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(healpix, "HEAPJ_LPix") "\n\tSph&Ell"; PROJ_HEAD(rhealpix, "rHEAPJ_LPix") "\n\tSph&Ell\n\tnorth_square= south_square="; diff --git a/src/projections/igh.cpp b/src/projections/igh.cpp index 1e1cdb01..a8efbb9d 100644 --- a/src/projections/igh.cpp +++ b/src/projections/igh.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(igh, "Interrupted Goode Homolosine") "\n\tPCyl, Sph"; diff --git a/src/projections/imw_p.cpp b/src/projections/imw_p.cpp index db82e660..723fcc48 100644 --- a/src/projections/imw_p.cpp +++ b/src/projections/imw_p.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(imw_p, "International Map of the World Polyconic") "\n\tMod. Polyconic, Ell\n\tlat_1= and lat_2= [lon_1=]"; diff --git a/src/projections/isea.cpp b/src/projections/isea.cpp index 3ce4b623..3a0a0a48 100644 --- a/src/projections/isea.cpp +++ b/src/projections/isea.cpp @@ -14,7 +14,7 @@ #include "proj_internal.h" #include "proj_math.h" #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #define DEG36 0.62831853071795864768 #define DEG72 1.25663706143591729537 diff --git a/src/projections/krovak.cpp b/src/projections/krovak.cpp index 6bd98f79..591f8dcc 100644 --- a/src/projections/krovak.cpp +++ b/src/projections/krovak.cpp @@ -81,7 +81,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(krovak, "Krovak") "\n\tPCyl, Ell"; diff --git a/src/projections/labrd.cpp b/src/projections/labrd.cpp index 77120fa4..330c105f 100644 --- a/src/projections/labrd.cpp +++ b/src/projections/labrd.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(labrd, "Laborde") "\n\tCyl, Sph\n\tSpecial for Madagascar"; #define EPS 1.e-10 diff --git a/src/projections/laea.cpp b/src/projections/laea.cpp index cfdd1326..e3c7248a 100644 --- a/src/projections/laea.cpp +++ b/src/projections/laea.cpp @@ -1,7 +1,7 @@ #define PJ_LIB__ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" PROJ_HEAD(laea, "Lambert Azimuthal Equal Area") "\n\tAzi, Sph&Ell"; diff --git a/src/projections/lagrng.cpp b/src/projections/lagrng.cpp index c62b409b..65686584 100644 --- a/src/projections/lagrng.cpp +++ b/src/projections/lagrng.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(lagrng, "Lagrange") "\n\tMisc Sph\n\tW="; diff --git a/src/projections/larr.cpp b/src/projections/larr.cpp index 4ece694d..bab1dbf4 100644 --- a/src/projections/larr.cpp +++ b/src/projections/larr.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(larr, "Larrivee") "\n\tMisc Sph, no inv"; diff --git a/src/projections/lask.cpp b/src/projections/lask.cpp index d13a94e2..c4c6734d 100644 --- a/src/projections/lask.cpp +++ b/src/projections/lask.cpp @@ -1,7 +1,7 @@ #define PJ_LIB__ #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(lask, "Laskowski") "\n\tMisc Sph, no inv"; diff --git a/src/projections/latlong.cpp b/src/projections/latlong.cpp index 4d22ea5b..f114504b 100644 --- a/src/projections/latlong.cpp +++ b/src/projections/latlong.cpp @@ -30,7 +30,7 @@ /* very loosely based upon DMA code by Bradford W. Drew */ #define PJ_LIB__ #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(lonlat, "Lat/long (Geodetic)") "\n\t"; PROJ_HEAD(latlon, "Lat/long (Geodetic alias)") "\n\t"; diff --git a/src/projections/lcc.cpp b/src/projections/lcc.cpp index 1b00732f..a1fe79a9 100644 --- a/src/projections/lcc.cpp +++ b/src/projections/lcc.cpp @@ -1,7 +1,7 @@ #define PJ_LIB__ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" PROJ_HEAD(lcc, "Lambert Conformal Conic") diff --git a/src/projections/lcca.cpp b/src/projections/lcca.cpp index e475dd6d..d4dc8641 100644 --- a/src/projections/lcca.cpp +++ b/src/projections/lcca.cpp @@ -51,7 +51,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(lcca, "Lambert Conformal Conic Alternative") "\n\tConic, Sph&Ell\n\tlat_0="; diff --git a/src/projections/loxim.cpp b/src/projections/loxim.cpp index 9c55cfce..2a780a9e 100644 --- a/src/projections/loxim.cpp +++ b/src/projections/loxim.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(loxim, "Loximuthal") "\n\tPCyl Sph"; diff --git a/src/projections/lsat.cpp b/src/projections/lsat.cpp index 95bf1813..5b7520d3 100644 --- a/src/projections/lsat.cpp +++ b/src/projections/lsat.cpp @@ -5,7 +5,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(lsat, "Space oblique for LANDSAT") "\n\tCyl, Sph&Ell\n\tlsat= path="; diff --git a/src/projections/mbt_fps.cpp b/src/projections/mbt_fps.cpp index 6edc4103..beff3314 100644 --- a/src/projections/mbt_fps.cpp +++ b/src/projections/mbt_fps.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(mbt_fps, "McBryde-Thomas Flat-Pole Sine (No. 2)") "\n\tCyl, Sph"; diff --git a/src/projections/mbtfpp.cpp b/src/projections/mbtfpp.cpp index f65b4ee2..ebd860ee 100644 --- a/src/projections/mbtfpp.cpp +++ b/src/projections/mbtfpp.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(mbtfpp, "McBride-Thomas Flat-Polar Parabolic") "\n\tCyl, Sph"; diff --git a/src/projections/mbtfpq.cpp b/src/projections/mbtfpq.cpp index 0ead16d7..ec49f9ce 100644 --- a/src/projections/mbtfpq.cpp +++ b/src/projections/mbtfpq.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(mbtfpq, "McBryde-Thomas Flat-Polar Quartic") "\n\tCyl, Sph"; diff --git a/src/projections/merc.cpp b/src/projections/merc.cpp index ba12fc8b..5b65de90 100644 --- a/src/projections/merc.cpp +++ b/src/projections/merc.cpp @@ -6,7 +6,7 @@ #include "proj_internal.h" #include "proj.h" #include "proj_math.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(merc, "Mercator") "\n\tCyl, Sph&Ell\n\tlat_ts="; PROJ_HEAD(webmerc, "Web Mercator / Pseudo Mercator") "\n\tCyl, Ell\n\t"; diff --git a/src/projections/mill.cpp b/src/projections/mill.cpp index 8171186a..5d4acd89 100644 --- a/src/projections/mill.cpp +++ b/src/projections/mill.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(mill, "Miller Cylindrical") "\n\tCyl, Sph"; diff --git a/src/projections/misrsom.cpp b/src/projections/misrsom.cpp index 7ba74843..c53f22a1 100644 --- a/src/projections/misrsom.cpp +++ b/src/projections/misrsom.cpp @@ -26,7 +26,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(misrsom, "Space oblique for MISR") "\n\tCyl, Sph&Ell\n\tpath="; diff --git a/src/projections/mod_ster.cpp b/src/projections/mod_ster.cpp index 6603ec60..83390178 100644 --- a/src/projections/mod_ster.cpp +++ b/src/projections/mod_ster.cpp @@ -2,7 +2,7 @@ #define PJ_LIB__ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" PROJ_HEAD(mil_os, "Miller Oblated Stereographic") "\n\tAzi(mod)"; diff --git a/src/projections/moll.cpp b/src/projections/moll.cpp index ec7df64d..03393b01 100644 --- a/src/projections/moll.cpp +++ b/src/projections/moll.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(moll, "Mollweide") "\n\tPCyl, Sph"; PROJ_HEAD(wag4, "Wagner IV") "\n\tPCyl, Sph"; diff --git a/src/projections/natearth.cpp b/src/projections/natearth.cpp index c1f1619c..d8e52c37 100644 --- a/src/projections/natearth.cpp +++ b/src/projections/natearth.cpp @@ -17,7 +17,7 @@ Port to PROJ.4 by Bernhard Jenny, 6 June 2011 #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(natearth, "Natural Earth") "\n\tPCyl, Sph"; diff --git a/src/projections/natearth2.cpp b/src/projections/natearth2.cpp index ca46fcfe..9849a723 100644 --- a/src/projections/natearth2.cpp +++ b/src/projections/natearth2.cpp @@ -10,7 +10,7 @@ Port to PROJ.4 by Bojan Savric, 4 April 2016 #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(natearth2, "Natural Earth 2") "\n\tPCyl, Sph"; diff --git a/src/projections/nell.cpp b/src/projections/nell.cpp index aac11ef2..b6e69dd6 100644 --- a/src/projections/nell.cpp +++ b/src/projections/nell.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(nell, "Nell") "\n\tPCyl, Sph"; diff --git a/src/projections/nell_h.cpp b/src/projections/nell_h.cpp index db679dff..be28b917 100644 --- a/src/projections/nell_h.cpp +++ b/src/projections/nell_h.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(nell_h, "Nell-Hammer") "\n\tPCyl, Sph"; diff --git a/src/projections/nicol.cpp b/src/projections/nicol.cpp index 3805d33d..c4bee261 100644 --- a/src/projections/nicol.cpp +++ b/src/projections/nicol.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(nicol, "Nicolosi Globular") "\n\tMisc Sph, no inv"; diff --git a/src/projections/nsper.cpp b/src/projections/nsper.cpp index 0f646d00..a0bb5686 100644 --- a/src/projections/nsper.cpp +++ b/src/projections/nsper.cpp @@ -1,7 +1,7 @@ #define PJ_LIB__ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" namespace { // anonymous namespace diff --git a/src/projections/nzmg.cpp b/src/projections/nzmg.cpp index a5eb07e2..1c2d9fb7 100644 --- a/src/projections/nzmg.cpp +++ b/src/projections/nzmg.cpp @@ -30,7 +30,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(nzmg, "New Zealand Map Grid") "\n\tfixed Earth"; diff --git a/src/projections/ob_tran.cpp b/src/projections/ob_tran.cpp index 85f34f24..1726b622 100644 --- a/src/projections/ob_tran.cpp +++ b/src/projections/ob_tran.cpp @@ -5,7 +5,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" namespace { // anonymous namespace struct pj_opaque { diff --git a/src/projections/ocea.cpp b/src/projections/ocea.cpp index 23d0e164..75aa6666 100644 --- a/src/projections/ocea.cpp +++ b/src/projections/ocea.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(ocea, "Oblique Cylindrical Equal Area") "\n\tCyl, Sph" "lonc= alpha= or\n\tlat_1= lat_2= lon_1= lon_2="; diff --git a/src/projections/oea.cpp b/src/projections/oea.cpp index 78fa29be..f2fc1053 100644 --- a/src/projections/oea.cpp +++ b/src/projections/oea.cpp @@ -1,7 +1,7 @@ #define PJ_LIB__ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" PROJ_HEAD(oea, "Oblated Equal Area") "\n\tMisc Sph\n\tn= m= theta="; diff --git a/src/projections/omerc.cpp b/src/projections/omerc.cpp index 255c38ae..e9b7b4a0 100644 --- a/src/projections/omerc.cpp +++ b/src/projections/omerc.cpp @@ -27,7 +27,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(omerc, "Oblique Mercator") "\n\tCyl, Sph&Ell no_rot\n\t" diff --git a/src/projections/ortho.cpp b/src/projections/ortho.cpp index ef29e62e..d4300bd5 100644 --- a/src/projections/ortho.cpp +++ b/src/projections/ortho.cpp @@ -3,7 +3,7 @@ #include "proj.h" #include "proj_internal.h" #include "proj_math.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(ortho, "Orthographic") "\n\tAzi, Sph"; diff --git a/src/projections/patterson.cpp b/src/projections/patterson.cpp index 26abfba6..7f0ea3a9 100644 --- a/src/projections/patterson.cpp +++ b/src/projections/patterson.cpp @@ -43,7 +43,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(patterson, "Patterson Cylindrical") "\n\tCyl"; diff --git a/src/projections/poly.cpp b/src/projections/poly.cpp index 6a7ff513..b4b61b00 100644 --- a/src/projections/poly.cpp +++ b/src/projections/poly.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(poly, "Polyconic (American)") "\n\tConic, Sph&Ell"; diff --git a/src/projections/putp2.cpp b/src/projections/putp2.cpp index 006cb813..d5b3b9f5 100644 --- a/src/projections/putp2.cpp +++ b/src/projections/putp2.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(putp2, "Putnins P2") "\n\tPCyl, Sph"; diff --git a/src/projections/putp3.cpp b/src/projections/putp3.cpp index ca356bd0..bc4a02e4 100644 --- a/src/projections/putp3.cpp +++ b/src/projections/putp3.cpp @@ -2,7 +2,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" namespace { // anonymous namespace struct pj_opaque { diff --git a/src/projections/putp4p.cpp b/src/projections/putp4p.cpp index 5ec465d2..462dae81 100644 --- a/src/projections/putp4p.cpp +++ b/src/projections/putp4p.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" namespace { // anonymous namespace struct pj_opaque { diff --git a/src/projections/putp5.cpp b/src/projections/putp5.cpp index 2baa3914..62cb2ea9 100644 --- a/src/projections/putp5.cpp +++ b/src/projections/putp5.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" namespace { // anonymous namespace struct pj_opaque { diff --git a/src/projections/putp6.cpp b/src/projections/putp6.cpp index 134bbc8f..4bae7ae6 100644 --- a/src/projections/putp6.cpp +++ b/src/projections/putp6.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" namespace { // anonymous namespace struct pj_opaque { diff --git a/src/projections/qsc.cpp b/src/projections/qsc.cpp index ab287de8..409afb38 100644 --- a/src/projections/qsc.cpp +++ b/src/projections/qsc.cpp @@ -44,7 +44,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" /* The six cube faces. */ namespace { // anonymous namespace diff --git a/src/projections/robin.cpp b/src/projections/robin.cpp index d24cd7fa..8f142aad 100644 --- a/src/projections/robin.cpp +++ b/src/projections/robin.cpp @@ -2,7 +2,7 @@ #include "proj_math.h" #include "proj_internal.h" #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(robin, "Robinson") "\n\tPCyl, Sph"; diff --git a/src/projections/rouss.cpp b/src/projections/rouss.cpp index 2ac31855..f58277b8 100644 --- a/src/projections/rouss.cpp +++ b/src/projections/rouss.cpp @@ -29,7 +29,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" namespace { // anonymous namespace struct pj_opaque { diff --git a/src/projections/rpoly.cpp b/src/projections/rpoly.cpp index e21e27ac..6e883ab2 100644 --- a/src/projections/rpoly.cpp +++ b/src/projections/rpoly.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" namespace { // anonymous namespace struct pj_opaque { diff --git a/src/projections/sch.cpp b/src/projections/sch.cpp index 418ebb5e..f4c66688 100644 --- a/src/projections/sch.cpp +++ b/src/projections/sch.cpp @@ -36,7 +36,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "geocent.h" namespace { // anonymous namespace diff --git a/src/projections/sconics.cpp b/src/projections/sconics.cpp index 4e796136..7bdd2603 100644 --- a/src/projections/sconics.cpp +++ b/src/projections/sconics.cpp @@ -1,7 +1,7 @@ #define PJ_LIB__ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" diff --git a/src/projections/somerc.cpp b/src/projections/somerc.cpp index 6c554e7f..ead9090f 100644 --- a/src/projections/somerc.cpp +++ b/src/projections/somerc.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(somerc, "Swiss. Obl. Mercator") "\n\tCyl, Ell\n\tFor CH1903"; diff --git a/src/projections/stere.cpp b/src/projections/stere.cpp index a26c27c2..9b24a596 100644 --- a/src/projections/stere.cpp +++ b/src/projections/stere.cpp @@ -1,7 +1,7 @@ #define PJ_LIB__ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" PROJ_HEAD(stere, "Stereographic") "\n\tAzi, Sph&Ell\n\tlat_ts="; diff --git a/src/projections/sterea.cpp b/src/projections/sterea.cpp index 60431a18..b6ebc7b4 100644 --- a/src/projections/sterea.cpp +++ b/src/projections/sterea.cpp @@ -26,7 +26,7 @@ #define PJ_LIB__ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "proj_math.h" diff --git a/src/projections/sts.cpp b/src/projections/sts.cpp index bdb1fd72..27dc3eb8 100644 --- a/src/projections/sts.cpp +++ b/src/projections/sts.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(kav5, "Kavraisky V") "\n\tPCyl, Sph"; PROJ_HEAD(qua_aut, "Quartic Authalic") "\n\tPCyl, Sph"; diff --git a/src/projections/tcc.cpp b/src/projections/tcc.cpp index ebe21015..cfac9974 100644 --- a/src/projections/tcc.cpp +++ b/src/projections/tcc.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(tcc, "Transverse Central Cylindrical") "\n\tCyl, Sph, no inv"; diff --git a/src/projections/tcea.cpp b/src/projections/tcea.cpp index 6c7b44f5..d780718d 100644 --- a/src/projections/tcea.cpp +++ b/src/projections/tcea.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(tcea, "Transverse Cylindrical Equal Area") "\n\tCyl, Sph"; diff --git a/src/projections/times.cpp b/src/projections/times.cpp index a7ff1b93..4a0d0f59 100644 --- a/src/projections/times.cpp +++ b/src/projections/times.cpp @@ -34,7 +34,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(times, "Times") "\n\tCyl, Sph"; diff --git a/src/projections/tmerc.cpp b/src/projections/tmerc.cpp index 29d88d6e..d1938116 100644 --- a/src/projections/tmerc.cpp +++ b/src/projections/tmerc.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(tmerc, "Transverse Mercator") "\n\tCyl, Sph&Ell"; diff --git a/src/projections/tobmerc.cpp b/src/projections/tobmerc.cpp index 1889b484..95960097 100644 --- a/src/projections/tobmerc.cpp +++ b/src/projections/tobmerc.cpp @@ -6,7 +6,7 @@ #include "proj_internal.h" #include "proj.h" #include "proj_math.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(tobmerc, "Tobler-Mercator") "\n\tCyl, Sph"; diff --git a/src/projections/tpeqd.cpp b/src/projections/tpeqd.cpp index e25f8ed3..20921de4 100644 --- a/src/projections/tpeqd.cpp +++ b/src/projections/tpeqd.cpp @@ -2,7 +2,7 @@ #include #include "proj.h" #include "proj_math.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(tpeqd, "Two Point Equidistant") diff --git a/src/projections/urm5.cpp b/src/projections/urm5.cpp index 576eac76..a93293c0 100644 --- a/src/projections/urm5.cpp +++ b/src/projections/urm5.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(urm5, "Urmaev V") "\n\tPCyl, Sph, no inv\n\tn= q= alpha="; diff --git a/src/projections/urmfps.cpp b/src/projections/urmfps.cpp index 2aa6432c..3a51798b 100644 --- a/src/projections/urmfps.cpp +++ b/src/projections/urmfps.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(urmfps, "Urmaev Flat-Polar Sinusoidal") "\n\tPCyl, Sph\n\tn="; PROJ_HEAD(wag1, "Wagner I (Kavraisky VI)") "\n\tPCyl, Sph"; diff --git a/src/projections/vandg.cpp b/src/projections/vandg.cpp index 91811b46..89620356 100644 --- a/src/projections/vandg.cpp +++ b/src/projections/vandg.cpp @@ -1,6 +1,6 @@ #define PJ_LIB__ #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(vandg, "van der Grinten (I)") "\n\tMisc Sph"; diff --git a/src/projections/vandg2.cpp b/src/projections/vandg2.cpp index a1336029..de63b085 100644 --- a/src/projections/vandg2.cpp +++ b/src/projections/vandg2.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" namespace { // anonymous namespace struct pj_opaque { diff --git a/src/projections/vandg4.cpp b/src/projections/vandg4.cpp index 15171b75..8511431d 100644 --- a/src/projections/vandg4.cpp +++ b/src/projections/vandg4.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(vandg4, "van der Grinten IV") "\n\tMisc Sph, no inv"; diff --git a/src/projections/wag2.cpp b/src/projections/wag2.cpp index 3b62593a..e04cc648 100644 --- a/src/projections/wag2.cpp +++ b/src/projections/wag2.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(wag2, "Wagner II") "\n\tPCyl, Sph"; diff --git a/src/projections/wag3.cpp b/src/projections/wag3.cpp index c9d5470a..ed695ffd 100644 --- a/src/projections/wag3.cpp +++ b/src/projections/wag3.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(wag3, "Wagner III") "\n\tPCyl, Sph\n\tlat_ts="; diff --git a/src/projections/wag7.cpp b/src/projections/wag7.cpp index eada904b..45b70ee2 100644 --- a/src/projections/wag7.cpp +++ b/src/projections/wag7.cpp @@ -3,7 +3,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(wag7, "Wagner VII") "\n\tMisc Sph, no inv"; diff --git a/src/projections/wink1.cpp b/src/projections/wink1.cpp index 28eee9cf..75abbffc 100644 --- a/src/projections/wink1.cpp +++ b/src/projections/wink1.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(wink1, "Winkel I") "\n\tPCyl, Sph\n\tlat_ts="; diff --git a/src/projections/wink2.cpp b/src/projections/wink2.cpp index 9e7ec411..6957bde1 100644 --- a/src/projections/wink2.cpp +++ b/src/projections/wink2.cpp @@ -4,7 +4,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(wink2, "Winkel II") "\n\tPCyl, Sph, no inv\n\tlat_1="; diff --git a/src/projects.h b/src/projects.h deleted file mode 100644 index 81b27875..00000000 --- a/src/projects.h +++ /dev/null @@ -1,829 +0,0 @@ -/****************************************************************************** - * Project: PROJ.4 - * Purpose: Primary (private) include file for PROJ.4 library. - * Author: Gerald Evenden - * - ****************************************************************************** - * Copyright (c) 2000, Frank Warmerdam - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - *****************************************************************************/ - -/* General projections header file */ -#ifndef PROJECTS_H -#define PROJECTS_H - -#ifndef __cplusplus -#error "projects.h can only be included from a C++ file" -#endif - -#ifndef ACCEPT_USE_OF_DEPRECATED_PROJ_API_H -#define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H -#endif - -#ifdef _MSC_VER -# ifndef _CRT_SECURE_NO_DEPRECATE -# define _CRT_SECURE_NO_DEPRECATE -# endif -# ifndef _CRT_NONSTDC_NO_DEPRECATE -# define _CRT_NONSTDC_NO_DEPRECATE -# endif -/* enable predefined math constants M_* for MS Visual Studio workaround */ -# ifndef _USE_MATH_DEFINES -# define _USE_MATH_DEFINES -# endif -#endif - -#ifdef PROJ_RENAME_SYMBOLS -#include "proj_symbol_rename.h" -#endif - -/* standard inclusions */ -#include -#include -#include -#include -#include - -#include "proj/common.hpp" -#include "proj/coordinateoperation.hpp" -#include -#include - -#ifndef PROJ_DLL -#ifdef PROJ_MSVC_DLL_EXPORT -#define PROJ_DLL __declspec(dllexport) -#elif defined(PROJ_MSVC_DLL_IMPORT) -#define PROJ_DLL __declspec(dllimport) -#elif defined(__GNUC__) -#define PROJ_DLL __attribute__ ((visibility("default"))) -#else -#define PROJ_DLL -#endif -#endif - -#define C_NAMESPACE extern "C" -#define C_NAMESPACE_VAR extern "C" - -#ifndef NULL -# define NULL 0 -#endif - -#ifndef FALSE -# define FALSE 0 -#endif - -#ifndef TRUE -# define TRUE 1 -#endif - -#ifndef MAX -# define MIN(a,b) ((ab) ? a : b) -#endif - -#ifndef ABS -# define ABS(x) ((x<0) ? (-1*(x)) : x) -#endif - -#if INT_MAX == 2147483647 -typedef int pj_int32; -#elif LONG_MAX == 2147483647 -typedef long pj_int32; -#else -#warning It seems no 32-bit integer type is available -#endif - -/* maximum path/filename */ -#ifndef MAX_PATH_FILENAME -#define MAX_PATH_FILENAME 1024 -#endif - -/* If we still haven't got M_PI*, we rely on our own defines. - * For example, this is necessary when compiling with gcc and - * the -ansi flag. - */ -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#define M_PI_2 1.57079632679489661923 -#define M_PI_4 0.78539816339744830962 -#define M_2_PI 0.63661977236758134308 -#endif - -/* M_SQRT2 might be missing */ -#ifndef M_SQRT2 -#define M_SQRT2 1.41421356237309504880 -#endif - -/* some more useful math constants and aliases */ -#define M_FORTPI M_PI_4 /* pi/4 */ -#define M_HALFPI M_PI_2 /* pi/2 */ -#define M_PI_HALFPI 4.71238898038468985769 /* 1.5*pi */ -#define M_TWOPI 6.28318530717958647693 /* 2*pi */ -#define M_TWO_D_PI M_2_PI /* 2/pi */ -#define M_TWOPI_HALFPI 7.85398163397448309616 /* 2.5*pi */ - - -/* maximum tag id length for +init and default files */ -#ifndef ID_TAG_MAX -#define ID_TAG_MAX 50 -#endif - -/* Use WIN32 as a standard windows 32 bit declaration */ -#if defined(_WIN32) && !defined(WIN32) -# define WIN32 -#endif - -#if defined(_WINDOWS) && !defined(WIN32) -# define WIN32 -#endif - -/* directory delimiter for DOS support */ -#ifdef WIN32 -#define DIR_CHAR '\\' -#else -#define DIR_CHAR '/' -#endif - -typedef struct { double r, i; } COMPLEX; - -/* Forward declarations and typedefs for stuff needed inside the PJ object */ -struct PJconsts; - -union PJ_COORD; -struct geod_geodesic; -struct ARG_list; -struct PJ_REGION_S; -typedef struct PJ_REGION_S PJ_Region; -typedef struct ARG_list paralist; /* parameter list */ -#ifndef PROJ_INTERNAL_H -enum pj_io_units { - PJ_IO_UNITS_WHATEVER = 0, /* Doesn't matter (or depends on pipeline neighbours) */ - PJ_IO_UNITS_CLASSIC = 1, /* Scaled meters (right), projected system */ - PJ_IO_UNITS_PROJECTED = 2, /* Meters, projected system */ - PJ_IO_UNITS_CARTESIAN = 3, /* Meters, 3D cartesian system */ - PJ_IO_UNITS_ANGULAR = 4 /* Radians */ -}; -#endif -#ifndef PROJ_H -typedef struct PJconsts PJ; /* the PJ object herself */ -typedef union PJ_COORD PJ_COORD; -#endif - -struct PJ_REGION_S { - double ll_long; /* lower left corner coordinates (radians) */ - double ll_lat; - double ur_long; /* upper right corner coordinates (radians) */ - double ur_lat; -}; - -struct PJ_AREA { - int bbox_set; - double west_lon_degree; - double south_lat_degree; - double east_lon_degree; - double north_lat_degree; -}; - -struct projCtx_t; -typedef struct projCtx_t projCtx_t; - -/***************************************************************************** - - Some function types that are especially useful when working with PJs - -****************************************************************************** - -PJ_CONSTRUCTOR: - - A function taking a pointer-to-PJ as arg, and returning a pointer-to-PJ. - Historically called twice: First with a 0 argument, to allocate memory, - second with the first return value as argument, for actual setup. - -PJ_DESTRUCTOR: - - A function taking a pointer-to-PJ and an integer as args, then first - handling the deallocation of the PJ, afterwards handing the integer over - to the error reporting subsystem, and finally returning a null pointer in - support of the "return free (P)" (aka "get the hell out of here") idiom. - -PJ_OPERATOR: - - A function taking a PJ_COORD and a pointer-to-PJ as args, applying the - PJ to the PJ_COORD, and returning the resulting PJ_COORD. - -*****************************************************************************/ -typedef PJ *(* PJ_CONSTRUCTOR) (PJ *); -typedef PJ *(* PJ_DESTRUCTOR) (PJ *, int); -typedef PJ_COORD (* PJ_OPERATOR) (PJ_COORD, PJ *); -/****************************************************************************/ - - -/* datum_type values */ -#define PJD_UNKNOWN 0 -#define PJD_3PARAM 1 -#define PJD_7PARAM 2 -#define PJD_GRIDSHIFT 3 -#define PJD_WGS84 4 /* WGS84 (or anything considered equivalent) */ - - -/* base projection data structure */ -struct PJconsts { - - /************************************************************************************* - - G E N E R A L P A R A M E T E R S T R U C T - - ************************************************************************************** - - TODO: Need some description here - especially about the thread context... - This is the struct behind the PJ typedef - - **************************************************************************************/ - - projCtx_t *ctx = nullptr; - const char *descr = nullptr; /* From pj_list.h or individual PJ_*.c file */ - paralist *params = nullptr; /* Parameter list */ - char *def_full = nullptr; /* Full textual definition (usually 0 - set by proj_pj_info) */ - char *def_size = nullptr; /* Shape and size parameters extracted from params */ - char *def_shape = nullptr; - char *def_spherification = nullptr; - char *def_ellps = nullptr; - - struct geod_geodesic *geod = nullptr; /* For geodesic computations */ - void *opaque = nullptr; /* Projection specific parameters, Defined in PJ_*.c */ - int inverted = 0; /* Tell high level API functions to swap inv/fwd */ - - - /************************************************************************************* - - F U N C T I O N P O I N T E R S - - ************************************************************************************** - - For projection xxx, these are pointers to functions in the corresponding - PJ_xxx.c file. - - pj_init() delegates the setup of these to pj_projection_specific_setup_xxx(), - a name which is currently hidden behind the magic curtain of the PROJECTION - macro. - - **************************************************************************************/ - - - PJ_XY (*fwd)(PJ_LP, PJ *) = nullptr; - PJ_LP (*inv)(PJ_XY, PJ *) = nullptr; - PJ_XYZ (*fwd3d)(PJ_LPZ, PJ *) = nullptr; - PJ_LPZ (*inv3d)(PJ_XYZ, PJ *) = nullptr; - PJ_OPERATOR fwd4d = nullptr; - PJ_OPERATOR inv4d = nullptr; - - PJ_DESTRUCTOR destructor = nullptr; - - - /************************************************************************************* - - E L L I P S O I D P A R A M E T E R S - - ************************************************************************************** - - Despite YAGNI, we add a large number of ellipsoidal shape parameters, which - are not yet set up in pj_init. They are, however, inexpensive to compute, - compared to the overall time taken for setting up the complex PJ object - (cf. e.g. https://en.wikipedia.org/wiki/Angular_eccentricity). - - But during single point projections it will often be a useful thing to have - these readily available without having to recompute at every pj_fwd / pj_inv - call. - - With this wide selection, we should be ready for quite a number of geodetic - algorithms, without having to incur further ABI breakage. - - **************************************************************************************/ - - /* The linear parameters */ - - double a = 0.0; /* semimajor axis (radius if eccentricity==0) */ - double b = 0.0; /* semiminor axis */ - double ra = 0.0; /* 1/a */ - double rb = 0.0; /* 1/b */ - - /* The eccentricities */ - - double alpha = 0.0; /* angular eccentricity */ - double e = 0.0; /* first eccentricity */ - double es = 0.0; /* first eccentricity squared */ - double e2 = 0.0; /* second eccentricity */ - double e2s = 0.0; /* second eccentricity squared */ - double e3 = 0.0; /* third eccentricity */ - double e3s = 0.0; /* third eccentricity squared */ - double one_es = 0.0; /* 1 - e^2 */ - double rone_es = 0.0; /* 1/one_es */ - - - /* The flattenings */ - double f = 0.0; /* first flattening */ - double f2 = 0.0; /* second flattening */ - double n = 0.0; /* third flattening */ - double rf = 0.0; /* 1/f */ - double rf2 = 0.0; /* 1/f2 */ - double rn = 0.0; /* 1/n */ - - /* This one's for GRS80 */ - double J = 0.0; /* "Dynamic form factor" */ - - double es_orig = 0.0; /* es and a before any +proj related adjustment */ - double a_orig = 0.0; - - - /************************************************************************************* - - C O O R D I N A T E H A N D L I N G - - **************************************************************************************/ - - int over = 0; /* Over-range flag */ - int geoc = 0; /* Geocentric latitude flag */ - int is_latlong = 0; /* proj=latlong ... not really a projection at all */ - int is_geocent = 0; /* proj=geocent ... not really a projection at all */ - int is_pipeline = 0; /* 1 if PJ represents a pipeline */ - int need_ellps = 0; /* 0 for operations that are purely cartesian */ - int skip_fwd_prepare = 0; - int skip_fwd_finalize = 0; - int skip_inv_prepare = 0; - int skip_inv_finalize = 0; - - enum pj_io_units left = PJ_IO_UNITS_WHATEVER; /* Flags for input/output coordinate types */ - enum pj_io_units right = PJ_IO_UNITS_WHATEVER; - - /* These PJs are used for implementing cs2cs style coordinate handling in the 4D API */ - PJ *axisswap = nullptr; - PJ *cart = nullptr; - PJ *cart_wgs84 = nullptr; - PJ *helmert = nullptr; - PJ *hgridshift = nullptr; - PJ *vgridshift = nullptr; - - - /************************************************************************************* - - C A R T O G R A P H I C O F F S E T S - - **************************************************************************************/ - - double lam0 = 0.0; /* central meridian */ - double phi0 = 0.0; /* central parallel */ - double x0 = 0.0; /* false easting */ - double y0 = 0.0; /* false northing */ - double z0 = 0.0; /* height origin */ - double t0 = 0.0; /* time origin */ - - - /************************************************************************************* - - S C A L I N G - - **************************************************************************************/ - - double k0 = 0.0; /* General scaling factor - e.g. the 0.9996 of UTM */ - double to_meter = 0.0, fr_meter = 0.0; /* Plane coordinate scaling. Internal unit [m] */ - double vto_meter = 0.0, vfr_meter = 0.0; /* Vertical scaling. Internal unit [m] */ - - - /************************************************************************************* - - D A T U M S A N D H E I G H T S Y S T E M S - - ************************************************************************************** - - It may be possible, and meaningful, to move the list parts of this up to the - PJ_CONTEXT level. - - **************************************************************************************/ - - int datum_type = PJD_UNKNOWN; /* PJD_UNKNOWN/3PARAM/7PARAM/GRIDSHIFT/WGS84 */ - double datum_params[7] = {0,0,0,0,0,0,0}; /* Parameters for 3PARAM and 7PARAM */ - struct _pj_gi **gridlist = nullptr; /* TODO: Description needed */ - int gridlist_count = 0; - - int has_geoid_vgrids = 0; /* TODO: Description needed */ - struct _pj_gi **vgridlist_geoid = nullptr; /* TODO: Description needed */ - int vgridlist_geoid_count = 0; - - double from_greenwich = 0.0; /* prime meridian offset (in radians) */ - double long_wrap_center = 0.0; /* 0.0 for -180 to 180, actually in radians*/ - int is_long_wrap_set = 0; - char axis[4] = {0,0,0,0}; /* Axis order, pj_transform/pj_adjust_axis */ - - /* New Datum Shift Grid Catalogs */ - char *catalog_name = nullptr; - struct _PJ_GridCatalog *catalog = nullptr; - - double datum_date = 0.0; /* TODO: Description needed */ - - struct _pj_gi *last_before_grid = nullptr; /* TODO: Description needed */ - PJ_Region last_before_region = {0,0,0,0}; /* TODO: Description needed */ - double last_before_date = 0.0; /* TODO: Description needed */ - - struct _pj_gi *last_after_grid = nullptr; /* TODO: Description needed */ - PJ_Region last_after_region = {0,0,0,0}; /* TODO: Description needed */ - double last_after_date = 0.0; /* TODO: Description needed */ - - /************************************************************************************* - ISO-19111 interface - **************************************************************************************/ - - NS_PROJ::common::IdentifiedObjectPtr iso_obj{}; - - // cached results - mutable std::string lastWKT{}; - mutable std::string lastPROJString{}; - mutable bool gridsNeededAsked = false; - mutable std::vector gridsNeeded{}; - - /************************************************************************************* - - E N D O F G E N E R A L P A R A M E T E R S T R U C T - - **************************************************************************************/ - - PJconsts(); - PJconsts(const PJconsts &) = delete; - PJconsts &operator=(const PJconsts &) = delete; -}; - - - - -/* Parameter list (a copy of the +proj=... etc. parameters) */ -struct ARG_list { - paralist *next; - char used; -#if defined(__GNUC__) && __GNUC__ >= 8 - char param[]; /* variable-length member */ - /* Safer to use [] for gcc 8. See https://github.com/OSGeo/proj.4/pull/1087 */ - /* and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86914 */ -#else - char param[1]; /* variable-length member */ -#endif -}; - - -typedef union { double f; int i; char *s; } PROJVALUE; - - -struct PJ_DATUMS { - const char *id; /* datum keyword */ - const char *defn; /* ie. "to_wgs84=..." */ - const char *ellipse_id; /* ie from ellipse table */ - const char *comments; /* EPSG code, etc */ -}; - - -struct DERIVS { - double x_l, x_p; /* derivatives of x for lambda-phi */ - double y_l, y_p; /* derivatives of y for lambda-phi */ -}; - -struct FACTORS { - struct DERIVS der; - double h, k; /* meridional, parallel scales */ - double omega, thetap; /* angular distortion, theta prime */ - double conv; /* convergence */ - double s; /* areal scale factor */ - double a, b; /* max-min scale error */ - int code; /* always 0 */ -}; - -/* library errors */ -#define PJD_ERR_NO_ARGS -1 -#define PJD_ERR_NO_OPTION_IN_INIT_FILE -2 -#define PJD_ERR_NO_COLON_IN_INIT_STRING -3 -#define PJD_ERR_PROJ_NOT_NAMED -4 -#define PJD_ERR_UNKNOWN_PROJECTION_ID -5 -#define PJD_ERR_ECCENTRICITY_IS_ONE -6 -#define PJD_ERR_UNKNOWN_UNIT_ID -7 -#define PJD_ERR_INVALID_BOOLEAN_PARAM -8 -#define PJD_ERR_UNKNOWN_ELLP_PARAM -9 -#define PJD_ERR_REV_FLATTENING_IS_ZERO -10 -#define PJD_ERR_REF_RAD_LARGER_THAN_90 -11 -#define PJD_ERR_ES_LESS_THAN_ZERO -12 -#define PJD_ERR_MAJOR_AXIS_NOT_GIVEN -13 -#define PJD_ERR_LAT_OR_LON_EXCEED_LIMIT -14 -#define PJD_ERR_INVALID_X_OR_Y -15 -#define PJD_ERR_WRONG_FORMAT_DMS_VALUE -16 -#define PJD_ERR_NON_CONV_INV_MERI_DIST -17 -#define PJD_ERR_NON_CON_INV_PHI2 -18 -#define PJD_ERR_ACOS_ASIN_ARG_TOO_LARGE -19 -#define PJD_ERR_TOLERANCE_CONDITION -20 -#define PJD_ERR_CONIC_LAT_EQUAL -21 -#define PJD_ERR_LAT_LARGER_THAN_90 -22 -#define PJD_ERR_LAT1_IS_ZERO -23 -#define PJD_ERR_LAT_TS_LARGER_THAN_90 -24 -#define PJD_ERR_CONTROL_POINT_NO_DIST -25 -#define PJD_ERR_NO_ROTATION_PROJ -26 -#define PJD_ERR_W_OR_M_ZERO_OR_LESS -27 -#define PJD_ERR_LSAT_NOT_IN_RANGE -28 -#define PJD_ERR_PATH_NOT_IN_RANGE -29 -#define PJD_ERR_H_LESS_THAN_ZERO -30 -#define PJD_ERR_K_LESS_THAN_ZERO -31 -#define PJD_ERR_LAT_1_OR_2_ZERO_OR_90 -32 -#define PJD_ERR_LAT_0_OR_ALPHA_EQ_90 -33 -#define PJD_ERR_ELLIPSOID_USE_REQUIRED -34 -#define PJD_ERR_INVALID_UTM_ZONE -35 -#define PJD_ERR_TCHEBY_VAL_OUT_OF_RANGE -36 -#define PJD_ERR_FAILED_TO_FIND_PROJ -37 -#define PJD_ERR_FAILED_TO_LOAD_GRID -38 -#define PJD_ERR_INVALID_M_OR_N -39 -#define PJD_ERR_N_OUT_OF_RANGE -40 -#define PJD_ERR_LAT_1_2_UNSPECIFIED -41 -#define PJD_ERR_ABS_LAT1_EQ_ABS_LAT2 -42 -#define PJD_ERR_LAT_0_HALF_PI_FROM_MEAN -43 -#define PJD_ERR_UNPARSEABLE_CS_DEF -44 -#define PJD_ERR_GEOCENTRIC -45 -#define PJD_ERR_UNKNOWN_PRIME_MERIDIAN -46 -#define PJD_ERR_AXIS -47 -#define PJD_ERR_GRID_AREA -48 -#define PJD_ERR_INVALID_SWEEP_AXIS -49 -#define PJD_ERR_MALFORMED_PIPELINE -50 -#define PJD_ERR_UNIT_FACTOR_LESS_THAN_0 -51 -#define PJD_ERR_INVALID_SCALE -52 -#define PJD_ERR_NON_CONVERGENT -53 -#define PJD_ERR_MISSING_ARGS -54 -#define PJD_ERR_LAT_0_IS_ZERO -55 -#define PJD_ERR_ELLIPSOIDAL_UNSUPPORTED -56 -#define PJD_ERR_TOO_MANY_INITS -57 -#define PJD_ERR_INVALID_ARG -58 -#define PJD_ERR_INCONSISTENT_UNIT -59 -/* NOTE: Remember to update pj_strerrno.c and transient_error in */ -/* pj_transform.c when adding new value */ - -struct projFileAPI_t; - -struct projCppContext; - -/* proj thread context */ -struct projCtx_t { - int last_errno; - int debug_level; - void (*logger)(void *, int, const char *); - void *app_data; - struct projFileAPI_t *fileapi; - struct projCppContext* cpp_context; /* internal context for C++ code */ - int use_proj4_init_rules; /* -1 = unknown, 0 = no, 1 = yes */ - int epsg_file_exists; /* -1 = unknown, 0 = no, 1 = yes */ -}; - -/* classic public API */ -#include "proj_api.h" - - -/* Generate pj_list external or make list from include file */ -#ifndef PJ_DATUMS__ -C_NAMESPACE_VAR struct PJ_DATUMS pj_datums[]; -#endif - - - - - -#ifdef PJ_LIB__ -#define PROJ_HEAD(name, desc) static const char des_##name [] = desc - -#define OPERATION(name, NEED_ELPJ_LPS) \ - \ -pj_projection_specific_setup_##name (PJ *P); \ -C_NAMESPACE PJ *pj_##name (PJ *P); \ - \ -C_NAMESPACE_VAR const char * const pj_s_##name = des_##name; \ - \ -C_NAMESPACE PJ *pj_##name (PJ *P) { \ - if (P) \ - return pj_projection_specific_setup_##name (P); \ - P = pj_new(); \ - if (nullptr==P) \ - return nullptr; \ - P->descr = des_##name; \ - P->need_ellps = NEED_ELPJ_LPS; \ - P->left = PJ_IO_UNITS_ANGULAR; \ - P->right = PJ_IO_UNITS_CLASSIC; \ - return P; \ -} \ - \ -PJ *pj_projection_specific_setup_##name (PJ *P) - -/* In ISO19000 lingo, an operation is either a conversion or a transformation */ -#define CONVERSION(name, need_ellps) OPERATION (name, need_ellps) -#define TRANSFORMATION(name, need_ellps) OPERATION (name, need_ellps) - -/* In PROJ.4 a projection is a conversion taking angular input and giving scaled linear output */ -#define PROJECTION(name) CONVERSION (name, 1) - -#endif /* def PJ_LIB__ */ - - -#define MAX_TAB_ID 80 -typedef struct { float lam, phi; } FLP; -typedef struct { pj_int32 lam, phi; } ILP; - -struct CTABLE { - char id[MAX_TAB_ID]; /* ascii info */ - PJ_LP ll; /* lower left corner coordinates */ - PJ_LP del; /* size of cells */ - ILP lim; /* limits of conversion matrix */ - FLP *cvs; /* conversion matrix */ -}; - -typedef struct _pj_gi { - char *gridname; /* identifying name of grid, eg "conus" or ntv2_0.gsb */ - char *filename; /* full path to filename */ - - const char *format; /* format of this grid, ie "ctable", "ntv1", - "ntv2" or "missing". */ - - long grid_offset; /* offset in file, for delayed loading */ - int must_swap; /* only for NTv2 */ - - struct CTABLE *ct; - - struct _pj_gi *next; - struct _pj_gi *child; -} PJ_GRIDINFO; - -typedef struct { - PJ_Region region; - int priority; /* higher used before lower */ - double date; /* year.fraction */ - char *definition; /* usually the gridname */ - - PJ_GRIDINFO *gridinfo; - int available; /* 0=unknown, 1=true, -1=false */ -} PJ_GridCatalogEntry; - -typedef struct _PJ_GridCatalog { - char *catalog_name; - - PJ_Region region; /* maximum extent of catalog data */ - - int entry_count; - PJ_GridCatalogEntry *entries; - - struct _PJ_GridCatalog *next; -} PJ_GridCatalog; - -/* procedure prototypes */ -double PROJ_DLL dmstor(const char *, char **); -double dmstor_ctx(projCtx ctx, const char *, char **); -void PROJ_DLL set_rtodms(int, int); -char PROJ_DLL *rtodms(char *, double, int, int); -double PROJ_DLL adjlon(double); -double aacos(projCtx,double), aasin(projCtx,double), asqrt(double), aatan2(double, double); - -PROJVALUE PROJ_DLL pj_param(projCtx ctx, paralist *, const char *); -paralist PROJ_DLL *pj_param_exists (paralist *list, const char *parameter); -paralist PROJ_DLL *pj_mkparam(const char *); -paralist *pj_mkparam_ws (const char *str); - - -int PROJ_DLL pj_ell_set(projCtx ctx, paralist *, double *, double *); -int pj_datum_set(projCtx,paralist *, PJ *); -int pj_angular_units_set(paralist *, PJ *); - -paralist *pj_clone_paralist( const paralist* ); -paralist *pj_search_initcache( const char *filekey ); -void pj_insert_initcache( const char *filekey, const paralist *list); -paralist *pj_expand_init(projCtx ctx, paralist *init); - -void *pj_dealloc_params (projCtx ctx, paralist *start, int errlev); - - -double *pj_enfn(double); -double pj_mlfn(double, double, double, double *); -double pj_inv_mlfn(projCtx, double, double, double *); -double pj_qsfn(double, double, double); -double pj_tsfn(double, double, double); -double pj_msfn(double, double, double); -double PROJ_DLL pj_phi2(projCtx, double, double); -double pj_qsfn_(double, PJ *); -double *pj_authset(double); -double pj_authlat(double, double *); - -COMPLEX pj_zpoly1(COMPLEX, const COMPLEX *, int); -COMPLEX pj_zpolyd1(COMPLEX, const COMPLEX *, int, COMPLEX *); - -int pj_deriv(PJ_LP, double, const PJ *, struct DERIVS *); -int pj_factors(PJ_LP, const PJ *, double, struct FACTORS *); - -struct PW_COEF { /* row coefficient structure */ - int m; /* number of c coefficients (=0 for none) */ - double *c; /* power coefficients */ -}; - -/* Approximation structures and procedures */ -typedef struct { /* Chebyshev or Power series structure */ - PJ_UV a, b; /* power series range for evaluation */ - /* or Chebyshev argument shift/scaling */ - struct PW_COEF *cu, *cv; - int mu, mv; /* maximum cu and cv index (+1 for count) */ - int power; /* != 0 if power series, else Chebyshev */ -} Tseries; - -Tseries PROJ_DLL *mk_cheby(PJ_UV, PJ_UV, double, PJ_UV *, PJ_UV (*)(PJ_UV), int, int, int); -PJ_UV bpseval(PJ_UV, Tseries *); -PJ_UV bcheval(PJ_UV, Tseries *); -PJ_UV biveval(PJ_UV, Tseries *); -void *vector1(int, int); -void **vector2(int, int, int); -void freev2(void **v, int nrows); -int bchgen(PJ_UV, PJ_UV, int, int, PJ_UV **, PJ_UV(*)(PJ_UV)); -int bch2bps(PJ_UV, PJ_UV, PJ_UV **, int, int); - -/* nadcon related protos */ -PJ_LP nad_intr(PJ_LP, struct CTABLE *); -PJ_LP nad_cvt(PJ_LP, int, struct CTABLE *); -struct CTABLE *nad_init(projCtx ctx, char *); -struct CTABLE *nad_ctable_init( projCtx ctx, PAFile fid ); -int nad_ctable_load( projCtx ctx, struct CTABLE *, PAFile fid ); -struct CTABLE *nad_ctable2_init( projCtx ctx, PAFile fid ); -int nad_ctable2_load( projCtx ctx, struct CTABLE *, PAFile fid ); -void nad_free(struct CTABLE *); - -/* higher level handling of datum grid shift files */ - -int pj_apply_vgridshift( PJ *defn, const char *listname, - PJ_GRIDINFO ***gridlist_p, - int *gridlist_count_p, - int inverse, - long point_count, int point_offset, - double *x, double *y, double *z ); -int pj_apply_gridshift_2( PJ *defn, int inverse, - long point_count, int point_offset, - double *x, double *y, double *z ); -int pj_apply_gridshift_3( projCtx ctx, - PJ_GRIDINFO **gridlist, int gridlist_count, - int inverse, long point_count, int point_offset, - double *x, double *y, double *z ); - -PJ_GRIDINFO **pj_gridlist_from_nadgrids( projCtx, const char *, int * ); -void PROJ_DLL pj_deallocate_grids(); - -PJ_GRIDINFO *pj_gridinfo_init( projCtx, const char * ); -int pj_gridinfo_load( projCtx, PJ_GRIDINFO * ); -void pj_gridinfo_free( projCtx, PJ_GRIDINFO * ); - -PJ_GridCatalog *pj_gc_findcatalog( projCtx, const char * ); -PJ_GridCatalog *pj_gc_readcatalog( projCtx, const char * ); -void pj_gc_unloadall( projCtx ); -int pj_gc_apply_gridshift( PJ *defn, int inverse, - long point_count, int point_offset, - double *x, double *y, double *z ); -int pj_gc_apply_gridshift( PJ *defn, int inverse, - long point_count, int point_offset, - double *x, double *y, double *z ); - -PJ_GRIDINFO *pj_gc_findgrid( projCtx ctx, - PJ_GridCatalog *catalog, int after, - PJ_LP location, double date, - PJ_Region *optional_region, - double *grid_date ); - -double pj_gc_parsedate( projCtx, const char * ); - -void *proj_mdist_ini(double); -double proj_mdist(double, double, double, const void *); -double proj_inv_mdist(projCtx ctx, double, const void *); -void *pj_gauss_ini(double, double, double *,double *); -PJ_LP pj_gauss(projCtx, PJ_LP, const void *); -PJ_LP pj_inv_gauss(projCtx, PJ_LP, const void *); - -struct PJ_DATUMS PROJ_DLL *pj_get_datums_ref( void ); - -PJ *pj_new(void); -PJ *pj_default_destructor (PJ *P, int errlev); - -double PROJ_DLL pj_atof( const char* nptr ); -double pj_strtod( const char *nptr, char **endptr ); -void pj_freeup_plain (PJ *P); - -projPJ pj_init_ctx_with_allow_init_epsg( projCtx ctx, int argc, char **argv, int allow_init_epsg ); - -#ifndef PROJECTS_H_ATEND -#define PROJECTS_H_ATEND -#endif -#endif /* end of basic projections header */ diff --git a/src/qsfn.cpp b/src/qsfn.cpp index c8592d3d..35ba3b93 100644 --- a/src/qsfn.cpp +++ b/src/qsfn.cpp @@ -1,7 +1,7 @@ /* determine small q */ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" # define EPSILON 1.0e-7 diff --git a/src/release.cpp b/src/release.cpp index 9beb45ef..ddc768c6 100644 --- a/src/release.cpp +++ b/src/release.cpp @@ -1,7 +1,7 @@ /* <<< Release Notice for library >>> */ #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #define STR_HELPER(x) #x #define STR(x) STR_HELPER(x) diff --git a/src/rtodms.cpp b/src/rtodms.cpp index d7686931..9b3b7cb9 100644 --- a/src/rtodms.cpp +++ b/src/rtodms.cpp @@ -6,7 +6,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" /* ** RES is fractional second figures diff --git a/src/strerrno.cpp b/src/strerrno.cpp index 18ed0d33..9f690041 100644 --- a/src/strerrno.cpp +++ b/src/strerrno.cpp @@ -5,7 +5,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" static const char * const pj_err_list[] = { diff --git a/src/strtod.cpp b/src/strtod.cpp index ccf26321..7ab271c5 100644 --- a/src/strtod.cpp +++ b/src/strtod.cpp @@ -33,7 +33,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" /* Windows nmake build doesn't have a proj_config.h, but HAVE_LOCALECONV */ /* is defined in the compilation line */ diff --git a/src/transform.cpp b/src/transform.cpp index 2c8dc467..486178d0 100644 --- a/src/transform.cpp +++ b/src/transform.cpp @@ -32,7 +32,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include "geocent.h" static int adjust_axis( projCtx ctx, const char *axis, int denormalize_flag, diff --git a/src/transformations/affine.cpp b/src/transformations/affine.cpp index 002bb2dd..21529a20 100644 --- a/src/transformations/affine.cpp +++ b/src/transformations/affine.cpp @@ -27,7 +27,7 @@ #include "proj_internal.h" #include "proj.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(affine, "Affine transformation"); PROJ_HEAD(geogoffset, "Geographic Offset"); diff --git a/src/transformations/deformation.cpp b/src/transformations/deformation.cpp index 7efe8a8c..9221d39e 100644 --- a/src/transformations/deformation.cpp +++ b/src/transformations/deformation.cpp @@ -56,7 +56,7 @@ grid-values in units of mm/year in ENU-space. #include "proj.h" #include "proj_internal.h" #include "proj_math.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(deformation, "Kinematic grid shift"); diff --git a/src/transformations/helmert.cpp b/src/transformations/helmert.cpp index 55112aaa..085bbbf9 100644 --- a/src/transformations/helmert.cpp +++ b/src/transformations/helmert.cpp @@ -53,7 +53,7 @@ Last update: 2018-10-26 #include #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" #include "geocent.h" PROJ_HEAD(helmert, "3(6)-, 4(8)- and 7(14)-parameter Helmert shift"); diff --git a/src/transformations/hgridshift.cpp b/src/transformations/hgridshift.cpp index c8dfea15..788c2ebb 100644 --- a/src/transformations/hgridshift.cpp +++ b/src/transformations/hgridshift.cpp @@ -6,7 +6,7 @@ #include #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(hgridshift, "Horizontal grid shift"); diff --git a/src/transformations/horner.cpp b/src/transformations/horner.cpp index 271d1187..f5d749c4 100644 --- a/src/transformations/horner.cpp +++ b/src/transformations/horner.cpp @@ -85,7 +85,7 @@ #include "proj.h" #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(horner, "Horner polynomial evaluation"); diff --git a/src/transformations/molodensky.cpp b/src/transformations/molodensky.cpp index 843da5c9..002c5286 100644 --- a/src/transformations/molodensky.cpp +++ b/src/transformations/molodensky.cpp @@ -49,7 +49,7 @@ #include "proj.h" #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(molodensky, "Molodensky transform"); diff --git a/src/transformations/vgridshift.cpp b/src/transformations/vgridshift.cpp index fe2bc3e5..95537cda 100644 --- a/src/transformations/vgridshift.cpp +++ b/src/transformations/vgridshift.cpp @@ -6,7 +6,7 @@ #include #include "proj_internal.h" -#include "projects.h" +#include "proj_internal.h" PROJ_HEAD(vgridshift, "Vertical grid shift"); diff --git a/src/tsfn.cpp b/src/tsfn.cpp index fb299dc9..32da09f2 100644 --- a/src/tsfn.cpp +++ b/src/tsfn.cpp @@ -1,7 +1,7 @@ /* determine small t */ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" double pj_tsfn(double phi, double sinphi, double e) { double denominator; diff --git a/src/units.cpp b/src/units.cpp index 50f11396..34a71db1 100644 --- a/src/units.cpp +++ b/src/units.cpp @@ -5,7 +5,7 @@ #include "proj.h" #define PJ_UNITS__ -#include "projects.h" +#include "proj_internal.h" /* Field 2 that contains the multiplier to convert named units to meters ** may be expressed by either a simple floating point constant or a diff --git a/src/utils.cpp b/src/utils.cpp index 9a320fa4..9cb13f44 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -32,7 +32,7 @@ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" /************************************************************************/ /* pj_is_latlong() */ diff --git a/src/vector1.cpp b/src/vector1.cpp index 31a425a8..fc69f5c3 100644 --- a/src/vector1.cpp +++ b/src/vector1.cpp @@ -1,7 +1,7 @@ /* make storage for one and two dimensional matricies */ #include #include "proj.h" -#include "projects.h" +#include "proj_internal.h" void * /* one dimension array */ vector1(int nvals, int size) { return((void *)pj_malloc(size * nvals)); } void /* free 2D array */ diff --git a/src/zpoly1.cpp b/src/zpoly1.cpp index 5aded697..c7b7a3e3 100644 --- a/src/zpoly1.cpp +++ b/src/zpoly1.cpp @@ -1,6 +1,6 @@ /* evaluate complex polynomial */ #include "proj.h" -#include "projects.h" +#include "proj_internal.h" /* note: coefficients are always from C_1 to C_n ** i.e. C_0 == (0., 0) ** n should always be >= 1 though no checks are made diff --git a/test/unit/gie_self_tests.cpp b/test/unit/gie_self_tests.cpp index 9ff7a278..1b5ce83b 100644 --- a/test/unit/gie_self_tests.cpp +++ b/test/unit/gie_self_tests.cpp @@ -31,9 +31,8 @@ // PROJ include order is sensitive // clang-format off -#include "proj_internal.h" #include "proj.h" -#include "projects.h" +#include "proj_internal.h" // clang-format on #include diff --git a/test/unit/pj_phi2_test.cpp b/test/unit/pj_phi2_test.cpp index fcfa1e30..5fc84600 100644 --- a/test/unit/pj_phi2_test.cpp +++ b/test/unit/pj_phi2_test.cpp @@ -27,7 +27,7 @@ ****************************************************************************/ #include "proj.h" -#include "projects.h" +#include "proj_internal.h" #include #include diff --git a/test/unit/pj_transform_test.cpp b/test/unit/pj_transform_test.cpp index eb6a7f9d..ea9706dd 100644 --- a/test/unit/pj_transform_test.cpp +++ b/test/unit/pj_transform_test.cpp @@ -34,7 +34,7 @@ // PROJ include order is sensitive // clang-format off #include -#include +#include "proj_internal.h" #include // clang-format on -- cgit v1.2.3 From 62b9e04cd32587b10bfac2051d3b259f3233e7b2 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 26 Dec 2018 15:16:46 +0100 Subject: proj_internal.h: remove use of proj_api.h specific structures --- src/gridinfo.cpp | 10 ++++---- src/iso19111/factory.cpp | 1 + src/nad_init.cpp | 16 +++++++----- src/proj_internal.h | 66 ++++++++++++++++++++++++------------------------ 4 files changed, 49 insertions(+), 44 deletions(-) diff --git a/src/gridinfo.cpp b/src/gridinfo.cpp index 1a0bc16a..14759557 100644 --- a/src/gridinfo.cpp +++ b/src/gridinfo.cpp @@ -121,7 +121,7 @@ void pj_gridinfo_free( projCtx ctx, PJ_GRIDINFO *gi ) /* stuff are loaded by pj_gridinfo_init(). */ /************************************************************************/ -int pj_gridinfo_load( projCtx ctx, PJ_GRIDINFO *gi ) +int pj_gridinfo_load( projCtx_t* ctx, PJ_GRIDINFO *gi ) { struct CTABLE ct_tmp; @@ -155,7 +155,7 @@ int pj_gridinfo_load( projCtx ctx, PJ_GRIDINFO *gi ) return 0; } - result = nad_ctable_load( ctx, &ct_tmp, fid ); + result = nad_ctable_load( ctx, &ct_tmp, (struct projFileAPI_t*)fid ); pj_ctx_fclose( ctx, fid ); @@ -182,7 +182,7 @@ int pj_gridinfo_load( projCtx ctx, PJ_GRIDINFO *gi ) return 0; } - result = nad_ctable2_load( ctx, &ct_tmp, fid ); + result = nad_ctable2_load( ctx, &ct_tmp, (struct projFileAPI_t*)fid ); pj_ctx_fclose( ctx, fid ); @@ -941,7 +941,7 @@ PJ_GRIDINFO *pj_gridinfo_init( projCtx ctx, const char *gridname ) else if( header_size >= 9 && strncmp(header + 0,"CTABLE V2",9) == 0 ) { - struct CTABLE *ct = nad_ctable2_init( ctx, fp ); + struct CTABLE *ct = nad_ctable2_init( ctx, (struct projFileAPI_t*)fp ); gilist->format = "ctable2"; gilist->ct = ct; @@ -965,7 +965,7 @@ PJ_GRIDINFO *pj_gridinfo_init( projCtx ctx, const char *gridname ) else { - struct CTABLE *ct = nad_ctable_init( ctx, fp ); + struct CTABLE *ct = nad_ctable_init( ctx, (struct projFileAPI_t*)fp ); if (ct == nullptr) { pj_log( ctx, PJ_LOG_DEBUG_MAJOR, diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp index dcc32f32..8dac7be7 100644 --- a/src/iso19111/factory.cpp +++ b/src/iso19111/factory.cpp @@ -60,6 +60,7 @@ // clang-format off #include "proj.h" #include "proj_internal.h" +#include "proj_api.h" // clang-format on #include diff --git a/src/nad_init.cpp b/src/nad_init.cpp index b29f7f0e..d9701e70 100644 --- a/src/nad_init.cpp +++ b/src/nad_init.cpp @@ -74,9 +74,10 @@ static void swap_words( void *data_in, int word_size, int word_count ) /* Load the data portion of a ctable formatted grid. */ /************************************************************************/ -int nad_ctable_load( projCtx ctx, struct CTABLE *ct, PAFile fid ) +int nad_ctable_load( projCtx ctx, struct CTABLE *ct, struct projFileAPI_t* fileapi ) { + PAFile fid = (PAFile)fileapi; size_t a_size; pj_ctx_fseek( ctx, fid, sizeof(struct CTABLE), SEEK_SET ); @@ -105,8 +106,9 @@ int nad_ctable_load( projCtx ctx, struct CTABLE *ct, PAFile fid ) /* Read the header portion of a "ctable" format grid. */ /************************************************************************/ -struct CTABLE *nad_ctable_init( projCtx ctx, PAFile fid ) +struct CTABLE *nad_ctable_init( projCtx ctx, struct projFileAPI_t* fileapi ) { + PAFile fid = (PAFile)fileapi; struct CTABLE *ct; int id_end; @@ -149,9 +151,10 @@ struct CTABLE *nad_ctable_init( projCtx ctx, PAFile fid ) /* Load the data portion of a ctable2 formatted grid. */ /************************************************************************/ -int nad_ctable2_load( projCtx ctx, struct CTABLE *ct, PAFile fid ) +int nad_ctable2_load( projCtx ctx, struct CTABLE *ct, struct projFileAPI_t* fileapi ) { + PAFile fid = (PAFile)fileapi; size_t a_size; pj_ctx_fseek( ctx, fid, 160, SEEK_SET ); @@ -189,8 +192,9 @@ int nad_ctable2_load( projCtx ctx, struct CTABLE *ct, PAFile fid ) /* Read the header portion of a "ctable2" format grid. */ /************************************************************************/ -struct CTABLE *nad_ctable2_init( projCtx ctx, PAFile fid ) +struct CTABLE *nad_ctable2_init( projCtx ctx, struct projFileAPI_t* fileapi ) { + PAFile fid = (PAFile)fileapi; struct CTABLE *ct; int id_end; char header[160]; @@ -275,10 +279,10 @@ struct CTABLE *nad_init(projCtx ctx, char *name) return nullptr; } - ct = nad_ctable_init( ctx, fid ); + ct = nad_ctable_init( ctx, (struct projFileAPI_t*)fid ); if( ct != nullptr ) { - if( !nad_ctable_load( ctx, ct, fid ) ) + if( !nad_ctable_load( ctx, ct, (struct projFileAPI_t*)fid ) ) { nad_free( ct ); ct = nullptr; diff --git a/src/proj_internal.h b/src/proj_internal.h index 93edae5e..7573e1bf 100644 --- a/src/proj_internal.h +++ b/src/proj_internal.h @@ -663,10 +663,6 @@ struct projCtx_t { int epsg_file_exists; /* -1 = unknown, 0 = no, 1 = yes */ }; -/* classic public API */ -#include "proj_api.h" - - /* Generate pj_list external or make list from include file */ #ifndef PJ_DATUMS__ C_NAMESPACE_VAR struct PJ_DATUMS pj_datums[]; @@ -762,37 +758,40 @@ typedef struct _PJ_GridCatalog { /* procedure prototypes */ double PROJ_DLL dmstor(const char *, char **); -double dmstor_ctx(projCtx ctx, const char *, char **); +double dmstor_ctx(projCtx_t *ctx, const char *, char **); void PROJ_DLL set_rtodms(int, int); char PROJ_DLL *rtodms(char *, double, int, int); double PROJ_DLL adjlon(double); -double aacos(projCtx,double), aasin(projCtx,double), asqrt(double), aatan2(double, double); +double aacos(projCtx_t *,double); +double aasin(projCtx_t *,double); +double asqrt(double); +double aatan2(double, double); -PROJVALUE PROJ_DLL pj_param(projCtx ctx, paralist *, const char *); +PROJVALUE PROJ_DLL pj_param(projCtx_t *ctx, paralist *, const char *); paralist PROJ_DLL *pj_param_exists (paralist *list, const char *parameter); paralist PROJ_DLL *pj_mkparam(const char *); paralist *pj_mkparam_ws (const char *str); -int PROJ_DLL pj_ell_set(projCtx ctx, paralist *, double *, double *); -int pj_datum_set(projCtx,paralist *, PJ *); +int PROJ_DLL pj_ell_set(projCtx_t *ctx, paralist *, double *, double *); +int pj_datum_set(projCtx_t *,paralist *, PJ *); int pj_angular_units_set(paralist *, PJ *); paralist *pj_clone_paralist( const paralist* ); paralist *pj_search_initcache( const char *filekey ); void pj_insert_initcache( const char *filekey, const paralist *list); -paralist *pj_expand_init(projCtx ctx, paralist *init); +paralist *pj_expand_init(projCtx_t *ctx, paralist *init); -void *pj_dealloc_params (projCtx ctx, paralist *start, int errlev); +void *pj_dealloc_params (projCtx_t *ctx, paralist *start, int errlev); double *pj_enfn(double); double pj_mlfn(double, double, double, double *); -double pj_inv_mlfn(projCtx, double, double, double *); +double pj_inv_mlfn(projCtx_t *, double, double, double *); double pj_qsfn(double, double, double); double pj_tsfn(double, double, double); double pj_msfn(double, double, double); -double PROJ_DLL pj_phi2(projCtx, double, double); +double PROJ_DLL pj_phi2(projCtx_t *, double, double); double pj_qsfn_(double, PJ *); double *pj_authset(double); double pj_authlat(double, double *); @@ -830,11 +829,11 @@ int bch2bps(PJ_UV, PJ_UV, PJ_UV **, int, int); /* nadcon related protos */ PJ_LP nad_intr(PJ_LP, struct CTABLE *); PJ_LP nad_cvt(PJ_LP, int, struct CTABLE *); -struct CTABLE *nad_init(projCtx ctx, char *); -struct CTABLE *nad_ctable_init( projCtx ctx, PAFile fid ); -int nad_ctable_load( projCtx ctx, struct CTABLE *, PAFile fid ); -struct CTABLE *nad_ctable2_init( projCtx ctx, PAFile fid ); -int nad_ctable2_load( projCtx ctx, struct CTABLE *, PAFile fid ); +struct CTABLE *nad_init(projCtx_t *ctx, char *); +struct CTABLE *nad_ctable_init( projCtx_t *ctx, struct projFileAPI_t* fid ); +int nad_ctable_load( projCtx_t *ctx, struct CTABLE *, struct projFileAPI_t* fid ); +struct CTABLE *nad_ctable2_init( projCtx_t *ctx, struct projFileAPI_t* fid ); +int nad_ctable2_load( projCtx_t *ctx, struct CTABLE *, struct projFileAPI_t* fid ); void nad_free(struct CTABLE *); /* higher level handling of datum grid shift files */ @@ -848,21 +847,20 @@ int pj_apply_vgridshift( PJ *defn, const char *listname, int pj_apply_gridshift_2( PJ *defn, int inverse, long point_count, int point_offset, double *x, double *y, double *z ); -int pj_apply_gridshift_3( projCtx ctx, +int pj_apply_gridshift_3( projCtx_t *ctx, PJ_GRIDINFO **gridlist, int gridlist_count, int inverse, long point_count, int point_offset, double *x, double *y, double *z ); -PJ_GRIDINFO **pj_gridlist_from_nadgrids( projCtx, const char *, int * ); -void PROJ_DLL pj_deallocate_grids(); +PJ_GRIDINFO **pj_gridlist_from_nadgrids( projCtx_t *, const char *, int * ); -PJ_GRIDINFO *pj_gridinfo_init( projCtx, const char * ); -int pj_gridinfo_load( projCtx, PJ_GRIDINFO * ); -void pj_gridinfo_free( projCtx, PJ_GRIDINFO * ); +PJ_GRIDINFO *pj_gridinfo_init( projCtx_t *, const char * ); +int pj_gridinfo_load( projCtx_t *, PJ_GRIDINFO * ); +void pj_gridinfo_free( projCtx_t *, PJ_GRIDINFO * ); -PJ_GridCatalog *pj_gc_findcatalog( projCtx, const char * ); -PJ_GridCatalog *pj_gc_readcatalog( projCtx, const char * ); -void pj_gc_unloadall( projCtx ); +PJ_GridCatalog *pj_gc_findcatalog( projCtx_t *, const char * ); +PJ_GridCatalog *pj_gc_readcatalog( projCtx_t *, const char * ); +void pj_gc_unloadall( projCtx_t *); int pj_gc_apply_gridshift( PJ *defn, int inverse, long point_count, int point_offset, double *x, double *y, double *z ); @@ -870,20 +868,20 @@ int pj_gc_apply_gridshift( PJ *defn, int inverse, long point_count, int point_offset, double *x, double *y, double *z ); -PJ_GRIDINFO *pj_gc_findgrid( projCtx ctx, +PJ_GRIDINFO *pj_gc_findgrid( projCtx_t *ctx, PJ_GridCatalog *catalog, int after, PJ_LP location, double date, PJ_Region *optional_region, double *grid_date ); -double pj_gc_parsedate( projCtx, const char * ); +double pj_gc_parsedate( projCtx_t *, const char * ); void *proj_mdist_ini(double); double proj_mdist(double, double, double, const void *); -double proj_inv_mdist(projCtx ctx, double, const void *); +double proj_inv_mdist(projCtx_t *ctx, double, const void *); void *pj_gauss_ini(double, double, double *,double *); -PJ_LP pj_gauss(projCtx, PJ_LP, const void *); -PJ_LP pj_inv_gauss(projCtx, PJ_LP, const void *); +PJ_LP pj_gauss(projCtx_t *, PJ_LP, const void *); +PJ_LP pj_inv_gauss(projCtx_t *, PJ_LP, const void *); struct PJ_DATUMS PROJ_DLL *pj_get_datums_ref( void ); @@ -894,7 +892,9 @@ double PROJ_DLL pj_atof( const char* nptr ); double pj_strtod( const char *nptr, char **endptr ); void pj_freeup_plain (PJ *P); -projPJ pj_init_ctx_with_allow_init_epsg( projCtx ctx, int argc, char **argv, int allow_init_epsg ); +PJ* pj_init_ctx_with_allow_init_epsg( projCtx_t *ctx, int argc, char **argv, int allow_init_epsg ); +/* classic public API */ +#include "proj_api.h" #endif /* ndef PROJ_INTERNAL_H */ -- cgit v1.2.3 From 0e0e0e475414ddeb75e0e140d8a3381a431036d9 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 28 Dec 2018 11:00:50 +0100 Subject: Rename proj_obj_XXX as proj_XXX and PJ_OBJ_XXX as PJ_XXX --- scripts/create_c_api_projections.py | 6 +- src/4D_api.cpp | 18 +- src/apps/cs2cs.cpp | 42 +- src/init.cpp | 4 +- src/iso19111/c_api.cpp | 1158 ++++++++++++++++---------------- src/proj.h | 152 ++--- src/proj_experimental.h | 176 ++--- test/unit/test_c_api.cpp | 1253 +++++++++++++++++------------------ test/unit/test_operation.cpp | 3 +- 9 files changed, 1414 insertions(+), 1398 deletions(-) diff --git a/scripts/create_c_api_projections.py b/scripts/create_c_api_projections.py index 76b54e1e..e99c36a8 100755 --- a/scripts/create_c_api_projections.py +++ b/scripts/create_c_api_projections.py @@ -96,7 +96,7 @@ for sectiondef in compounddef.iter('sectiondef'): shortName = name[len('create'):] c_shortName = snake_casify(shortName) - decl = "proj_obj_create_conversion_" + decl = "proj_create_conversion_" decl += c_shortName decl += "(\n" decl += " PJ_CONTEXT *ctx,\n" @@ -157,7 +157,7 @@ for sectiondef in compounddef.iter('sectiondef'): cppfile.write(", Scale(" + param[1] + ")") cppfile.write(");\n") - cppfile.write(" return proj_obj_create_conversion(conv);\n") + cppfile.write(" return proj_create_conversion(conv);\n") cppfile.write(" } catch (const std::exception &e) {\n"); cppfile.write(" proj_log_error(ctx, __FUNCTION__, e.what());\n") cppfile.write(" }\n") @@ -165,7 +165,7 @@ for sectiondef in compounddef.iter('sectiondef'): cppfile.write("}\n") test_cppfile.write("{\n") - test_cppfile.write(" auto projCRS = proj_obj_create_conversion_" + c_shortName + "(\n") + test_cppfile.write(" auto projCRS = proj_create_conversion_" + c_shortName + "(\n") test_cppfile.write(" m_ctxt") for param in params: test_cppfile.write(", 0") diff --git a/src/4D_api.cpp b/src/4D_api.cpp index ce9d7bd9..d8288af8 100644 --- a/src/4D_api.cpp +++ b/src/4D_api.cpp @@ -743,7 +743,7 @@ PJ *proj_create_crs_to_crs (PJ_CONTEXT *ctx, const char *source_crs, const char - a PROJ string, like "+proj=longlat +datum=WGS84". When using that syntax, the axis order and unit for geographic CRS will be longitude, latitude, and the unit degrees. - - more generally any string accepted by proj_obj_create_from_user_input() + - more generally any string accepted by proj_create_from_user_input() An "area of use" can be specified in area. When it is supplied, the more accurate transformation between two given systems can be chosen. @@ -763,13 +763,13 @@ PJ *proj_create_crs_to_crs (PJ_CONTEXT *ctx, const char *source_crs, const char const char* const* optionsImportCRS = proj_context_get_use_proj4_init_rules(ctx, FALSE) ? optionsProj4Mode : nullptr; - auto src = proj_obj_create_from_user_input(ctx, source_crs, optionsImportCRS); + auto src = proj_create_from_user_input(ctx, source_crs, optionsImportCRS); if( !src ) { proj_context_log_debug(ctx, "Cannot instanciate source_crs"); return nullptr; } - auto dst = proj_obj_create_from_user_input(ctx, target_crs, optionsImportCRS); + auto dst = proj_create_from_user_input(ctx, target_crs, optionsImportCRS); if( !dst ) { proj_context_log_debug(ctx, "Cannot instanciate target_crs"); proj_destroy(src); @@ -796,7 +796,7 @@ PJ *proj_create_crs_to_crs (PJ_CONTEXT *ctx, const char *source_crs, const char proj_operation_factory_context_set_grid_availability_use( ctx, operation_ctx, PROJ_GRID_AVAILABILITY_DISCARD_OPERATION_IF_MISSING_GRID); - auto op_list = proj_obj_create_operations(ctx, src, dst, operation_ctx); + auto op_list = proj_create_operations(ctx, src, dst, operation_ctx); proj_operation_factory_context_destroy(operation_ctx); proj_destroy(src); @@ -806,19 +806,19 @@ PJ *proj_create_crs_to_crs (PJ_CONTEXT *ctx, const char *source_crs, const char return nullptr; } - if( proj_obj_list_get_count(op_list) == 0 ) { - proj_obj_list_destroy(op_list); + if( proj_list_get_count(op_list) == 0 ) { + proj_list_destroy(op_list); proj_context_log_debug(ctx, "No operation found matching criteria"); return nullptr; } - auto op = proj_obj_list_get(ctx, op_list, 0); - proj_obj_list_destroy(op_list); + auto op = proj_list_get(ctx, op_list, 0); + proj_list_destroy(op_list); if( !op ) { return nullptr; } - proj_string = proj_obj_as_proj_string(ctx, op, PJ_PROJ_5, nullptr); + proj_string = proj_as_proj_string(ctx, op, PJ_PROJ_5, nullptr); if( !proj_string) { proj_destroy(op); proj_context_log_debug(ctx, "Cannot export operation as a PROJ string"); diff --git a/src/apps/cs2cs.cpp b/src/apps/cs2cs.cpp index e7f43c76..1e8fb474 100644 --- a/src/apps/cs2cs.cpp +++ b/src/apps/cs2cs.cpp @@ -213,7 +213,7 @@ static PJ *instanciate_crs(const std::string &definition, const char *const *optionsImportCRS, bool &isGeog, double &toRadians, bool &isLatFirst) { - PJ *crs = proj_obj_create_from_user_input(nullptr, definition.c_str(), + PJ *crs = proj_create_from_user_input(nullptr, definition.c_str(), optionsImportCRS); if (!crs) { return nullptr; @@ -223,21 +223,21 @@ static PJ *instanciate_crs(const std::string &definition, toRadians = 0.0; isLatFirst = false; - auto type = proj_obj_get_type(crs); - if (type == PJ_OBJ_TYPE_BOUND_CRS) { - auto base = proj_obj_get_source_crs(nullptr, crs); + auto type = proj_get_type(crs); + if (type == PJ_TYPE_BOUND_CRS) { + auto base = proj_get_source_crs(nullptr, crs); proj_destroy(crs); crs = base; - type = proj_obj_get_type(crs); + type = proj_get_type(crs); } - if (type == PJ_OBJ_TYPE_GEOGRAPHIC_2D_CRS || - type == PJ_OBJ_TYPE_GEOGRAPHIC_3D_CRS) { - auto cs = proj_obj_crs_get_coordinate_system(nullptr, crs); + if (type == PJ_TYPE_GEOGRAPHIC_2D_CRS || + type == PJ_TYPE_GEOGRAPHIC_3D_CRS) { + auto cs = proj_crs_get_coordinate_system(nullptr, crs); assert(cs); isGeog = true; const char *axisName = ""; - proj_obj_cs_get_axis_info(nullptr, cs, 0, + proj_cs_get_axis_info(nullptr, cs, 0, &axisName, // name, nullptr, // abbrev nullptr, // direction @@ -263,32 +263,32 @@ static PJ *instanciate_crs(const std::string &definition, static std::string get_geog_crs_proj_string_from_proj_crs(PJ *src, double &toRadians, bool &isLatFirst) { - auto srcType = proj_obj_get_type(src); - if (srcType == PJ_OBJ_TYPE_BOUND_CRS) { - auto base = proj_obj_get_source_crs(nullptr, src); + auto srcType = proj_get_type(src); + if (srcType == PJ_TYPE_BOUND_CRS) { + auto base = proj_get_source_crs(nullptr, src); assert(base); proj_destroy(src); src = base; - srcType = proj_obj_get_type(src); + srcType = proj_get_type(src); } - if (srcType != PJ_OBJ_TYPE_PROJECTED_CRS) { + if (srcType != PJ_TYPE_PROJECTED_CRS) { return std::string(); } - auto base = proj_obj_get_source_crs(nullptr, src); + auto base = proj_get_source_crs(nullptr, src); assert(base); - auto baseType = proj_obj_get_type(base); - if (baseType != PJ_OBJ_TYPE_GEOGRAPHIC_2D_CRS && - baseType != PJ_OBJ_TYPE_GEOGRAPHIC_3D_CRS) { + auto baseType = proj_get_type(base); + if (baseType != PJ_TYPE_GEOGRAPHIC_2D_CRS && + baseType != PJ_TYPE_GEOGRAPHIC_3D_CRS) { proj_destroy(base); return std::string(); } - auto cs = proj_obj_crs_get_coordinate_system(nullptr, base); + auto cs = proj_crs_get_coordinate_system(nullptr, base); assert(cs); const char *axisName = ""; - proj_obj_cs_get_axis_info(nullptr, cs, 0, + proj_cs_get_axis_info(nullptr, cs, 0, &axisName, // name, nullptr, // abbrev nullptr, // direction @@ -302,7 +302,7 @@ static std::string get_geog_crs_proj_string_from_proj_crs(PJ *src, proj_destroy(cs); - auto retCStr = proj_obj_as_proj_string(nullptr, base, PJ_PROJ_5, nullptr); + auto retCStr = proj_as_proj_string(nullptr, base, PJ_PROJ_5, nullptr); std::string ret(retCStr ? retCStr : ""); proj_destroy(base); return ret; diff --git a/src/init.cpp b/src/init.cpp index 85c59d58..2ed34a09 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -287,12 +287,12 @@ Expand key from buffer or (if not in buffer) from init file strcpy(szInitStr, "+init="); strcat(szInitStr, xkey); - src = proj_obj_create_from_user_input(ctx, szInitStr, optionsProj4Mode); + src = proj_create_from_user_input(ctx, szInitStr, optionsProj4Mode); if( !src ) { return nullptr; } - proj_string = proj_obj_as_proj_string(ctx, src, PJ_PROJ_4, nullptr); + proj_string = proj_as_proj_string(ctx, src, PJ_PROJ_4, nullptr); if( !proj_string ) { proj_destroy(src); return nullptr; diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index 20629e8b..7f51e613 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -146,15 +146,15 @@ getDBcontextNoException(PJ_CONTEXT *ctx, const char *function) { // --------------------------------------------------------------------------- static PJ *pj_obj_create(PJ_CONTEXT *ctx, const IdentifiedObjectNNPtr &objIn) { - auto coordop = dynamic_cast(objIn.get()); - if( coordop ) { + auto coordop = dynamic_cast(objIn.get()); + if (coordop) { auto dbContext = getDBcontextNoException(ctx, __FUNCTION__); try { auto formatter = PROJStringFormatter::create( PROJStringFormatter::Convention::PROJ_5, dbContext); - auto pj = proj_create(ctx, - coordop->exportToPROJString(formatter.get()).c_str()); - if( pj ) { + auto pj = proj_create( + ctx, coordop->exportToPROJString(formatter.get()).c_str()); + if (pj) { pj->iso_obj = objIn; return pj; } @@ -321,9 +321,9 @@ static const char *getOptionValue(const char *option, * @return Object that must be unreferenced with proj_destroy(), or NULL in * case of error. */ -PJ *proj_obj_clone(PJ_CONTEXT *ctx, const PJ *obj) { +PJ *proj_clone(PJ_CONTEXT *ctx, const PJ *obj) { SANITIZE_CTX(ctx); - if( !obj->iso_obj ) { + if (!obj->iso_obj) { return nullptr; } try { @@ -361,8 +361,8 @@ PJ *proj_obj_clone(PJ_CONTEXT *ctx, const PJ *obj) { * @return Object that must be unreferenced with proj_destroy(), or NULL in * case of error. */ -PJ *proj_obj_create_from_user_input(PJ_CONTEXT *ctx, const char *text, - const char *const *options) { +PJ *proj_create_from_user_input(PJ_CONTEXT *ctx, const char *text, + const char *const *options) { SANITIZE_CTX(ctx); assert(text); (void)options; @@ -440,10 +440,10 @@ template static PROJ_STRING_LIST to_string_list(T &&set) { * @return Object that must be unreferenced with proj_destroy(), or NULL in * case of error. */ -PJ *proj_obj_create_from_wkt(PJ_CONTEXT *ctx, const char *wkt, - const char *const *options, - PROJ_STRING_LIST *out_warnings, - PROJ_STRING_LIST *out_grammar_errors) { +PJ *proj_create_from_wkt(PJ_CONTEXT *ctx, const char *wkt, + const char *const *options, + PROJ_STRING_LIST *out_warnings, + PROJ_STRING_LIST *out_grammar_errors) { SANITIZE_CTX(ctx); assert(wkt); @@ -534,9 +534,8 @@ PJ *proj_obj_create_from_wkt(PJ_CONTEXT *ctx, const char *wkt, * @return Object that must be unreferenced with proj_destroy(), or NULL in * case of error. */ -PJ *proj_obj_create_from_proj_string(PJ_CONTEXT *ctx, - const char *proj_string, - const char *const *options) { +PJ *proj_create_from_proj_string(PJ_CONTEXT *ctx, const char *proj_string, + const char *const *options) { SANITIZE_CTX(ctx); (void)options; assert(proj_string); @@ -575,11 +574,10 @@ PJ *proj_obj_create_from_proj_string(PJ_CONTEXT *ctx, * @return Object that must be unreferenced with proj_destroy(), or NULL in * case of error. */ -PJ *proj_obj_create_from_database(PJ_CONTEXT *ctx, const char *auth_name, - const char *code, - PJ_OBJ_CATEGORY category, - int usePROJAlternativeGridNames, - const char *const *options) { +PJ *proj_create_from_database(PJ_CONTEXT *ctx, const char *auth_name, + const char *code, PJ_CATEGORY category, + int usePROJAlternativeGridNames, + const char *const *options) { assert(auth_name); assert(code); (void)options; @@ -589,20 +587,20 @@ PJ *proj_obj_create_from_database(PJ_CONTEXT *ctx, const char *auth_name, auto factory = AuthorityFactory::create(getDBcontext(ctx), auth_name); IdentifiedObjectPtr obj; switch (category) { - case PJ_OBJ_CATEGORY_ELLIPSOID: + case PJ_CATEGORY_ELLIPSOID: obj = factory->createEllipsoid(codeStr).as_nullable(); break; - case PJ_OBJ_CATEGORY_PRIME_MERIDIAN: + case PJ_CATEGORY_PRIME_MERIDIAN: obj = factory->createPrimeMeridian(codeStr).as_nullable(); break; - case PJ_OBJ_CATEGORY_DATUM: + case PJ_CATEGORY_DATUM: obj = factory->createDatum(codeStr).as_nullable(); break; - case PJ_OBJ_CATEGORY_CRS: + case PJ_CATEGORY_CRS: obj = factory->createCoordinateReferenceSystem(codeStr).as_nullable(); break; - case PJ_OBJ_CATEGORY_COORDINATE_OPERATION: + case PJ_CATEGORY_COORDINATE_OPERATION: obj = factory ->createCoordinateOperation( codeStr, usePROJAlternativeGridNames != 0) @@ -702,13 +700,13 @@ int proj_uom_get_info_from_database(PJ_CONTEXT *ctx, const char *auth_name, * @param datum_code Datum code (must not be NULL) * @param crs_type "geographic 2D", "geographic 3D", "geocentric" or NULL * @return a result set that must be unreferenced with - * proj_obj_list_destroy(), or NULL in case of error. + * proj_list_destroy(), or NULL in case of error. */ -PJ_OBJ_LIST *proj_obj_query_geodetic_crs_from_datum(PJ_CONTEXT *ctx, - const char *crs_auth_name, - const char *datum_auth_name, - const char *datum_code, - const char *crs_type) { +PJ_OBJ_LIST *proj_query_geodetic_crs_from_datum(PJ_CONTEXT *ctx, + const char *crs_auth_name, + const char *datum_auth_name, + const char *datum_code, + const char *crs_type) { assert(datum_auth_name); assert(datum_code); SANITIZE_CTX(ctx); @@ -732,101 +730,101 @@ PJ_OBJ_LIST *proj_obj_query_geodetic_crs_from_datum(PJ_CONTEXT *ctx, //! @cond Doxygen_Suppress static AuthorityFactory::ObjectType -convertPJObjectTypeToObjectType(PJ_OBJ_TYPE type, bool &valid) { +convertPJObjectTypeToObjectType(PJ_TYPE type, bool &valid) { valid = true; AuthorityFactory::ObjectType cppType = AuthorityFactory::ObjectType::CRS; switch (type) { - case PJ_OBJ_TYPE_ELLIPSOID: + case PJ_TYPE_ELLIPSOID: cppType = AuthorityFactory::ObjectType::ELLIPSOID; break; - case PJ_OBJ_TYPE_PRIME_MERIDIAN: + case PJ_TYPE_PRIME_MERIDIAN: cppType = AuthorityFactory::ObjectType::PRIME_MERIDIAN; break; - case PJ_OBJ_TYPE_GEODETIC_REFERENCE_FRAME: - case PJ_OBJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME: + case PJ_TYPE_GEODETIC_REFERENCE_FRAME: + case PJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME: cppType = AuthorityFactory::ObjectType::GEODETIC_REFERENCE_FRAME; break; - case PJ_OBJ_TYPE_VERTICAL_REFERENCE_FRAME: - case PJ_OBJ_TYPE_DYNAMIC_VERTICAL_REFERENCE_FRAME: + case PJ_TYPE_VERTICAL_REFERENCE_FRAME: + case PJ_TYPE_DYNAMIC_VERTICAL_REFERENCE_FRAME: cppType = AuthorityFactory::ObjectType::VERTICAL_REFERENCE_FRAME; break; - case PJ_OBJ_TYPE_DATUM_ENSEMBLE: + case PJ_TYPE_DATUM_ENSEMBLE: cppType = AuthorityFactory::ObjectType::DATUM; break; - case PJ_OBJ_TYPE_CRS: + case PJ_TYPE_CRS: cppType = AuthorityFactory::ObjectType::CRS; break; - case PJ_OBJ_TYPE_GEODETIC_CRS: + case PJ_TYPE_GEODETIC_CRS: cppType = AuthorityFactory::ObjectType::GEODETIC_CRS; break; - case PJ_OBJ_TYPE_GEOCENTRIC_CRS: + case PJ_TYPE_GEOCENTRIC_CRS: cppType = AuthorityFactory::ObjectType::GEOCENTRIC_CRS; break; - case PJ_OBJ_TYPE_GEOGRAPHIC_CRS: + case PJ_TYPE_GEOGRAPHIC_CRS: cppType = AuthorityFactory::ObjectType::GEOGRAPHIC_CRS; break; - case PJ_OBJ_TYPE_GEOGRAPHIC_2D_CRS: + case PJ_TYPE_GEOGRAPHIC_2D_CRS: cppType = AuthorityFactory::ObjectType::GEOGRAPHIC_2D_CRS; break; - case PJ_OBJ_TYPE_GEOGRAPHIC_3D_CRS: + case PJ_TYPE_GEOGRAPHIC_3D_CRS: cppType = AuthorityFactory::ObjectType::GEOGRAPHIC_3D_CRS; break; - case PJ_OBJ_TYPE_VERTICAL_CRS: + case PJ_TYPE_VERTICAL_CRS: cppType = AuthorityFactory::ObjectType::VERTICAL_CRS; break; - case PJ_OBJ_TYPE_PROJECTED_CRS: + case PJ_TYPE_PROJECTED_CRS: cppType = AuthorityFactory::ObjectType::PROJECTED_CRS; break; - case PJ_OBJ_TYPE_COMPOUND_CRS: + case PJ_TYPE_COMPOUND_CRS: cppType = AuthorityFactory::ObjectType::COMPOUND_CRS; break; - case PJ_OBJ_TYPE_ENGINEERING_CRS: + case PJ_TYPE_ENGINEERING_CRS: valid = false; break; - case PJ_OBJ_TYPE_TEMPORAL_CRS: + case PJ_TYPE_TEMPORAL_CRS: valid = false; break; - case PJ_OBJ_TYPE_BOUND_CRS: + case PJ_TYPE_BOUND_CRS: valid = false; break; - case PJ_OBJ_TYPE_OTHER_CRS: + case PJ_TYPE_OTHER_CRS: cppType = AuthorityFactory::ObjectType::CRS; break; - case PJ_OBJ_TYPE_CONVERSION: + case PJ_TYPE_CONVERSION: cppType = AuthorityFactory::ObjectType::CONVERSION; break; - case PJ_OBJ_TYPE_TRANSFORMATION: + case PJ_TYPE_TRANSFORMATION: cppType = AuthorityFactory::ObjectType::TRANSFORMATION; break; - case PJ_OBJ_TYPE_CONCATENATED_OPERATION: + case PJ_TYPE_CONCATENATED_OPERATION: cppType = AuthorityFactory::ObjectType::CONCATENATED_OPERATION; break; - case PJ_OBJ_TYPE_OTHER_COORDINATE_OPERATION: + case PJ_TYPE_OTHER_COORDINATE_OPERATION: cppType = AuthorityFactory::ObjectType::COORDINATE_OPERATION; break; - case PJ_OBJ_TYPE_UNKNOWN: + case PJ_TYPE_UNKNOWN: valid = false; break; } @@ -850,14 +848,14 @@ convertPJObjectTypeToObjectType(PJ_OBJ_TYPE type, bool &valid) { * Or 0 for unlimited. * @param options should be set to NULL for now * @return a result set that must be unreferenced with - * proj_obj_list_destroy(), or NULL in case of error. + * proj_list_destroy(), or NULL in case of error. */ -PJ_OBJ_LIST *proj_obj_create_from_name(PJ_CONTEXT *ctx, const char *auth_name, - const char *searchedName, - const PJ_OBJ_TYPE *types, - size_t typesCount, int approximateMatch, - size_t limitResultCount, - const char *const *options) { +PJ_OBJ_LIST *proj_create_from_name(PJ_CONTEXT *ctx, const char *auth_name, + const char *searchedName, + const PJ_TYPE *types, size_t typesCount, + int approximateMatch, + size_t limitResultCount, + const char *const *options) { assert(searchedName); assert((types != nullptr && typesCount > 0) || (types == nullptr && typesCount == 0)); @@ -895,43 +893,43 @@ PJ_OBJ_LIST *proj_obj_create_from_name(PJ_CONTEXT *ctx, const char *auth_name, * @param obj Object (must not be NULL) * @return its type. */ -PJ_OBJ_TYPE proj_obj_get_type(const PJ *obj) { +PJ_TYPE proj_get_type(const PJ *obj) { assert(obj); - if( !obj->iso_obj ) { - return PJ_OBJ_TYPE_UNKNOWN; + if (!obj->iso_obj) { + return PJ_TYPE_UNKNOWN; } auto ptr = obj->iso_obj.get(); if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_ELLIPSOID; + return PJ_TYPE_ELLIPSOID; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_PRIME_MERIDIAN; + return PJ_TYPE_PRIME_MERIDIAN; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME; + return PJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_GEODETIC_REFERENCE_FRAME; + return PJ_TYPE_GEODETIC_REFERENCE_FRAME; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_DYNAMIC_VERTICAL_REFERENCE_FRAME; + return PJ_TYPE_DYNAMIC_VERTICAL_REFERENCE_FRAME; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_VERTICAL_REFERENCE_FRAME; + return PJ_TYPE_VERTICAL_REFERENCE_FRAME; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_DATUM_ENSEMBLE; + return PJ_TYPE_DATUM_ENSEMBLE; } { auto crs = dynamic_cast(ptr); if (crs) { if (crs->coordinateSystem()->axisList().size() == 2) { - return PJ_OBJ_TYPE_GEOGRAPHIC_2D_CRS; + return PJ_TYPE_GEOGRAPHIC_2D_CRS; } else { - return PJ_OBJ_TYPE_GEOGRAPHIC_3D_CRS; + return PJ_TYPE_GEOGRAPHIC_3D_CRS; } } } @@ -940,49 +938,49 @@ PJ_OBJ_TYPE proj_obj_get_type(const PJ *obj) { auto crs = dynamic_cast(ptr); if (crs) { if (crs->isGeocentric()) { - return PJ_OBJ_TYPE_GEOCENTRIC_CRS; + return PJ_TYPE_GEOCENTRIC_CRS; } else { - return PJ_OBJ_TYPE_GEODETIC_CRS; + return PJ_TYPE_GEODETIC_CRS; } } } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_VERTICAL_CRS; + return PJ_TYPE_VERTICAL_CRS; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_PROJECTED_CRS; + return PJ_TYPE_PROJECTED_CRS; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_COMPOUND_CRS; + return PJ_TYPE_COMPOUND_CRS; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_TEMPORAL_CRS; + return PJ_TYPE_TEMPORAL_CRS; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_ENGINEERING_CRS; + return PJ_TYPE_ENGINEERING_CRS; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_BOUND_CRS; + return PJ_TYPE_BOUND_CRS; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_OTHER_CRS; + return PJ_TYPE_OTHER_CRS; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_CONVERSION; + return PJ_TYPE_CONVERSION; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_TRANSFORMATION; + return PJ_TYPE_TRANSFORMATION; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_CONCATENATED_OPERATION; + return PJ_TYPE_CONCATENATED_OPERATION; } if (dynamic_cast(ptr)) { - return PJ_OBJ_TYPE_OTHER_COORDINATE_OPERATION; + return PJ_TYPE_OTHER_COORDINATE_OPERATION; } - return PJ_OBJ_TYPE_UNKNOWN; + return PJ_TYPE_UNKNOWN; } // --------------------------------------------------------------------------- @@ -992,9 +990,9 @@ PJ_OBJ_TYPE proj_obj_get_type(const PJ *obj) { * @param obj Object (must not be NULL) * @return TRUE if it is deprecated, FALSE otherwise */ -int proj_obj_is_deprecated(const PJ *obj) { +int proj_is_deprecated(const PJ *obj) { assert(obj); - if( !obj->iso_obj ) { + if (!obj->iso_obj) { return false; } return obj->iso_obj->isDeprecated(); @@ -1008,9 +1006,9 @@ int proj_obj_is_deprecated(const PJ *obj) { * @param obj Object (of type CRS for now) for which non-deprecated objects * must be searched. Must not be NULL * @return a result set that must be unreferenced with - * proj_obj_list_destroy(), or NULL in case of error. + * proj_list_destroy(), or NULL in case of error. */ -PJ_OBJ_LIST *proj_obj_get_non_deprecated(PJ_CONTEXT *ctx, const PJ *obj) { +PJ_OBJ_LIST *proj_get_non_deprecated(PJ_CONTEXT *ctx, const PJ *obj) { assert(obj); SANITIZE_CTX(ctx); auto crs = dynamic_cast(obj->iso_obj.get()); @@ -1039,14 +1037,14 @@ PJ_OBJ_LIST *proj_obj_get_non_deprecated(PJ_CONTEXT *ctx, const PJ *obj) { * @param criterion Comparison criterion * @return TRUE if they are equivalent */ -int proj_obj_is_equivalent_to(const PJ *obj, const PJ *other, - PJ_COMPARISON_CRITERION criterion) { +int proj_is_equivalent_to(const PJ *obj, const PJ *other, + PJ_COMPARISON_CRITERION criterion) { assert(obj); assert(other); - if( !obj->iso_obj ) { + if (!obj->iso_obj) { return false; } - if( !other->iso_obj ) { + if (!other->iso_obj) { return false; } @@ -1082,7 +1080,7 @@ int proj_obj_is_equivalent_to(const PJ *obj, const PJ *other, * * @param obj Object (must not be NULL) */ -int proj_obj_is_crs(const PJ *obj) { +int proj_is_crs(const PJ *obj) { assert(obj); return dynamic_cast(obj->iso_obj.get()) != nullptr; } @@ -1096,9 +1094,9 @@ int proj_obj_is_crs(const PJ *obj) { * @param obj Object (must not be NULL) * @return a string, or NULL in case of error or missing name. */ -const char *proj_obj_get_name(const PJ *obj) { +const char *proj_get_name(const PJ *obj) { assert(obj); - if( !obj->iso_obj ) { + if (!obj->iso_obj) { return nullptr; } const auto &desc = obj->iso_obj->name()->description(); @@ -1120,9 +1118,9 @@ const char *proj_obj_get_name(const PJ *obj) { * @param index Index of the identifier. 0 = first identifier * @return a string, or NULL in case of error or missing name. */ -const char *proj_obj_get_id_auth_name(const PJ *obj, int index) { +const char *proj_get_id_auth_name(const PJ *obj, int index) { assert(obj); - if( !obj->iso_obj ) { + if (!obj->iso_obj) { return nullptr; } const auto &ids = obj->iso_obj->identifiers(); @@ -1148,9 +1146,9 @@ const char *proj_obj_get_id_auth_name(const PJ *obj, int index) { * @param index Index of the identifier. 0 = first identifier * @return a string, or NULL in case of error or missing name. */ -const char *proj_obj_get_id_code(const PJ *obj, int index) { +const char *proj_get_id_code(const PJ *obj, int index) { assert(obj); - if( !obj->iso_obj ) { + if (!obj->iso_obj) { return nullptr; } const auto &ids = obj->iso_obj->identifiers(); @@ -1165,7 +1163,7 @@ const char *proj_obj_get_id_code(const PJ *obj, int index) { /** \brief Get a WKT representation of an object. * * The returned string is valid while the input obj parameter is valid, - * and until a next call to proj_obj_as_wkt() with the same input object. + * and until a next call to proj_as_wkt() with the same input object. * * This function calls osgeo::proj::io::IWKTExportable::exportToWKT(). * @@ -1188,11 +1186,11 @@ const char *proj_obj_get_id_code(const PJ *obj, int index) { * * @return a string, or NULL in case of error. */ -const char *proj_obj_as_wkt(PJ_CONTEXT *ctx, const PJ *obj, - PJ_WKT_TYPE type, const char *const *options) { +const char *proj_as_wkt(PJ_CONTEXT *ctx, const PJ *obj, PJ_WKT_TYPE type, + const char *const *options) { SANITIZE_CTX(ctx); assert(obj); - if( !obj->iso_obj ) { + if (!obj->iso_obj) { return nullptr; } @@ -1266,7 +1264,7 @@ const char *proj_obj_as_wkt(PJ_CONTEXT *ctx, const PJ *obj, /** \brief Get a PROJ string representation of an object. * * The returned string is valid while the input obj parameter is valid, - * and until a next call to proj_obj_as_proj_string() with the same input + * and until a next call to proj_as_proj_string() with the same input * object. * * This function calls @@ -1285,9 +1283,9 @@ const char *proj_obj_as_wkt(PJ_CONTEXT *ctx, const PJ *obj, * use of etmerc by utm conversions) * @return a string, or NULL in case of error. */ -const char *proj_obj_as_proj_string(PJ_CONTEXT *ctx, const PJ *obj, - PJ_PROJ_STRING_TYPE type, - const char *const *options) { +const char *proj_as_proj_string(PJ_CONTEXT *ctx, const PJ *obj, + PJ_PROJ_STRING_TYPE type, + const char *const *options) { SANITIZE_CTX(ctx); assert(obj); auto exportable = @@ -1353,12 +1351,12 @@ const char *proj_obj_as_proj_string(PJ_CONTEXT *ctx, const PJ *obj, * @return TRUE in case of success, FALSE in case of error or if the area * of use is unknown. */ -int proj_obj_get_area_of_use(PJ_CONTEXT *ctx, const PJ *obj, - double *out_west_lon_degree, - double *out_south_lat_degree, - double *out_east_lon_degree, - double *out_north_lat_degree, - const char **out_area_name) { +int proj_get_area_of_use(PJ_CONTEXT *ctx, const PJ *obj, + double *out_west_lon_degree, + double *out_south_lat_degree, + double *out_east_lon_degree, + double *out_north_lat_degree, + const char **out_area_name) { (void)ctx; if (out_area_name) { *out_area_name = nullptr; @@ -1445,14 +1443,15 @@ static const GeodeticCRS *extractGeodeticCRS(PJ_CONTEXT *ctx, const PJ *crs, * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error. */ -PJ *proj_obj_crs_get_geodetic_crs(PJ_CONTEXT *ctx, const PJ *crs) { +PJ *proj_crs_get_geodetic_crs(PJ_CONTEXT *ctx, const PJ *crs) { SANITIZE_CTX(ctx); auto geodCRS = extractGeodeticCRS(ctx, crs, __FUNCTION__); if (!geodCRS) { return nullptr; } - return pj_obj_create(ctx, NN_NO_CHECK(nn_dynamic_pointer_cast( - geodCRS->shared_from_this()))); + return pj_obj_create(ctx, + NN_NO_CHECK(nn_dynamic_pointer_cast( + geodCRS->shared_from_this()))); } // --------------------------------------------------------------------------- @@ -1470,8 +1469,7 @@ PJ *proj_obj_crs_get_geodetic_crs(PJ_CONTEXT *ctx, const PJ *crs) { * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error. */ -PJ *proj_obj_crs_get_sub_crs(PJ_CONTEXT *ctx, const PJ *crs, - int index) { +PJ *proj_crs_get_sub_crs(PJ_CONTEXT *ctx, const PJ *crs, int index) { SANITIZE_CTX(ctx); assert(crs); auto l_crs = dynamic_cast(crs->iso_obj.get()); @@ -1501,9 +1499,8 @@ PJ *proj_obj_crs_get_sub_crs(PJ_CONTEXT *ctx, const PJ *crs, * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error. */ -PJ *proj_obj_crs_create_bound_crs(PJ_CONTEXT *ctx, const PJ *base_crs, - const PJ *hub_crs, - const PJ *transformation) { +PJ *proj_crs_create_bound_crs(PJ_CONTEXT *ctx, const PJ *base_crs, + const PJ *hub_crs, const PJ *transformation) { SANITIZE_CTX(ctx); assert(base_crs); assert(hub_crs); @@ -1525,9 +1522,10 @@ PJ *proj_obj_crs_create_bound_crs(PJ_CONTEXT *ctx, const PJ *base_crs, return nullptr; } try { - return pj_obj_create(ctx, BoundCRS::create(NN_NO_CHECK(l_base_crs), - NN_NO_CHECK(l_hub_crs), - NN_NO_CHECK(l_transformation))); + return pj_obj_create(ctx, + BoundCRS::create(NN_NO_CHECK(l_base_crs), + NN_NO_CHECK(l_hub_crs), + NN_NO_CHECK(l_transformation))); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); return nullptr; @@ -1558,9 +1556,8 @@ PJ *proj_obj_crs_create_bound_crs(PJ_CONTEXT *ctx, const PJ *base_crs, * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error. */ -PJ *proj_obj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, - const PJ *crs, - const char *const *options) { +PJ *proj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, const PJ *crs, + const char *const *options) { SANITIZE_CTX(ctx); assert(crs); auto l_crs = dynamic_cast(crs->iso_obj.get()); @@ -1583,7 +1580,7 @@ PJ *proj_obj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, } } return pj_obj_create(ctx, l_crs->createBoundCRSToWGS84IfPossible( - dbContext, allowIntermediateCRS)); + dbContext, allowIntermediateCRS)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); return nullptr; @@ -1603,7 +1600,7 @@ PJ *proj_obj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error. */ -PJ *proj_obj_get_ellipsoid(PJ_CONTEXT *ctx, const PJ *obj) { +PJ *proj_get_ellipsoid(PJ_CONTEXT *ctx, const PJ *obj) { SANITIZE_CTX(ctx); auto ptr = obj->iso_obj.get(); if (dynamic_cast(ptr)) { @@ -1635,7 +1632,7 @@ PJ *proj_obj_get_ellipsoid(PJ_CONTEXT *ctx, const PJ *obj) { * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error. */ -PJ *proj_obj_crs_get_horizontal_datum(PJ_CONTEXT *ctx, const PJ *crs) { +PJ *proj_crs_get_horizontal_datum(PJ_CONTEXT *ctx, const PJ *crs) { SANITIZE_CTX(ctx); auto geodCRS = extractGeodeticCRS(ctx, crs, __FUNCTION__); if (!geodCRS) { @@ -1674,14 +1671,15 @@ PJ *proj_obj_crs_get_horizontal_datum(PJ_CONTEXT *ctx, const PJ *crs) { * flattening. or NULL * @return TRUE in case of success. */ -int proj_obj_ellipsoid_get_parameters(PJ_CONTEXT *ctx, const PJ *ellipsoid, - double *out_semi_major_metre, - double *out_semi_minor_metre, - int *out_is_semi_minor_computed, - double *out_inv_flattening) { +int proj_ellipsoid_get_parameters(PJ_CONTEXT *ctx, const PJ *ellipsoid, + double *out_semi_major_metre, + double *out_semi_minor_metre, + int *out_is_semi_minor_computed, + double *out_inv_flattening) { SANITIZE_CTX(ctx); assert(ellipsoid); - auto l_ellipsoid = dynamic_cast(ellipsoid->iso_obj.get()); + auto l_ellipsoid = + dynamic_cast(ellipsoid->iso_obj.get()); if (!l_ellipsoid) { proj_log_error(ctx, __FUNCTION__, "Object is not a Ellipsoid"); return FALSE; @@ -1718,7 +1716,7 @@ int proj_obj_ellipsoid_get_parameters(PJ_CONTEXT *ctx, const PJ *ellipsoid, * in case of error. */ -PJ *proj_obj_get_prime_meridian(PJ_CONTEXT *ctx, const PJ *obj) { +PJ *proj_get_prime_meridian(PJ_CONTEXT *ctx, const PJ *obj) { SANITIZE_CTX(ctx); auto ptr = obj->iso_obj.get(); if (dynamic_cast(ptr)) { @@ -1751,14 +1749,15 @@ PJ *proj_obj_get_prime_meridian(PJ_CONTEXT *ctx, const PJ *obj) { * or NULL * @return TRUE in case of success. */ -int proj_obj_prime_meridian_get_parameters(PJ_CONTEXT *ctx, - const PJ *prime_meridian, - double *out_longitude, - double *out_unit_conv_factor, - const char **out_unit_name) { +int proj_prime_meridian_get_parameters(PJ_CONTEXT *ctx, + const PJ *prime_meridian, + double *out_longitude, + double *out_unit_conv_factor, + const char **out_unit_name) { SANITIZE_CTX(ctx); assert(prime_meridian); - auto l_pm = dynamic_cast(prime_meridian->iso_obj.get()); + auto l_pm = + dynamic_cast(prime_meridian->iso_obj.get()); if (!l_pm) { proj_log_error(ctx, __FUNCTION__, "Object is not a PrimeMeridian"); return false; @@ -1791,7 +1790,7 @@ int proj_obj_prime_meridian_get_parameters(PJ_CONTEXT *ctx, * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error, or missing source CRS. */ -PJ *proj_obj_get_source_crs(PJ_CONTEXT *ctx, const PJ *obj) { +PJ *proj_get_source_crs(PJ_CONTEXT *ctx, const PJ *obj) { SANITIZE_CTX(ctx); assert(obj); auto ptr = obj->iso_obj.get(); @@ -1830,7 +1829,7 @@ PJ *proj_obj_get_source_crs(PJ_CONTEXT *ctx, const PJ *obj) { * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error, or missing target CRS. */ -PJ *proj_obj_get_target_crs(PJ_CONTEXT *ctx, const PJ *obj) { +PJ *proj_get_target_crs(PJ_CONTEXT *ctx, const PJ *obj) { SANITIZE_CTX(ctx); assert(obj); auto ptr = obj->iso_obj.get(); @@ -1881,15 +1880,14 @@ PJ *proj_obj_get_target_crs(PJ_CONTEXT *ctx, const PJ *obj) { * @param out_confidence Output parameter. Pointer to an array of integers that * will be allocated by the function and filled with the confidence values * (0-100). There are as many elements in this array as - * proj_obj_list_get_count() + * proj_list_get_count() * returns on the return value of this function. *confidence should be * released with proj_int_list_destroy(). * @return a list of matching reference CRS, or nullptr in case of error. */ -PJ_OBJ_LIST *proj_obj_identify(PJ_CONTEXT *ctx, const PJ *obj, - const char *auth_name, - const char *const *options, - int **out_confidence) { +PJ_OBJ_LIST *proj_identify(PJ_CONTEXT *ctx, const PJ *obj, + const char *auth_name, const char *const *options, + int **out_confidence) { SANITIZE_CTX(ctx); assert(obj); (void)options; @@ -1974,7 +1972,7 @@ PROJ_STRING_LIST proj_get_authorities_from_database(PJ_CONTEXT *ctx) { */ PROJ_STRING_LIST proj_get_codes_from_database(PJ_CONTEXT *ctx, const char *auth_name, - PJ_OBJ_TYPE type, + PJ_TYPE type, int allow_deprecated) { assert(auth_name); SANITIZE_CTX(ctx); @@ -2020,7 +2018,7 @@ void proj_string_list_destroy(PROJ_STRING_LIST list) { * @return Object of type SingleOperation that must be unreferenced with * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_crs_get_coordoperation(PJ_CONTEXT *ctx, const PJ *crs) { +PJ *proj_crs_get_coordoperation(PJ_CONTEXT *ctx, const PJ *crs) { SANITIZE_CTX(ctx); assert(crs); SingleOperationPtr co; @@ -2234,12 +2232,14 @@ static GeodeticReferenceFrameNNPtr createGeodeticReferenceFrame( * @return Object of type GeographicCRS that must be unreferenced with * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_create_geographic_crs( - PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, - const char *ellps_name, double semi_major_metre, double inv_flattening, - const char *prime_meridian_name, double prime_meridian_offset, - const char *pm_angular_units, double pm_angular_units_conv, - PJ *ellipsoidal_cs) { +PJ *proj_create_geographic_crs(PJ_CONTEXT *ctx, const char *crs_name, + const char *datum_name, const char *ellps_name, + double semi_major_metre, double inv_flattening, + const char *prime_meridian_name, + double prime_meridian_offset, + const char *pm_angular_units, + double pm_angular_units_conv, + PJ *ellipsoidal_cs) { SANITIZE_CTX(ctx); auto cs = std::dynamic_pointer_cast(ellipsoidal_cs->iso_obj); @@ -2276,10 +2276,8 @@ PJ *proj_obj_create_geographic_crs( * @return Object of type GeographicCRS that must be unreferenced with * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_create_geographic_crs_from_datum(PJ_CONTEXT *ctx, - const char *crs_name, - PJ *datum, - PJ *ellipsoidal_cs) { +PJ *proj_create_geographic_crs_from_datum(PJ_CONTEXT *ctx, const char *crs_name, + PJ *datum, PJ *ellipsoidal_cs) { SANITIZE_CTX(ctx); auto l_datum = @@ -2332,7 +2330,7 @@ PJ *proj_obj_create_geographic_crs_from_datum(PJ_CONTEXT *ctx, * @return Object of type GeodeticCRS that must be unreferenced with * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_create_geocentric_crs( +PJ *proj_create_geocentric_crs( PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, const char *ellps_name, double semi_major_metre, double inv_flattening, const char *prime_meridian_name, double prime_meridian_offset, @@ -2376,11 +2374,10 @@ PJ *proj_obj_create_geocentric_crs( * @return Object of type GeodeticCRS that must be unreferenced with * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_create_geocentric_crs_from_datum(PJ_CONTEXT *ctx, - const char *crs_name, - const PJ *datum, - const char *linear_units, - double linear_units_conv) { +PJ *proj_create_geocentric_crs_from_datum(PJ_CONTEXT *ctx, const char *crs_name, + const PJ *datum, + const char *linear_units, + double linear_units_conv) { SANITIZE_CTX(ctx); try { const UnitOfMeasure linearUnit( @@ -2420,10 +2417,9 @@ PJ *proj_obj_create_geocentric_crs_from_datum(PJ_CONTEXT *ctx, * @return Object of type VerticalCRS that must be unreferenced with * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_create_vertical_crs(PJ_CONTEXT *ctx, const char *crs_name, - const char *datum_name, - const char *linear_units, - double linear_units_conv) { +PJ *proj_create_vertical_crs(PJ_CONTEXT *ctx, const char *crs_name, + const char *datum_name, const char *linear_units, + double linear_units_conv) { SANITIZE_CTX(ctx); try { @@ -2457,8 +2453,8 @@ PJ *proj_obj_create_vertical_crs(PJ_CONTEXT *ctx, const char *crs_name, * @return Object of type CompoundCRS that must be unreferenced with * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name, - PJ *horiz_crs, PJ *vert_crs) { +PJ *proj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name, + PJ *horiz_crs, PJ *vert_crs) { assert(horiz_crs); assert(vert_crs); @@ -2499,8 +2495,7 @@ PJ *proj_obj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name, * @return Object that must be unreferenced with * proj_destroy(), or NULL in case of error. */ -PJ PROJ_DLL *proj_obj_alter_name(PJ_CONTEXT *ctx, const PJ *obj, - const char *name) { +PJ PROJ_DLL *proj_alter_name(PJ_CONTEXT *ctx, const PJ *obj, const char *name) { SANITIZE_CTX(ctx); auto crs = dynamic_cast(obj->iso_obj.get()); if (!crs) { @@ -2532,8 +2527,8 @@ PJ PROJ_DLL *proj_obj_alter_name(PJ_CONTEXT *ctx, const PJ *obj, * @return Object that must be unreferenced with * proj_destroy(), or NULL in case of error. */ -PJ PROJ_DLL *proj_obj_alter_id(PJ_CONTEXT *ctx, const PJ *obj, - const char *auth_name, const char *code) { +PJ PROJ_DLL *proj_alter_id(PJ_CONTEXT *ctx, const PJ *obj, + const char *auth_name, const char *code) { SANITIZE_CTX(ctx); auto crs = dynamic_cast(obj->iso_obj.get()); if (!crs) { @@ -2568,8 +2563,8 @@ PJ PROJ_DLL *proj_obj_alter_id(PJ_CONTEXT *ctx, const PJ *obj, * @return Object that must be unreferenced with * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, const PJ *obj, - const PJ *new_geod_crs) { +PJ *proj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, const PJ *obj, + const PJ *new_geod_crs) { SANITIZE_CTX(ctx); auto l_new_geod_crs = std::dynamic_pointer_cast(new_geod_crs->iso_obj); @@ -2585,8 +2580,8 @@ PJ *proj_obj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, const PJ *obj, } try { - return pj_obj_create(ctx, - crs->alterGeodeticCRS(NN_NO_CHECK(l_new_geod_crs))); + return pj_obj_create( + ctx, crs->alterGeodeticCRS(NN_NO_CHECK(l_new_geod_crs))); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); return nullptr; @@ -2614,14 +2609,14 @@ PJ *proj_obj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, const PJ *obj, * @return Object that must be unreferenced with * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, const PJ *obj, - const char *angular_units, - double angular_units_conv, - const char *unit_auth_name, - const char *unit_code) { +PJ *proj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, const PJ *obj, + const char *angular_units, + double angular_units_conv, + const char *unit_auth_name, + const char *unit_code) { SANITIZE_CTX(ctx); - auto geodCRS = proj_obj_crs_get_geodetic_crs(ctx, obj); + auto geodCRS = proj_crs_get_geodetic_crs(ctx, obj); if (!geodCRS) { return nullptr; } @@ -2635,10 +2630,11 @@ PJ *proj_obj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, const PJ *obj, try { const UnitOfMeasure angUnit(createAngularUnit( angular_units, angular_units_conv, unit_auth_name, unit_code)); - geogCRSAltered = pj_obj_create(ctx, GeographicCRS::create( - createPropertyMapName(proj_obj_get_name(geodCRS)), geogCRS->datum(), - geogCRS->datumEnsemble(), - geogCRS->coordinateSystem()->alterAngularUnit(angUnit))); + geogCRSAltered = pj_obj_create( + ctx, GeographicCRS::create( + createPropertyMapName(proj_get_name(geodCRS)), + geogCRS->datum(), geogCRS->datumEnsemble(), + geogCRS->coordinateSystem()->alterAngularUnit(angUnit))); proj_destroy(geodCRS); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -2646,7 +2642,7 @@ PJ *proj_obj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, const PJ *obj, return nullptr; } - auto ret = proj_obj_crs_alter_geodetic_crs(ctx, obj, geogCRSAltered); + auto ret = proj_crs_alter_geodetic_crs(ctx, obj, geogCRSAltered); proj_destroy(geogCRSAltered); return ret; } @@ -2673,11 +2669,11 @@ PJ *proj_obj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, const PJ *obj, * @return Object that must be unreferenced with * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, const PJ *obj, - const char *linear_units, - double linear_units_conv, - const char *unit_auth_name, - const char *unit_code) { +PJ *proj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, const PJ *obj, + const char *linear_units, + double linear_units_conv, + const char *unit_auth_name, + const char *unit_code) { SANITIZE_CTX(ctx); auto crs = dynamic_cast(obj->iso_obj.get()); if (!crs) { @@ -2720,10 +2716,12 @@ PJ *proj_obj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, const PJ *obj, * @return Object that must be unreferenced with * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_crs_alter_parameters_linear_unit( - PJ_CONTEXT *ctx, const PJ *obj, const char *linear_units, - double linear_units_conv, const char *unit_auth_name, const char *unit_code, - int convert_to_new_unit) { +PJ *proj_crs_alter_parameters_linear_unit(PJ_CONTEXT *ctx, const PJ *obj, + const char *linear_units, + double linear_units_conv, + const char *unit_auth_name, + const char *unit_code, + int convert_to_new_unit) { SANITIZE_CTX(ctx); auto crs = dynamic_cast(obj->iso_obj.get()); if (!crs) { @@ -2734,7 +2732,7 @@ PJ *proj_obj_crs_alter_parameters_linear_unit( const UnitOfMeasure linearUnit(createLinearUnit( linear_units, linear_units_conv, unit_auth_name, unit_code)); return pj_obj_create(ctx, crs->alterParametersLinearUnit( - linearUnit, convert_to_new_unit == TRUE)); + linearUnit, convert_to_new_unit == TRUE)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); return nullptr; @@ -2755,14 +2753,15 @@ PJ *proj_obj_crs_alter_parameters_linear_unit( * @return Object that must be unreferenced with * proj_destroy(), or NULL in case of error. */ -PJ PROJ_DLL *proj_obj_create_engineering_crs(PJ_CONTEXT *ctx, - const char *crs_name) { +PJ PROJ_DLL *proj_create_engineering_crs(PJ_CONTEXT *ctx, + const char *crs_name) { SANITIZE_CTX(ctx); try { - return pj_obj_create(ctx, EngineeringCRS::create( - createPropertyMapName(crs_name), - EngineeringDatum::create(PropertyMap()), - CartesianCS::createEastingNorthing(UnitOfMeasure::METRE))); + return pj_obj_create( + ctx, EngineeringCRS::create( + createPropertyMapName(crs_name), + EngineeringDatum::create(PropertyMap()), + CartesianCS::createEastingNorthing(UnitOfMeasure::METRE))); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); return nullptr; @@ -2862,12 +2861,12 @@ static void setSingleOperationElements( * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_create_conversion(PJ_CONTEXT *ctx, const char *name, - const char *auth_name, const char *code, - const char *method_name, - const char *method_auth_name, - const char *method_code, int param_count, - const PJ_PARAM_DESCRIPTION *params) { +PJ *proj_create_conversion(PJ_CONTEXT *ctx, const char *name, + const char *auth_name, const char *code, + const char *method_name, + const char *method_auth_name, + const char *method_code, int param_count, + const PJ_PARAM_DESCRIPTION *params) { SANITIZE_CTX(ctx); try { PropertyMap propSingleOp; @@ -2879,8 +2878,8 @@ PJ *proj_obj_create_conversion(PJ_CONTEXT *ctx, const char *name, name, auth_name, code, method_name, method_auth_name, method_code, param_count, params, propSingleOp, propMethod, parameters, values); - return pj_obj_create(ctx, - Conversion::create(propSingleOp, propMethod, parameters, values)); + return pj_obj_create(ctx, Conversion::create(propSingleOp, propMethod, + parameters, values)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); return nullptr; @@ -2917,12 +2916,14 @@ PJ *proj_obj_create_conversion(PJ_CONTEXT *ctx, const char *name, * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_create_transformation( - PJ_CONTEXT *ctx, const char *name, const char *auth_name, const char *code, - PJ *source_crs, PJ *target_crs, PJ *interpolation_crs, - const char *method_name, const char *method_auth_name, - const char *method_code, int param_count, - const PJ_PARAM_DESCRIPTION *params, double accuracy) { +PJ *proj_create_transformation(PJ_CONTEXT *ctx, const char *name, + const char *auth_name, const char *code, + PJ *source_crs, PJ *target_crs, + PJ *interpolation_crs, const char *method_name, + const char *method_auth_name, + const char *method_code, int param_count, + const PJ_PARAM_DESCRIPTION *params, + double accuracy) { SANITIZE_CTX(ctx); assert(source_crs); assert(target_crs); @@ -2965,9 +2966,11 @@ PJ *proj_obj_create_transformation( PositionalAccuracy::create(toString(accuracy))); } - return pj_obj_create(ctx, Transformation::create( - propSingleOp, NN_NO_CHECK(l_sourceCRS), NN_NO_CHECK(l_targetCRS), - l_interpolationCRS, propMethod, parameters, values, accuracies)); + return pj_obj_create( + ctx, + Transformation::create(propSingleOp, NN_NO_CHECK(l_sourceCRS), + NN_NO_CHECK(l_targetCRS), l_interpolationCRS, + propMethod, parameters, values, accuracies)); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); return nullptr; @@ -3000,9 +3003,10 @@ PJ *proj_obj_create_transformation( * @return new conversion that must be unreferenced with * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_convert_conversion_to_other_method( - PJ_CONTEXT *ctx, const PJ *conversion, int new_method_epsg_code, - const char *new_method_name) { +PJ *proj_convert_conversion_to_other_method(PJ_CONTEXT *ctx, + const PJ *conversion, + int new_method_epsg_code, + const char *new_method_name) { SANITIZE_CTX(ctx); auto conv = dynamic_cast(conversion->iso_obj.get()); if (!conv) { @@ -3099,8 +3103,8 @@ static CoordinateSystemAxisNNPtr createAxis(const PJ_AXIS_DESCRIPTION &axis) { * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, - int axis_count, const PJ_AXIS_DESCRIPTION *axis) { +PJ *proj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, + int axis_count, const PJ_AXIS_DESCRIPTION *axis) { try { switch (type) { case PJ_CS_TYPE_UNKNOWN: @@ -3108,31 +3112,37 @@ PJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_CARTESIAN: { if (axis_count == 2) { - return pj_obj_create(ctx, CartesianCS::create( - PropertyMap(), createAxis(axis[0]), createAxis(axis[1]))); + return pj_obj_create( + ctx, CartesianCS::create(PropertyMap(), createAxis(axis[0]), + createAxis(axis[1]))); } else if (axis_count == 3) { - return pj_obj_create(ctx, CartesianCS::create( - PropertyMap(), createAxis(axis[0]), createAxis(axis[1]), - createAxis(axis[2]))); + return pj_obj_create( + ctx, CartesianCS::create(PropertyMap(), createAxis(axis[0]), + createAxis(axis[1]), + createAxis(axis[2]))); } break; } case PJ_CS_TYPE_ELLIPSOIDAL: { if (axis_count == 2) { - return pj_obj_create(ctx, EllipsoidalCS::create( - PropertyMap(), createAxis(axis[0]), createAxis(axis[1]))); + return pj_obj_create( + ctx, + EllipsoidalCS::create(PropertyMap(), createAxis(axis[0]), + createAxis(axis[1]))); } else if (axis_count == 3) { - return pj_obj_create(ctx, EllipsoidalCS::create( - PropertyMap(), createAxis(axis[0]), createAxis(axis[1]), - createAxis(axis[2]))); + return pj_obj_create( + ctx, EllipsoidalCS::create( + PropertyMap(), createAxis(axis[0]), + createAxis(axis[1]), createAxis(axis[2]))); } break; } case PJ_CS_TYPE_VERTICAL: { if (axis_count == 1) { - return pj_obj_create(ctx, + return pj_obj_create( + ctx, VerticalCS::create(PropertyMap(), createAxis(axis[0]))); } break; @@ -3140,16 +3150,18 @@ PJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, case PJ_CS_TYPE_SPHERICAL: { if (axis_count == 3) { - return pj_obj_create(ctx, EllipsoidalCS::create( - PropertyMap(), createAxis(axis[0]), createAxis(axis[1]), - createAxis(axis[2]))); + return pj_obj_create( + ctx, EllipsoidalCS::create( + PropertyMap(), createAxis(axis[0]), + createAxis(axis[1]), createAxis(axis[2]))); } break; } case PJ_CS_TYPE_PARAMETRIC: { if (axis_count == 1) { - return pj_obj_create(ctx, + return pj_obj_create( + ctx, ParametricCS::create(PropertyMap(), createAxis(axis[0]))); } break; @@ -3161,29 +3173,33 @@ PJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, axisVector.emplace_back(createAxis(axis[i])); } - return pj_obj_create(ctx, OrdinalCS::create(PropertyMap(), axisVector)); + return pj_obj_create(ctx, + OrdinalCS::create(PropertyMap(), axisVector)); } case PJ_CS_TYPE_DATETIMETEMPORAL: { if (axis_count == 1) { - return pj_obj_create(ctx, DateTimeTemporalCS::create( - PropertyMap(), createAxis(axis[0]))); + return pj_obj_create( + ctx, DateTimeTemporalCS::create(PropertyMap(), + createAxis(axis[0]))); } break; } case PJ_CS_TYPE_TEMPORALCOUNT: { if (axis_count == 1) { - return pj_obj_create(ctx, TemporalCountCS::create( - PropertyMap(), createAxis(axis[0]))); + return pj_obj_create( + ctx, TemporalCountCS::create(PropertyMap(), + createAxis(axis[0]))); } break; } case PJ_CS_TYPE_TEMPORALMEASURE: { if (axis_count == 1) { - return pj_obj_create(ctx, TemporalMeasureCS::create( - PropertyMap(), createAxis(axis[0]))); + return pj_obj_create( + ctx, TemporalMeasureCS::create(PropertyMap(), + createAxis(axis[0]))); } break; } @@ -3214,33 +3230,35 @@ PJ *proj_obj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, - PJ_CARTESIAN_CS_2D_TYPE type, - const char *unit_name, - double unit_conv_factor) { +PJ *proj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, PJ_CARTESIAN_CS_2D_TYPE type, + const char *unit_name, + double unit_conv_factor) { try { switch (type) { case PJ_CART2D_EASTING_NORTHING: - return pj_obj_create(ctx, CartesianCS::createEastingNorthing( - createLinearUnit(unit_name, unit_conv_factor))); + return pj_obj_create( + ctx, CartesianCS::createEastingNorthing( + createLinearUnit(unit_name, unit_conv_factor))); case PJ_CART2D_NORTHING_EASTING: - return pj_obj_create(ctx, CartesianCS::createNorthingEasting( - createLinearUnit(unit_name, unit_conv_factor))); + return pj_obj_create( + ctx, CartesianCS::createNorthingEasting( + createLinearUnit(unit_name, unit_conv_factor))); case PJ_CART2D_NORTH_POLE_EASTING_SOUTH_NORTHING_SOUTH: - return pj_obj_create(ctx, - CartesianCS::createNorthPoleEastingSouthNorthingSouth( - createLinearUnit(unit_name, unit_conv_factor))); + return pj_obj_create( + ctx, CartesianCS::createNorthPoleEastingSouthNorthingSouth( + createLinearUnit(unit_name, unit_conv_factor))); case PJ_CART2D_SOUTH_POLE_EASTING_NORTH_NORTHING_NORTH: - return pj_obj_create(ctx, - CartesianCS::createSouthPoleEastingNorthNorthingNorth( - createLinearUnit(unit_name, unit_conv_factor))); + return pj_obj_create( + ctx, CartesianCS::createSouthPoleEastingNorthNorthingNorth( + createLinearUnit(unit_name, unit_conv_factor))); case PJ_CART2D_WESTING_SOUTHING: - return pj_obj_create(ctx, CartesianCS::createWestingSouthing( - createLinearUnit(unit_name, unit_conv_factor))); + return pj_obj_create( + ctx, CartesianCS::createWestingSouthing( + createLinearUnit(unit_name, unit_conv_factor))); } } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -3265,19 +3283,21 @@ PJ *proj_obj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, - PJ_ELLIPSOIDAL_CS_2D_TYPE type, - const char *unit_name, - double unit_conv_factor) { +PJ *proj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, + PJ_ELLIPSOIDAL_CS_2D_TYPE type, + const char *unit_name, + double unit_conv_factor) { try { switch (type) { case PJ_ELLPS2D_LONGITUDE_LATITUDE: - return pj_obj_create(ctx, EllipsoidalCS::createLongitudeLatitude( - createAngularUnit(unit_name, unit_conv_factor))); + return pj_obj_create( + ctx, EllipsoidalCS::createLongitudeLatitude( + createAngularUnit(unit_name, unit_conv_factor))); case PJ_ELLPS2D_LATITUDE_LONGITUDE: - return pj_obj_create(ctx, EllipsoidalCS::createLatitudeLongitude( - createAngularUnit(unit_name, unit_conv_factor))); + return pj_obj_create( + ctx, EllipsoidalCS::createLatitudeLongitude( + createAngularUnit(unit_name, unit_conv_factor))); } } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); @@ -3303,10 +3323,9 @@ PJ *proj_obj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, * proj_destroy(), or NULL in case of error. */ -PJ *proj_obj_create_projected_crs(PJ_CONTEXT *ctx, const char *crs_name, - const PJ *geodetic_crs, - const PJ *conversion, - const PJ *coordinate_system) { +PJ *proj_create_projected_crs(PJ_CONTEXT *ctx, const char *crs_name, + const PJ *geodetic_crs, const PJ *conversion, + const PJ *coordinate_system) { SANITIZE_CTX(ctx); auto geodCRS = std::dynamic_pointer_cast(geodetic_crs->iso_obj); @@ -3323,9 +3342,10 @@ PJ *proj_obj_create_projected_crs(PJ_CONTEXT *ctx, const char *crs_name, return nullptr; } try { - return pj_obj_create(ctx, ProjectedCRS::create( - createPropertyMapName(crs_name), NN_NO_CHECK(geodCRS), - NN_NO_CHECK(conv), NN_NO_CHECK(cs))); + return pj_obj_create( + ctx, ProjectedCRS::create(createPropertyMapName(crs_name), + NN_NO_CHECK(geodCRS), NN_NO_CHECK(conv), + NN_NO_CHECK(cs))); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3336,8 +3356,8 @@ PJ *proj_obj_create_projected_crs(PJ_CONTEXT *ctx, const char *crs_name, //! @cond Doxygen_Suppress -static PJ *proj_obj_create_conversion(PJ_CONTEXT* ctx, - const ConversionNNPtr &conv) { +static PJ *proj_create_conversion(PJ_CONTEXT *ctx, + const ConversionNNPtr &conv) { return pj_obj_create(ctx, conv); } @@ -3355,11 +3375,11 @@ static PJ *proj_obj_create_conversion(PJ_CONTEXT* ctx, * Linear parameters are expressed in (linear_unit_name, * linear_unit_conv_factor). */ -PJ *proj_obj_create_conversion_utm(PJ_CONTEXT *ctx, int zone, int north) { +PJ *proj_create_conversion_utm(PJ_CONTEXT *ctx, int zone, int north) { SANITIZE_CTX(ctx); try { auto conv = Conversion::createUTM(PropertyMap(), zone, north != 0); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3376,7 +3396,7 @@ PJ *proj_obj_create_conversion_utm(PJ_CONTEXT *ctx, int zone, int north) { * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_transverse_mercator( +PJ *proj_create_conversion_transverse_mercator( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3392,7 +3412,7 @@ PJ *proj_obj_create_conversion_transverse_mercator( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3410,7 +3430,7 @@ PJ *proj_obj_create_conversion_transverse_mercator( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_gauss_schreiber_transverse_mercator( +PJ *proj_create_conversion_gauss_schreiber_transverse_mercator( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3426,7 +3446,7 @@ PJ *proj_obj_create_conversion_gauss_schreiber_transverse_mercator( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3444,7 +3464,7 @@ PJ *proj_obj_create_conversion_gauss_schreiber_transverse_mercator( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_transverse_mercator_south_oriented( +PJ *proj_create_conversion_transverse_mercator_south_oriented( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3460,7 +3480,7 @@ PJ *proj_obj_create_conversion_transverse_mercator_south_oriented( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3477,7 +3497,7 @@ PJ *proj_obj_create_conversion_transverse_mercator_south_oriented( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_two_point_equidistant( +PJ *proj_create_conversion_two_point_equidistant( PJ_CONTEXT *ctx, double latitude_first_point, double longitude_first_point, double latitude_second_point, double longitude_secon_point, double false_easting, double false_northing, const char *ang_unit_name, @@ -3496,7 +3516,7 @@ PJ *proj_obj_create_conversion_two_point_equidistant( Angle(longitude_secon_point, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3513,7 +3533,7 @@ PJ *proj_obj_create_conversion_two_point_equidistant( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_tunisia_mapping_grid( +PJ *proj_create_conversion_tunisia_mapping_grid( PJ_CONTEXT *ctx, double center_lat, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3528,7 +3548,7 @@ PJ *proj_obj_create_conversion_tunisia_mapping_grid( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3545,7 +3565,7 @@ PJ *proj_obj_create_conversion_tunisia_mapping_grid( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_albers_equal_area( +PJ *proj_create_conversion_albers_equal_area( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, double latitude_first_parallel, double latitude_second_parallel, double easting_false_origin, @@ -3565,7 +3585,7 @@ PJ *proj_obj_create_conversion_albers_equal_area( Angle(latitude_second_parallel, angUnit), Length(easting_false_origin, linearUnit), Length(northing_false_origin, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3582,7 +3602,7 @@ PJ *proj_obj_create_conversion_albers_equal_area( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_lambert_conic_conformal_1sp( +PJ *proj_create_conversion_lambert_conic_conformal_1sp( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3598,7 +3618,7 @@ PJ *proj_obj_create_conversion_lambert_conic_conformal_1sp( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3615,7 +3635,7 @@ PJ *proj_obj_create_conversion_lambert_conic_conformal_1sp( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_lambert_conic_conformal_2sp( +PJ *proj_create_conversion_lambert_conic_conformal_2sp( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, double latitude_first_parallel, double latitude_second_parallel, double easting_false_origin, @@ -3635,7 +3655,7 @@ PJ *proj_obj_create_conversion_lambert_conic_conformal_2sp( Angle(latitude_second_parallel, angUnit), Length(easting_false_origin, linearUnit), Length(northing_false_origin, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3653,7 +3673,7 @@ PJ *proj_obj_create_conversion_lambert_conic_conformal_2sp( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_lambert_conic_conformal_2sp_michigan( +PJ *proj_create_conversion_lambert_conic_conformal_2sp_michigan( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, double latitude_first_parallel, double latitude_second_parallel, double easting_false_origin, @@ -3674,7 +3694,7 @@ PJ *proj_obj_create_conversion_lambert_conic_conformal_2sp_michigan( Length(easting_false_origin, linearUnit), Length(northing_false_origin, linearUnit), Scale(ellipsoid_scaling_factor)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3692,7 +3712,7 @@ PJ *proj_obj_create_conversion_lambert_conic_conformal_2sp_michigan( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_lambert_conic_conformal_2sp_belgium( +PJ *proj_create_conversion_lambert_conic_conformal_2sp_belgium( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, double latitude_first_parallel, double latitude_second_parallel, double easting_false_origin, @@ -3712,7 +3732,7 @@ PJ *proj_obj_create_conversion_lambert_conic_conformal_2sp_belgium( Angle(latitude_second_parallel, angUnit), Length(easting_false_origin, linearUnit), Length(northing_false_origin, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3729,7 +3749,7 @@ PJ *proj_obj_create_conversion_lambert_conic_conformal_2sp_belgium( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_azimuthal_equidistant( +PJ *proj_create_conversion_azimuthal_equidistant( PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3745,7 +3765,7 @@ PJ *proj_obj_create_conversion_azimuthal_equidistant( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3762,7 +3782,7 @@ PJ *proj_obj_create_conversion_azimuthal_equidistant( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_guam_projection( +PJ *proj_create_conversion_guam_projection( PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3778,7 +3798,7 @@ PJ *proj_obj_create_conversion_guam_projection( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3795,11 +3815,13 @@ PJ *proj_obj_create_conversion_guam_projection( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_bonne( - PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_bonne(PJ_CONTEXT *ctx, double latitude_nat_origin, + double longitude_nat_origin, + double false_easting, double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -3811,7 +3833,7 @@ PJ *proj_obj_create_conversion_bonne( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3829,7 +3851,7 @@ PJ *proj_obj_create_conversion_bonne( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_lambert_cylindrical_equal_area_spherical( +PJ *proj_create_conversion_lambert_cylindrical_equal_area_spherical( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, @@ -3845,7 +3867,7 @@ PJ *proj_obj_create_conversion_lambert_cylindrical_equal_area_spherical( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3862,7 +3884,7 @@ PJ *proj_obj_create_conversion_lambert_cylindrical_equal_area_spherical( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_lambert_cylindrical_equal_area( +PJ *proj_create_conversion_lambert_cylindrical_equal_area( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, @@ -3878,7 +3900,7 @@ PJ *proj_obj_create_conversion_lambert_cylindrical_equal_area( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3895,7 +3917,7 @@ PJ *proj_obj_create_conversion_lambert_cylindrical_equal_area( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_cassini_soldner( +PJ *proj_create_conversion_cassini_soldner( PJ_CONTEXT *ctx, double center_lat, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -3910,7 +3932,7 @@ PJ *proj_obj_create_conversion_cassini_soldner( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3927,7 +3949,7 @@ PJ *proj_obj_create_conversion_cassini_soldner( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_equidistant_conic( +PJ *proj_create_conversion_equidistant_conic( PJ_CONTEXT *ctx, double center_lat, double center_long, double latitude_first_parallel, double latitude_second_parallel, double false_easting, double false_northing, const char *ang_unit_name, @@ -3946,7 +3968,7 @@ PJ *proj_obj_create_conversion_equidistant_conic( Angle(latitude_second_parallel, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3963,13 +3985,12 @@ PJ *proj_obj_create_conversion_equidistant_conic( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_eckert_i(PJ_CONTEXT *ctx, double center_long, - double false_easting, - double false_northing, - const char *ang_unit_name, - double ang_unit_conv_factor, - const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_eckert_i(PJ_CONTEXT *ctx, double center_long, + double false_easting, double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -3980,7 +4001,7 @@ PJ *proj_obj_create_conversion_eckert_i(PJ_CONTEXT *ctx, double center_long, PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -3997,11 +4018,13 @@ PJ *proj_obj_create_conversion_eckert_i(PJ_CONTEXT *ctx, double center_long, * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_eckert_ii( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_eckert_ii(PJ_CONTEXT *ctx, double center_long, + double false_easting, + double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -4012,7 +4035,7 @@ PJ *proj_obj_create_conversion_eckert_ii( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4029,11 +4052,13 @@ PJ *proj_obj_create_conversion_eckert_ii( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_eckert_iii( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_eckert_iii(PJ_CONTEXT *ctx, double center_long, + double false_easting, + double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -4044,7 +4069,7 @@ PJ *proj_obj_create_conversion_eckert_iii( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4061,11 +4086,13 @@ PJ *proj_obj_create_conversion_eckert_iii( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_eckert_iv( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_eckert_iv(PJ_CONTEXT *ctx, double center_long, + double false_easting, + double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -4076,7 +4103,7 @@ PJ *proj_obj_create_conversion_eckert_iv( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4093,13 +4120,12 @@ PJ *proj_obj_create_conversion_eckert_iv( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_eckert_v(PJ_CONTEXT *ctx, double center_long, - double false_easting, - double false_northing, - const char *ang_unit_name, - double ang_unit_conv_factor, - const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_eckert_v(PJ_CONTEXT *ctx, double center_long, + double false_easting, double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -4110,7 +4136,7 @@ PJ *proj_obj_create_conversion_eckert_v(PJ_CONTEXT *ctx, double center_long, PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4127,11 +4153,13 @@ PJ *proj_obj_create_conversion_eckert_v(PJ_CONTEXT *ctx, double center_long, * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_eckert_vi( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_eckert_vi(PJ_CONTEXT *ctx, double center_long, + double false_easting, + double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -4142,7 +4170,7 @@ PJ *proj_obj_create_conversion_eckert_vi( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4159,7 +4187,7 @@ PJ *proj_obj_create_conversion_eckert_vi( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_equidistant_cylindrical( +PJ *proj_create_conversion_equidistant_cylindrical( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, @@ -4175,7 +4203,7 @@ PJ *proj_obj_create_conversion_equidistant_cylindrical( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4193,7 +4221,7 @@ PJ *proj_obj_create_conversion_equidistant_cylindrical( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_equidistant_cylindrical_spherical( +PJ *proj_create_conversion_equidistant_cylindrical_spherical( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, @@ -4209,7 +4237,7 @@ PJ *proj_obj_create_conversion_equidistant_cylindrical_spherical( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4226,13 +4254,12 @@ PJ *proj_obj_create_conversion_equidistant_cylindrical_spherical( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_gall(PJ_CONTEXT *ctx, double center_long, - double false_easting, - double false_northing, - const char *ang_unit_name, - double ang_unit_conv_factor, - const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_gall(PJ_CONTEXT *ctx, double center_long, + double false_easting, double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -4243,7 +4270,7 @@ PJ *proj_obj_create_conversion_gall(PJ_CONTEXT *ctx, double center_long, Conversion::createGall(PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4260,11 +4287,13 @@ PJ *proj_obj_create_conversion_gall(PJ_CONTEXT *ctx, double center_long, * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_goode_homolosine( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_goode_homolosine(PJ_CONTEXT *ctx, double center_long, + double false_easting, + double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -4275,7 +4304,7 @@ PJ *proj_obj_create_conversion_goode_homolosine( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4292,7 +4321,7 @@ PJ *proj_obj_create_conversion_goode_homolosine( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_interrupted_goode_homolosine( +PJ *proj_create_conversion_interrupted_goode_homolosine( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4307,7 +4336,7 @@ PJ *proj_obj_create_conversion_interrupted_goode_homolosine( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4325,7 +4354,7 @@ PJ *proj_obj_create_conversion_interrupted_goode_homolosine( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_geostationary_satellite_sweep_x( +PJ *proj_create_conversion_geostationary_satellite_sweep_x( PJ_CONTEXT *ctx, double center_long, double height, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4340,7 +4369,7 @@ PJ *proj_obj_create_conversion_geostationary_satellite_sweep_x( PropertyMap(), Angle(center_long, angUnit), Length(height, linearUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4358,7 +4387,7 @@ PJ *proj_obj_create_conversion_geostationary_satellite_sweep_x( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_geostationary_satellite_sweep_y( +PJ *proj_create_conversion_geostationary_satellite_sweep_y( PJ_CONTEXT *ctx, double center_long, double height, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4373,7 +4402,7 @@ PJ *proj_obj_create_conversion_geostationary_satellite_sweep_y( PropertyMap(), Angle(center_long, angUnit), Length(height, linearUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4390,11 +4419,13 @@ PJ *proj_obj_create_conversion_geostationary_satellite_sweep_y( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_gnomonic( - PJ_CONTEXT *ctx, double center_lat, double center_long, - double false_easting, double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_gnomonic(PJ_CONTEXT *ctx, double center_lat, + double center_long, double false_easting, + double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -4405,7 +4436,7 @@ PJ *proj_obj_create_conversion_gnomonic( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4423,7 +4454,7 @@ PJ *proj_obj_create_conversion_gnomonic( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_hotine_oblique_mercator_variant_a( +PJ *proj_create_conversion_hotine_oblique_mercator_variant_a( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_projection_centre, double azimuth_initial_line, double angle_from_rectified_to_skrew_grid, double scale, @@ -4443,7 +4474,7 @@ PJ *proj_obj_create_conversion_hotine_oblique_mercator_variant_a( Angle(angle_from_rectified_to_skrew_grid, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4461,7 +4492,7 @@ PJ *proj_obj_create_conversion_hotine_oblique_mercator_variant_a( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_hotine_oblique_mercator_variant_b( +PJ *proj_create_conversion_hotine_oblique_mercator_variant_b( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_projection_centre, double azimuth_initial_line, double angle_from_rectified_to_skrew_grid, double scale, @@ -4481,7 +4512,7 @@ PJ *proj_obj_create_conversion_hotine_oblique_mercator_variant_b( Angle(angle_from_rectified_to_skrew_grid, angUnit), Scale(scale), Length(easting_projection_centre, linearUnit), Length(northing_projection_centre, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4499,8 +4530,7 @@ PJ *proj_obj_create_conversion_hotine_oblique_mercator_variant_b( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ * -proj_obj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( +PJ *proj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( PJ_CONTEXT *ctx, double latitude_projection_centre, double latitude_point1, double longitude_point1, double latitude_point2, double longitude_point2, double scale, double easting_projection_centre, @@ -4522,7 +4552,7 @@ proj_obj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( Angle(longitude_point2, angUnit), Scale(scale), Length(easting_projection_centre, linearUnit), Length(northing_projection_centre, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4540,7 +4570,7 @@ proj_obj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_laborde_oblique_mercator( +PJ *proj_create_conversion_laborde_oblique_mercator( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_projection_centre, double azimuth_initial_line, double scale, double false_easting, double false_northing, @@ -4558,7 +4588,7 @@ PJ *proj_obj_create_conversion_laborde_oblique_mercator( Angle(azimuth_initial_line, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4576,7 +4606,7 @@ PJ *proj_obj_create_conversion_laborde_oblique_mercator( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_international_map_world_polyconic( +PJ *proj_create_conversion_international_map_world_polyconic( PJ_CONTEXT *ctx, double center_long, double latitude_first_parallel, double latitude_second_parallel, double false_easting, double false_northing, const char *ang_unit_name, @@ -4594,7 +4624,7 @@ PJ *proj_obj_create_conversion_international_map_world_polyconic( Angle(latitude_second_parallel, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4611,7 +4641,7 @@ PJ *proj_obj_create_conversion_international_map_world_polyconic( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_krovak_north_oriented( +PJ *proj_create_conversion_krovak_north_oriented( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_of_origin, double colatitude_cone_axis, double latitude_pseudo_standard_parallel, @@ -4633,7 +4663,7 @@ PJ *proj_obj_create_conversion_krovak_north_oriented( Scale(scale_factor_pseudo_standard_parallel), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4650,7 +4680,7 @@ PJ *proj_obj_create_conversion_krovak_north_oriented( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_krovak( +PJ *proj_create_conversion_krovak( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_of_origin, double colatitude_cone_axis, double latitude_pseudo_standard_parallel, @@ -4672,7 +4702,7 @@ PJ *proj_obj_create_conversion_krovak( Scale(scale_factor_pseudo_standard_parallel), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4689,7 +4719,7 @@ PJ *proj_obj_create_conversion_krovak( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_lambert_azimuthal_equal_area( +PJ *proj_create_conversion_lambert_azimuthal_equal_area( PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4705,7 +4735,7 @@ PJ *proj_obj_create_conversion_lambert_azimuthal_equal_area( Angle(longitude_nat_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4722,7 +4752,7 @@ PJ *proj_obj_create_conversion_lambert_azimuthal_equal_area( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_miller_cylindrical( +PJ *proj_create_conversion_miller_cylindrical( PJ_CONTEXT *ctx, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4737,7 +4767,7 @@ PJ *proj_obj_create_conversion_miller_cylindrical( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4754,7 +4784,7 @@ PJ *proj_obj_create_conversion_miller_cylindrical( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_mercator_variant_a( +PJ *proj_create_conversion_mercator_variant_a( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4770,7 +4800,7 @@ PJ *proj_obj_create_conversion_mercator_variant_a( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4787,7 +4817,7 @@ PJ *proj_obj_create_conversion_mercator_variant_a( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_mercator_variant_b( +PJ *proj_create_conversion_mercator_variant_b( PJ_CONTEXT *ctx, double latitude_first_parallel, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4802,7 +4832,7 @@ PJ *proj_obj_create_conversion_mercator_variant_b( PropertyMap(), Angle(latitude_first_parallel, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4820,7 +4850,7 @@ PJ *proj_obj_create_conversion_mercator_variant_b( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_popular_visualisation_pseudo_mercator( +PJ *proj_create_conversion_popular_visualisation_pseudo_mercator( PJ_CONTEXT *ctx, double center_lat, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4835,7 +4865,7 @@ PJ *proj_obj_create_conversion_popular_visualisation_pseudo_mercator( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4852,11 +4882,13 @@ PJ *proj_obj_create_conversion_popular_visualisation_pseudo_mercator( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_mollweide( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_mollweide(PJ_CONTEXT *ctx, double center_long, + double false_easting, + double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -4867,7 +4899,7 @@ PJ *proj_obj_create_conversion_mollweide( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4884,7 +4916,7 @@ PJ *proj_obj_create_conversion_mollweide( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_new_zealand_mapping_grid( +PJ *proj_create_conversion_new_zealand_mapping_grid( PJ_CONTEXT *ctx, double center_lat, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4899,7 +4931,7 @@ PJ *proj_obj_create_conversion_new_zealand_mapping_grid( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4916,7 +4948,7 @@ PJ *proj_obj_create_conversion_new_zealand_mapping_grid( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_oblique_stereographic( +PJ *proj_create_conversion_oblique_stereographic( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4932,7 +4964,7 @@ PJ *proj_obj_create_conversion_oblique_stereographic( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4949,7 +4981,7 @@ PJ *proj_obj_create_conversion_oblique_stereographic( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_orthographic( +PJ *proj_create_conversion_orthographic( PJ_CONTEXT *ctx, double center_lat, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4964,7 +4996,7 @@ PJ *proj_obj_create_conversion_orthographic( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -4981,7 +5013,7 @@ PJ *proj_obj_create_conversion_orthographic( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_american_polyconic( +PJ *proj_create_conversion_american_polyconic( PJ_CONTEXT *ctx, double center_lat, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -4996,7 +5028,7 @@ PJ *proj_obj_create_conversion_american_polyconic( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5013,7 +5045,7 @@ PJ *proj_obj_create_conversion_american_polyconic( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_polar_stereographic_variant_a( +PJ *proj_create_conversion_polar_stereographic_variant_a( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -5029,7 +5061,7 @@ PJ *proj_obj_create_conversion_polar_stereographic_variant_a( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5046,7 +5078,7 @@ PJ *proj_obj_create_conversion_polar_stereographic_variant_a( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_polar_stereographic_variant_b( +PJ *proj_create_conversion_polar_stereographic_variant_b( PJ_CONTEXT *ctx, double latitude_standard_parallel, double longitude_of_origin, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, @@ -5062,7 +5094,7 @@ PJ *proj_obj_create_conversion_polar_stereographic_variant_b( Angle(longitude_of_origin, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5079,13 +5111,12 @@ PJ *proj_obj_create_conversion_polar_stereographic_variant_b( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_robinson(PJ_CONTEXT *ctx, double center_long, - double false_easting, - double false_northing, - const char *ang_unit_name, - double ang_unit_conv_factor, - const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_robinson(PJ_CONTEXT *ctx, double center_long, + double false_easting, double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -5096,7 +5127,7 @@ PJ *proj_obj_create_conversion_robinson(PJ_CONTEXT *ctx, double center_long, PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5113,11 +5144,13 @@ PJ *proj_obj_create_conversion_robinson(PJ_CONTEXT *ctx, double center_long, * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_sinusoidal( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_sinusoidal(PJ_CONTEXT *ctx, double center_long, + double false_easting, + double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -5128,7 +5161,7 @@ PJ *proj_obj_create_conversion_sinusoidal( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5145,7 +5178,7 @@ PJ *proj_obj_create_conversion_sinusoidal( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_stereographic( +PJ *proj_create_conversion_stereographic( PJ_CONTEXT *ctx, double center_lat, double center_long, double scale, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -5161,7 +5194,7 @@ PJ *proj_obj_create_conversion_stereographic( Angle(center_long, angUnit), Scale(scale), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5178,11 +5211,13 @@ PJ *proj_obj_create_conversion_stereographic( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_van_der_grinten( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_van_der_grinten(PJ_CONTEXT *ctx, double center_long, + double false_easting, + double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -5193,7 +5228,7 @@ PJ *proj_obj_create_conversion_van_der_grinten( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5210,13 +5245,12 @@ PJ *proj_obj_create_conversion_van_der_grinten( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_wagner_i(PJ_CONTEXT *ctx, double center_long, - double false_easting, - double false_northing, - const char *ang_unit_name, - double ang_unit_conv_factor, - const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_wagner_i(PJ_CONTEXT *ctx, double center_long, + double false_easting, double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -5227,7 +5261,7 @@ PJ *proj_obj_create_conversion_wagner_i(PJ_CONTEXT *ctx, double center_long, PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5244,11 +5278,13 @@ PJ *proj_obj_create_conversion_wagner_i(PJ_CONTEXT *ctx, double center_long, * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_wagner_ii( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_wagner_ii(PJ_CONTEXT *ctx, double center_long, + double false_easting, + double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -5259,7 +5295,7 @@ PJ *proj_obj_create_conversion_wagner_ii( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5276,7 +5312,7 @@ PJ *proj_obj_create_conversion_wagner_ii( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_wagner_iii( +PJ *proj_create_conversion_wagner_iii( PJ_CONTEXT *ctx, double latitude_true_scale, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -5291,7 +5327,7 @@ PJ *proj_obj_create_conversion_wagner_iii( PropertyMap(), Angle(latitude_true_scale, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5308,11 +5344,13 @@ PJ *proj_obj_create_conversion_wagner_iii( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_wagner_iv( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_wagner_iv(PJ_CONTEXT *ctx, double center_long, + double false_easting, + double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -5323,7 +5361,7 @@ PJ *proj_obj_create_conversion_wagner_iv( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5340,13 +5378,12 @@ PJ *proj_obj_create_conversion_wagner_iv( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_wagner_v(PJ_CONTEXT *ctx, double center_long, - double false_easting, - double false_northing, - const char *ang_unit_name, - double ang_unit_conv_factor, - const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_wagner_v(PJ_CONTEXT *ctx, double center_long, + double false_easting, double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -5357,7 +5394,7 @@ PJ *proj_obj_create_conversion_wagner_v(PJ_CONTEXT *ctx, double center_long, PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5374,11 +5411,13 @@ PJ *proj_obj_create_conversion_wagner_v(PJ_CONTEXT *ctx, double center_long, * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_wagner_vi( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_wagner_vi(PJ_CONTEXT *ctx, double center_long, + double false_easting, + double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -5389,7 +5428,7 @@ PJ *proj_obj_create_conversion_wagner_vi( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5406,11 +5445,13 @@ PJ *proj_obj_create_conversion_wagner_vi( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_wagner_vii( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_wagner_vii(PJ_CONTEXT *ctx, double center_long, + double false_easting, + double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -5421,7 +5462,7 @@ PJ *proj_obj_create_conversion_wagner_vii( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5439,7 +5480,7 @@ PJ *proj_obj_create_conversion_wagner_vii( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_quadrilateralized_spherical_cube( +PJ *proj_create_conversion_quadrilateralized_spherical_cube( PJ_CONTEXT *ctx, double center_lat, double center_long, double false_easting, double false_northing, const char *ang_unit_name, double ang_unit_conv_factor, const char *linear_unit_name, @@ -5454,7 +5495,7 @@ PJ *proj_obj_create_conversion_quadrilateralized_spherical_cube( PropertyMap(), Angle(center_lat, angUnit), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5471,7 +5512,7 @@ PJ *proj_obj_create_conversion_quadrilateralized_spherical_cube( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_spherical_cross_track_height( +PJ *proj_create_conversion_spherical_cross_track_height( PJ_CONTEXT *ctx, double peg_point_lat, double peg_point_long, double peg_point_heading, double peg_point_height, const char *ang_unit_name, double ang_unit_conv_factor, @@ -5486,7 +5527,7 @@ PJ *proj_obj_create_conversion_spherical_cross_track_height( PropertyMap(), Angle(peg_point_lat, angUnit), Angle(peg_point_long, angUnit), Angle(peg_point_heading, angUnit), Length(peg_point_height, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5503,11 +5544,13 @@ PJ *proj_obj_create_conversion_spherical_cross_track_height( * linear_unit_conv_factor). * Angular parameters are expressed in (ang_unit_name, ang_unit_conv_factor). */ -PJ *proj_obj_create_conversion_equal_earth( - PJ_CONTEXT *ctx, double center_long, double false_easting, - double false_northing, const char *ang_unit_name, - double ang_unit_conv_factor, const char *linear_unit_name, - double linear_unit_conv_factor) { +PJ *proj_create_conversion_equal_earth(PJ_CONTEXT *ctx, double center_long, + double false_easting, + double false_northing, + const char *ang_unit_name, + double ang_unit_conv_factor, + const char *linear_unit_name, + double linear_unit_conv_factor) { SANITIZE_CTX(ctx); try { UnitOfMeasure linearUnit( @@ -5518,7 +5561,7 @@ PJ *proj_obj_create_conversion_equal_earth( PropertyMap(), Angle(center_long, angUnit), Length(false_easting, linearUnit), Length(false_northing, linearUnit)); - return proj_obj_create_conversion(ctx, conv); + return proj_create_conversion(ctx, conv); } catch (const std::exception &e) { proj_log_error(ctx, __FUNCTION__, e.what()); } @@ -5541,8 +5584,8 @@ PJ *proj_obj_create_conversion_equal_earth( int proj_coordoperation_is_instanciable(PJ_CONTEXT *ctx, const PJ *coordoperation) { assert(coordoperation); - auto op = - dynamic_cast(coordoperation->iso_obj.get()); + auto op = dynamic_cast( + coordoperation->iso_obj.get()); if (!op) { proj_log_error(ctx, __FUNCTION__, "Object is not a CoordinateOperation"); @@ -5569,7 +5612,8 @@ int proj_coordoperation_get_param_count(PJ_CONTEXT *ctx, const PJ *coordoperation) { SANITIZE_CTX(ctx); assert(coordoperation); - auto op = dynamic_cast(coordoperation->iso_obj.get()); + auto op = + dynamic_cast(coordoperation->iso_obj.get()); if (!op) { proj_log_error(ctx, __FUNCTION__, "Object is not a SingleOperation"); return 0; @@ -5594,7 +5638,8 @@ int proj_coordoperation_get_param_index(PJ_CONTEXT *ctx, SANITIZE_CTX(ctx); assert(coordoperation); assert(name); - auto op = dynamic_cast(coordoperation->iso_obj.get()); + auto op = + dynamic_cast(coordoperation->iso_obj.get()); if (!op) { proj_log_error(ctx, __FUNCTION__, "Object is not a SingleOperation"); return -1; @@ -5643,15 +5688,15 @@ int proj_coordoperation_get_param_index(PJ_CONTEXT *ctx, */ int proj_coordoperation_get_param( - PJ_CONTEXT *ctx, const PJ *coordoperation, int index, - const char **out_name, const char **out_auth_name, const char **out_code, - double *out_value, const char **out_value_string, - double *out_unit_conv_factor, const char **out_unit_name, - const char **out_unit_auth_name, const char **out_unit_code, - const char **out_unit_category) { + PJ_CONTEXT *ctx, const PJ *coordoperation, int index, const char **out_name, + const char **out_auth_name, const char **out_code, double *out_value, + const char **out_value_string, double *out_unit_conv_factor, + const char **out_unit_name, const char **out_unit_auth_name, + const char **out_unit_code, const char **out_unit_category) { SANITIZE_CTX(ctx); assert(coordoperation); - auto op = dynamic_cast(coordoperation->iso_obj.get()); + auto op = + dynamic_cast(coordoperation->iso_obj.get()); if (!op) { proj_log_error(ctx, __FUNCTION__, "Object is not a SingleOperation"); return false; @@ -5807,8 +5852,8 @@ int proj_coordoperation_get_grid_used_count(PJ_CONTEXT *ctx, const PJ *coordoperation) { SANITIZE_CTX(ctx); assert(coordoperation); - auto co = - dynamic_cast(coordoperation->iso_obj.get()); + auto co = dynamic_cast( + coordoperation->iso_obj.get()); if (!co) { proj_log_error(ctx, __FUNCTION__, "Object is not a CoordinateOperation"); @@ -6254,11 +6299,12 @@ void proj_operation_factory_context_set_allowed_intermediate_crs( * @param target_crs source CRS. Must not be NULL. * @param operationContext Search context. Must not be NULL. * @return a result set that must be unreferenced with - * proj_obj_list_destroy(), or NULL in case of error. + * proj_list_destroy(), or NULL in case of error. */ -PJ_OBJ_LIST *proj_obj_create_operations( - PJ_CONTEXT *ctx, const PJ *source_crs, const PJ *target_crs, - const PJ_OPERATION_FACTORY_CONTEXT *operationContext) { +PJ_OBJ_LIST * +proj_create_operations(PJ_CONTEXT *ctx, const PJ *source_crs, + const PJ *target_crs, + const PJ_OPERATION_FACTORY_CONTEXT *operationContext) { SANITIZE_CTX(ctx); assert(source_crs); assert(target_crs); @@ -6297,7 +6343,7 @@ PJ_OBJ_LIST *proj_obj_create_operations( * * @param result Objet of type PJ_OBJ_LIST (must not be NULL) */ -int proj_obj_list_get_count(const PJ_OBJ_LIST *result) { +int proj_list_get_count(const PJ_OBJ_LIST *result) { assert(result); return static_cast(result->objects.size()); } @@ -6317,11 +6363,10 @@ int proj_obj_list_get_count(const PJ_OBJ_LIST *result) { * or nullptr in case of error. */ -PJ *proj_obj_list_get(PJ_CONTEXT *ctx, const PJ_OBJ_LIST *result, - int index) { +PJ *proj_list_get(PJ_CONTEXT *ctx, const PJ_OBJ_LIST *result, int index) { SANITIZE_CTX(ctx); assert(result); - if (index < 0 || index >= proj_obj_list_get_count(result)) { + if (index < 0 || index >= proj_list_get_count(result)) { proj_log_error(ctx, __FUNCTION__, "Invalid index"); return nullptr; } @@ -6337,7 +6382,7 @@ PJ *proj_obj_list_get(PJ_CONTEXT *ctx, const PJ_OBJ_LIST *result, * * @param result Object, or NULL. */ -void proj_obj_list_destroy(PJ_OBJ_LIST *result) { delete result; } +void proj_list_destroy(PJ_OBJ_LIST *result) { delete result; } // --------------------------------------------------------------------------- @@ -6351,8 +6396,8 @@ double proj_coordoperation_get_accuracy(PJ_CONTEXT *ctx, const PJ *coordoperation) { SANITIZE_CTX(ctx); assert(coordoperation); - auto co = - dynamic_cast(coordoperation->iso_obj.get()); + auto co = dynamic_cast( + coordoperation->iso_obj.get()); if (!co) { proj_log_error(ctx, __FUNCTION__, "Object is not a CoordinateOperation"); @@ -6382,7 +6427,7 @@ double proj_coordoperation_get_accuracy(PJ_CONTEXT *ctx, * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error (or if there is no datum) */ -PJ *proj_obj_crs_get_datum(PJ_CONTEXT *ctx, const PJ *crs) { +PJ *proj_crs_get_datum(PJ_CONTEXT *ctx, const PJ *crs) { SANITIZE_CTX(ctx); assert(crs); auto l_crs = dynamic_cast(crs->iso_obj.get()); @@ -6410,7 +6455,7 @@ PJ *proj_obj_crs_get_datum(PJ_CONTEXT *ctx, const PJ *crs) { * @return Object that must be unreferenced with proj_destroy(), or NULL * in case of error. */ -PJ *proj_obj_crs_get_coordinate_system(PJ_CONTEXT *ctx, const PJ *crs) { +PJ *proj_crs_get_coordinate_system(PJ_CONTEXT *ctx, const PJ *crs) { SANITIZE_CTX(ctx); assert(crs); auto l_crs = dynamic_cast(crs->iso_obj.get()); @@ -6429,8 +6474,7 @@ PJ *proj_obj_crs_get_coordinate_system(PJ_CONTEXT *ctx, const PJ *crs) { * @param cs Objet of type CoordinateSystem (must not be NULL) * @return type, or PJ_CS_TYPE_UNKNOWN in case of error. */ -PJ_COORDINATE_SYSTEM_TYPE proj_obj_cs_get_type(PJ_CONTEXT *ctx, - const PJ *cs) { +PJ_COORDINATE_SYSTEM_TYPE proj_cs_get_type(PJ_CONTEXT *ctx, const PJ *cs) { SANITIZE_CTX(ctx); assert(cs); auto l_cs = dynamic_cast(cs->iso_obj.get()); @@ -6476,7 +6520,7 @@ PJ_COORDINATE_SYSTEM_TYPE proj_obj_cs_get_type(PJ_CONTEXT *ctx, * @param cs Objet of type CoordinateSystem (must not be NULL) * @return number of axis, or -1 in case of error. */ -int proj_obj_cs_get_axis_count(PJ_CONTEXT *ctx, const PJ *cs) { +int proj_cs_get_axis_count(PJ_CONTEXT *ctx, const PJ *cs) { SANITIZE_CTX(ctx); assert(cs); auto l_cs = dynamic_cast(cs->iso_obj.get()); @@ -6494,7 +6538,7 @@ int proj_obj_cs_get_axis_count(PJ_CONTEXT *ctx, const PJ *cs) { * @param ctx PROJ context, or NULL for default context * @param cs Objet of type CoordinateSystem (must not be NULL) * @param index Index of the coordinate system (between 0 and - * proj_obj_cs_get_axis_count() - 1) + * proj_cs_get_axis_count() - 1) * @param out_name Pointer to a string value to store the axis name. or NULL * @param out_abbrev Pointer to a string value to store the axis abbreviation. * or NULL @@ -6510,13 +6554,13 @@ int proj_obj_cs_get_axis_count(PJ_CONTEXT *ctx, const PJ *cs) { * unit code. or NULL * @return TRUE in case of success */ -int proj_obj_cs_get_axis_info(PJ_CONTEXT *ctx, const PJ *cs, int index, - const char **out_name, const char **out_abbrev, - const char **out_direction, - double *out_unit_conv_factor, - const char **out_unit_name, - const char **out_unit_auth_name, - const char **out_unit_code) { +int proj_cs_get_axis_info(PJ_CONTEXT *ctx, const PJ *cs, int index, + const char **out_name, const char **out_abbrev, + const char **out_direction, + double *out_unit_conv_factor, + const char **out_unit_name, + const char **out_unit_auth_name, + const char **out_unit_code) { SANITIZE_CTX(ctx); assert(cs); auto l_cs = dynamic_cast(cs->iso_obj.get()); diff --git a/src/proj.h b/src/proj.h index cf42ccd5..a6ab1c92 100644 --- a/src/proj.h +++ b/src/proj.h @@ -491,33 +491,33 @@ typedef enum PJ_GUESSED_WKT_DIALECT PROJ_DLL proj_context_guess_wkt_dialect(PJ_CONTEXT *ctx, const char *wkt); -PJ PROJ_DLL *proj_obj_create_from_user_input(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_create_from_user_input(PJ_CONTEXT *ctx, const char *text, const char* const *options); -PJ PROJ_DLL *proj_obj_create_from_wkt(PJ_CONTEXT *ctx, const char *wkt, +PJ PROJ_DLL *proj_create_from_wkt(PJ_CONTEXT *ctx, const char *wkt, const char* const *options, PROJ_STRING_LIST *out_warnings, PROJ_STRING_LIST *out_grammar_errors); -PJ PROJ_DLL *proj_obj_create_from_proj_string(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_create_from_proj_string(PJ_CONTEXT *ctx, const char *proj_string, const char* const *options); /** \brief Object category. */ typedef enum { - PJ_OBJ_CATEGORY_ELLIPSOID, - PJ_OBJ_CATEGORY_PRIME_MERIDIAN, - PJ_OBJ_CATEGORY_DATUM, - PJ_OBJ_CATEGORY_CRS, - PJ_OBJ_CATEGORY_COORDINATE_OPERATION -} PJ_OBJ_CATEGORY; - -PJ PROJ_DLL *proj_obj_create_from_database(PJ_CONTEXT *ctx, + PJ_CATEGORY_ELLIPSOID, + PJ_CATEGORY_PRIME_MERIDIAN, + PJ_CATEGORY_DATUM, + PJ_CATEGORY_CRS, + PJ_CATEGORY_COORDINATE_OPERATION +} PJ_CATEGORY; + +PJ PROJ_DLL *proj_create_from_database(PJ_CONTEXT *ctx, const char *auth_name, const char *code, - PJ_OBJ_CATEGORY category, + PJ_CATEGORY category, int usePROJAlternativeGridNames, const char* const *options); @@ -528,63 +528,63 @@ int PROJ_DLL proj_uom_get_info_from_database(PJ_CONTEXT *ctx, double *out_conv_factor, const char **out_category); -PJ PROJ_DLL *proj_obj_clone(PJ_CONTEXT *ctx, const PJ *obj); +PJ PROJ_DLL *proj_clone(PJ_CONTEXT *ctx, const PJ *obj); /** \brief Object type. */ typedef enum { - PJ_OBJ_TYPE_UNKNOWN, + PJ_TYPE_UNKNOWN, - PJ_OBJ_TYPE_ELLIPSOID, + PJ_TYPE_ELLIPSOID, - PJ_OBJ_TYPE_PRIME_MERIDIAN, + PJ_TYPE_PRIME_MERIDIAN, - PJ_OBJ_TYPE_GEODETIC_REFERENCE_FRAME, - PJ_OBJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME, - PJ_OBJ_TYPE_VERTICAL_REFERENCE_FRAME, - PJ_OBJ_TYPE_DYNAMIC_VERTICAL_REFERENCE_FRAME, - PJ_OBJ_TYPE_DATUM_ENSEMBLE, + PJ_TYPE_GEODETIC_REFERENCE_FRAME, + PJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME, + PJ_TYPE_VERTICAL_REFERENCE_FRAME, + PJ_TYPE_DYNAMIC_VERTICAL_REFERENCE_FRAME, + PJ_TYPE_DATUM_ENSEMBLE, - /** Abstract type, not returned by proj_obj_get_type() */ - PJ_OBJ_TYPE_CRS, + /** Abstract type, not returned by proj_get_type() */ + PJ_TYPE_CRS, - PJ_OBJ_TYPE_GEODETIC_CRS, - PJ_OBJ_TYPE_GEOCENTRIC_CRS, + PJ_TYPE_GEODETIC_CRS, + PJ_TYPE_GEOCENTRIC_CRS, - /** proj_obj_get_type() will never return that type, but - * PJ_OBJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_OBJ_TYPE_GEOGRAPHIC_3D_CRS. */ - PJ_OBJ_TYPE_GEOGRAPHIC_CRS, + /** proj_get_type() will never return that type, but + * PJ_TYPE_GEOGRAPHIC_2D_CRS or PJ_TYPE_GEOGRAPHIC_3D_CRS. */ + PJ_TYPE_GEOGRAPHIC_CRS, - PJ_OBJ_TYPE_GEOGRAPHIC_2D_CRS, - PJ_OBJ_TYPE_GEOGRAPHIC_3D_CRS, - PJ_OBJ_TYPE_VERTICAL_CRS, - PJ_OBJ_TYPE_PROJECTED_CRS, - PJ_OBJ_TYPE_COMPOUND_CRS, - PJ_OBJ_TYPE_TEMPORAL_CRS, - PJ_OBJ_TYPE_ENGINEERING_CRS, - PJ_OBJ_TYPE_BOUND_CRS, - PJ_OBJ_TYPE_OTHER_CRS, + PJ_TYPE_GEOGRAPHIC_2D_CRS, + PJ_TYPE_GEOGRAPHIC_3D_CRS, + PJ_TYPE_VERTICAL_CRS, + PJ_TYPE_PROJECTED_CRS, + PJ_TYPE_COMPOUND_CRS, + PJ_TYPE_TEMPORAL_CRS, + PJ_TYPE_ENGINEERING_CRS, + PJ_TYPE_BOUND_CRS, + PJ_TYPE_OTHER_CRS, - PJ_OBJ_TYPE_CONVERSION, - PJ_OBJ_TYPE_TRANSFORMATION, - PJ_OBJ_TYPE_CONCATENATED_OPERATION, - PJ_OBJ_TYPE_OTHER_COORDINATE_OPERATION, -} PJ_OBJ_TYPE; + PJ_TYPE_CONVERSION, + PJ_TYPE_TRANSFORMATION, + PJ_TYPE_CONCATENATED_OPERATION, + PJ_TYPE_OTHER_COORDINATE_OPERATION, +} PJ_TYPE; -PJ_OBJ_LIST PROJ_DLL *proj_obj_create_from_name(PJ_CONTEXT *ctx, +PJ_OBJ_LIST PROJ_DLL *proj_create_from_name(PJ_CONTEXT *ctx, const char *auth_name, const char *searchedName, - const PJ_OBJ_TYPE* types, + const PJ_TYPE* types, size_t typesCount, int approximateMatch, size_t limitResultCount, const char* const *options); -PJ_OBJ_TYPE PROJ_DLL proj_obj_get_type(const PJ *obj); +PJ_TYPE PROJ_DLL proj_get_type(const PJ *obj); -int PROJ_DLL proj_obj_is_deprecated(const PJ *obj); +int PROJ_DLL proj_is_deprecated(const PJ *obj); -PJ_OBJ_LIST PROJ_DLL *proj_obj_get_non_deprecated(PJ_CONTEXT *ctx, +PJ_OBJ_LIST PROJ_DLL *proj_get_non_deprecated(PJ_CONTEXT *ctx, const PJ *obj); /** Comparison criterion. */ @@ -609,18 +609,18 @@ typedef enum PJ_COMP_EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS, } PJ_COMPARISON_CRITERION; -int PROJ_DLL proj_obj_is_equivalent_to(const PJ *obj, const PJ *other, +int PROJ_DLL proj_is_equivalent_to(const PJ *obj, const PJ *other, PJ_COMPARISON_CRITERION criterion); -int PROJ_DLL proj_obj_is_crs(const PJ *obj); +int PROJ_DLL proj_is_crs(const PJ *obj); -const char PROJ_DLL* proj_obj_get_name(const PJ *obj); +const char PROJ_DLL* proj_get_name(const PJ *obj); -const char PROJ_DLL* proj_obj_get_id_auth_name(const PJ *obj, int index); +const char PROJ_DLL* proj_get_id_auth_name(const PJ *obj, int index); -const char PROJ_DLL* proj_obj_get_id_code(const PJ *obj, int index); +const char PROJ_DLL* proj_get_id_code(const PJ *obj, int index); -int PROJ_DLL proj_obj_get_area_of_use(PJ_CONTEXT *ctx, +int PROJ_DLL proj_get_area_of_use(PJ_CONTEXT *ctx, const PJ *obj, double* out_west_lon_degree, double* out_south_lat_degree, @@ -645,7 +645,7 @@ typedef enum PJ_WKT1_ESRI } PJ_WKT_TYPE; -const char PROJ_DLL* proj_obj_as_wkt(PJ_CONTEXT *ctx, +const char PROJ_DLL* proj_as_wkt(PJ_CONTEXT *ctx, const PJ *obj, PJ_WKT_TYPE type, const char* const *options); @@ -658,18 +658,18 @@ typedef enum PJ_PROJ_4 } PJ_PROJ_STRING_TYPE; -const char PROJ_DLL* proj_obj_as_proj_string(PJ_CONTEXT *ctx, +const char PROJ_DLL* proj_as_proj_string(PJ_CONTEXT *ctx, const PJ *obj, PJ_PROJ_STRING_TYPE type, const char* const *options); -PJ PROJ_DLL *proj_obj_get_source_crs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_get_source_crs(PJ_CONTEXT *ctx, const PJ *obj); -PJ PROJ_DLL *proj_obj_get_target_crs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_get_target_crs(PJ_CONTEXT *ctx, const PJ *obj); -PJ_OBJ_LIST PROJ_DLL *proj_obj_identify(PJ_CONTEXT *ctx, +PJ_OBJ_LIST PROJ_DLL *proj_identify(PJ_CONTEXT *ctx, const PJ *obj, const char *auth_name, const char* const *options, @@ -683,7 +683,7 @@ PROJ_STRING_LIST PROJ_DLL proj_get_authorities_from_database(PJ_CONTEXT *ctx); PROJ_STRING_LIST PROJ_DLL proj_get_codes_from_database(PJ_CONTEXT *ctx, const char *auth_name, - PJ_OBJ_TYPE type, + PJ_TYPE type, int allow_deprecated); /* ------------------------------------------------------------------------- */ @@ -791,31 +791,31 @@ void PROJ_DLL proj_operation_factory_context_set_allowed_intermediate_crs( /* ------------------------------------------------------------------------- */ -PJ_OBJ_LIST PROJ_DLL *proj_obj_create_operations( +PJ_OBJ_LIST PROJ_DLL *proj_create_operations( PJ_CONTEXT *ctx, const PJ *source_crs, const PJ *target_crs, const PJ_OPERATION_FACTORY_CONTEXT *operationContext); -int PROJ_DLL proj_obj_list_get_count(const PJ_OBJ_LIST *result); +int PROJ_DLL proj_list_get_count(const PJ_OBJ_LIST *result); -PJ PROJ_DLL *proj_obj_list_get(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_list_get(PJ_CONTEXT *ctx, const PJ_OBJ_LIST *result, int index); -void PROJ_DLL proj_obj_list_destroy(PJ_OBJ_LIST *result); +void PROJ_DLL proj_list_destroy(PJ_OBJ_LIST *result); /* ------------------------------------------------------------------------- */ -PJ PROJ_DLL *proj_obj_crs_get_geodetic_crs(PJ_CONTEXT *ctx, const PJ *crs); +PJ PROJ_DLL *proj_crs_get_geodetic_crs(PJ_CONTEXT *ctx, const PJ *crs); -PJ PROJ_DLL *proj_obj_crs_get_horizontal_datum(PJ_CONTEXT *ctx, const PJ *crs); +PJ PROJ_DLL *proj_crs_get_horizontal_datum(PJ_CONTEXT *ctx, const PJ *crs); -PJ PROJ_DLL *proj_obj_crs_get_sub_crs(PJ_CONTEXT *ctx, const PJ *crs, int index); +PJ PROJ_DLL *proj_crs_get_sub_crs(PJ_CONTEXT *ctx, const PJ *crs, int index); -PJ PROJ_DLL *proj_obj_crs_get_datum(PJ_CONTEXT *ctx, const PJ *crs); +PJ PROJ_DLL *proj_crs_get_datum(PJ_CONTEXT *ctx, const PJ *crs); -PJ PROJ_DLL *proj_obj_crs_get_coordinate_system(PJ_CONTEXT *ctx, const PJ *crs); +PJ PROJ_DLL *proj_crs_get_coordinate_system(PJ_CONTEXT *ctx, const PJ *crs); /** Type of coordinate system. */ typedef enum @@ -833,13 +833,13 @@ typedef enum PJ_CS_TYPE_TEMPORALMEASURE } PJ_COORDINATE_SYSTEM_TYPE; -PJ_COORDINATE_SYSTEM_TYPE PROJ_DLL proj_obj_cs_get_type(PJ_CONTEXT *ctx, +PJ_COORDINATE_SYSTEM_TYPE PROJ_DLL proj_cs_get_type(PJ_CONTEXT *ctx, const PJ *cs); -int PROJ_DLL proj_obj_cs_get_axis_count(PJ_CONTEXT *ctx, +int PROJ_DLL proj_cs_get_axis_count(PJ_CONTEXT *ctx, const PJ *cs); -int PROJ_DLL proj_obj_cs_get_axis_info(PJ_CONTEXT *ctx, +int PROJ_DLL proj_cs_get_axis_info(PJ_CONTEXT *ctx, const PJ *cs, int index, const char **out_name, const char **out_abbrev, @@ -849,26 +849,26 @@ int PROJ_DLL proj_obj_cs_get_axis_info(PJ_CONTEXT *ctx, const char **out_unit_auth_name, const char **out_unit_code); -PJ PROJ_DLL *proj_obj_get_ellipsoid(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_get_ellipsoid(PJ_CONTEXT *ctx, const PJ *obj); -int PROJ_DLL proj_obj_ellipsoid_get_parameters(PJ_CONTEXT *ctx, +int PROJ_DLL proj_ellipsoid_get_parameters(PJ_CONTEXT *ctx, const PJ *ellipsoid, double *out_semi_major_metre, double *out_semi_minor_metre, int *out_is_semi_minor_computed, double *out_inv_flattening); -PJ PROJ_DLL *proj_obj_get_prime_meridian(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_get_prime_meridian(PJ_CONTEXT *ctx, const PJ *obj); -int PROJ_DLL proj_obj_prime_meridian_get_parameters(PJ_CONTEXT *ctx, +int PROJ_DLL proj_prime_meridian_get_parameters(PJ_CONTEXT *ctx, const PJ *prime_meridian, double *out_longitude, double *out_unit_conv_factor, const char **out_unit_name); -PJ PROJ_DLL *proj_obj_crs_get_coordoperation(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_crs_get_coordoperation(PJ_CONTEXT *ctx, const PJ *crs); int PROJ_DLL proj_coordoperation_get_method_info(PJ_CONTEXT *ctx, diff --git a/src/proj_experimental.h b/src/proj_experimental.h index 10faccd4..27547d17 100644 --- a/src/proj_experimental.h +++ b/src/proj_experimental.h @@ -90,7 +90,7 @@ typedef struct PJ_UNIT_TYPE unit_type; } PJ_AXIS_DESCRIPTION; -PJ PROJ_DLL *proj_obj_create_cs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_create_cs(PJ_CONTEXT *ctx, PJ_COORDINATE_SYSTEM_TYPE type, int axis_count, const PJ_AXIS_DESCRIPTION* axis); @@ -110,7 +110,7 @@ typedef enum PJ_CART2D_WESTING_SOUTHING, } PJ_CARTESIAN_CS_2D_TYPE; -PJ PROJ_DLL *proj_obj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_create_cartesian_2D_cs(PJ_CONTEXT *ctx, PJ_CARTESIAN_CS_2D_TYPE type, const char* unit_name, double unit_conv_factor); @@ -125,19 +125,19 @@ typedef enum PJ_ELLPS2D_LATITUDE_LONGITUDE, } PJ_ELLIPSOIDAL_CS_2D_TYPE; -PJ PROJ_DLL *proj_obj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_create_ellipsoidal_2D_cs(PJ_CONTEXT *ctx, PJ_ELLIPSOIDAL_CS_2D_TYPE type, const char* unit_name, double unit_conv_factor); -PJ_OBJ_LIST PROJ_DLL *proj_obj_query_geodetic_crs_from_datum( +PJ_OBJ_LIST PROJ_DLL *proj_query_geodetic_crs_from_datum( PJ_CONTEXT *ctx, const char *crs_auth_name, const char *datum_auth_name, const char *datum_code, const char *crs_type); -PJ PROJ_DLL *proj_obj_create_geographic_crs( +PJ PROJ_DLL *proj_create_geographic_crs( PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, @@ -149,13 +149,13 @@ PJ PROJ_DLL *proj_obj_create_geographic_crs( double pm_units_conv, PJ* ellipsoidal_cs); -PJ PROJ_DLL *proj_obj_create_geographic_crs_from_datum( +PJ PROJ_DLL *proj_create_geographic_crs_from_datum( PJ_CONTEXT *ctx, const char *crs_name, PJ* datum, PJ* ellipsoidal_cs); -PJ PROJ_DLL *proj_obj_create_geocentric_crs( +PJ PROJ_DLL *proj_create_geocentric_crs( PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, @@ -168,40 +168,40 @@ PJ PROJ_DLL *proj_obj_create_geocentric_crs( const char *linear_units, double linear_units_conv); -PJ PROJ_DLL *proj_obj_create_geocentric_crs_from_datum( +PJ PROJ_DLL *proj_create_geocentric_crs_from_datum( PJ_CONTEXT *ctx, const char *crs_name, const PJ* datum, const char *linear_units, double linear_units_conv); -PJ PROJ_DLL *proj_obj_alter_name(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_alter_name(PJ_CONTEXT *ctx, const PJ* obj, const char* name); -PJ PROJ_DLL *proj_obj_alter_id(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_alter_id(PJ_CONTEXT *ctx, const PJ* obj, const char* auth_name, const char* code); -PJ PROJ_DLL *proj_obj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_crs_alter_geodetic_crs(PJ_CONTEXT *ctx, const PJ* obj, const PJ* new_geod_crs); -PJ PROJ_DLL *proj_obj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_crs_alter_cs_angular_unit(PJ_CONTEXT *ctx, const PJ* obj, const char *angular_units, double angular_units_conv, const char *unit_auth_name, const char *unit_code); -PJ PROJ_DLL *proj_obj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_crs_alter_cs_linear_unit(PJ_CONTEXT *ctx, const PJ* obj, const char *linear_units, double linear_units_conv, const char *unit_auth_name, const char *unit_code); -PJ PROJ_DLL *proj_obj_crs_alter_parameters_linear_unit( +PJ PROJ_DLL *proj_crs_alter_parameters_linear_unit( PJ_CONTEXT *ctx, const PJ* obj, const char *linear_units, @@ -210,16 +210,16 @@ PJ PROJ_DLL *proj_obj_crs_alter_parameters_linear_unit( const char *unit_code, int convert_to_new_unit); -PJ PROJ_DLL *proj_obj_create_engineering_crs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_create_engineering_crs(PJ_CONTEXT *ctx, const char *crsName); -PJ PROJ_DLL *proj_obj_create_vertical_crs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_create_vertical_crs(PJ_CONTEXT *ctx, const char *crs_name, const char *datum_name, const char *linear_units, double linear_units_conv); -PJ PROJ_DLL *proj_obj_create_compound_crs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_create_compound_crs(PJ_CONTEXT *ctx, const char *crs_name, PJ* horiz_crs, PJ* vert_crs); @@ -243,7 +243,7 @@ typedef struct PJ_UNIT_TYPE unit_type; } PJ_PARAM_DESCRIPTION; -PJ PROJ_DLL *proj_obj_create_conversion(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_create_conversion(PJ_CONTEXT *ctx, const char* name, const char* auth_name, const char* code, @@ -253,7 +253,7 @@ PJ PROJ_DLL *proj_obj_create_conversion(PJ_CONTEXT *ctx, int param_count, const PJ_PARAM_DESCRIPTION* params); -PJ PROJ_DLL *proj_obj_create_transformation( +PJ PROJ_DLL *proj_create_transformation( PJ_CONTEXT *ctx, const char* name, const char* auth_name, @@ -268,33 +268,33 @@ PJ PROJ_DLL *proj_obj_create_transformation( const PJ_PARAM_DESCRIPTION* params, double accuracy); -PJ PROJ_DLL *proj_obj_convert_conversion_to_other_method(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_convert_conversion_to_other_method(PJ_CONTEXT *ctx, const PJ *conversion, int new_method_epsg_code, const char *new_method_name); -PJ PROJ_DLL *proj_obj_create_projected_crs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_create_projected_crs(PJ_CONTEXT *ctx, const char* crs_name, const PJ* geodetic_crs, const PJ* conversion, const PJ* coordinate_system); -PJ PROJ_DLL *proj_obj_crs_create_bound_crs(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_crs_create_bound_crs(PJ_CONTEXT *ctx, const PJ *base_crs, const PJ *hub_crs, const PJ *transformation); -PJ PROJ_DLL *proj_obj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, +PJ PROJ_DLL *proj_crs_create_bound_crs_to_WGS84(PJ_CONTEXT *ctx, const PJ *crs, const char *const *options); /* BEGIN: Generated by scripts/create_c_api_projections.py*/ -PJ PROJ_DLL *proj_obj_create_conversion_utm( +PJ PROJ_DLL *proj_create_conversion_utm( PJ_CONTEXT *ctx, int zone, int north); -PJ PROJ_DLL *proj_obj_create_conversion_transverse_mercator( +PJ PROJ_DLL *proj_create_conversion_transverse_mercator( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -304,7 +304,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_transverse_mercator( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_gauss_schreiber_transverse_mercator( +PJ PROJ_DLL *proj_create_conversion_gauss_schreiber_transverse_mercator( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -314,7 +314,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_gauss_schreiber_transverse_mercator( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_transverse_mercator_south_oriented( +PJ PROJ_DLL *proj_create_conversion_transverse_mercator_south_oriented( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -324,7 +324,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_transverse_mercator_south_oriented( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_two_point_equidistant( +PJ PROJ_DLL *proj_create_conversion_two_point_equidistant( PJ_CONTEXT *ctx, double latitude_first_point, double longitude_first_point, @@ -335,7 +335,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_two_point_equidistant( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_tunisia_mapping_grid( +PJ PROJ_DLL *proj_create_conversion_tunisia_mapping_grid( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -344,7 +344,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_tunisia_mapping_grid( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_albers_equal_area( +PJ PROJ_DLL *proj_create_conversion_albers_equal_area( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, @@ -355,7 +355,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_albers_equal_area( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_1sp( +PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_1sp( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -365,7 +365,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_1sp( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp( +PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_2sp( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, @@ -376,7 +376,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp_michigan( +PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_2sp_michigan( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, @@ -388,7 +388,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp_michigan( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp_belgium( +PJ PROJ_DLL *proj_create_conversion_lambert_conic_conformal_2sp_belgium( PJ_CONTEXT *ctx, double latitude_false_origin, double longitude_false_origin, @@ -399,7 +399,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_lambert_conic_conformal_2sp_belgium( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_azimuthal_equidistant( +PJ PROJ_DLL *proj_create_conversion_azimuthal_equidistant( PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, @@ -408,7 +408,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_azimuthal_equidistant( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_guam_projection( +PJ PROJ_DLL *proj_create_conversion_guam_projection( PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, @@ -417,7 +417,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_guam_projection( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_bonne( +PJ PROJ_DLL *proj_create_conversion_bonne( PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, @@ -426,7 +426,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_bonne( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_lambert_cylindrical_equal_area_spherical( +PJ PROJ_DLL *proj_create_conversion_lambert_cylindrical_equal_area_spherical( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, @@ -435,7 +435,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_lambert_cylindrical_equal_area_spherical const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_lambert_cylindrical_equal_area( +PJ PROJ_DLL *proj_create_conversion_lambert_cylindrical_equal_area( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, @@ -444,7 +444,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_lambert_cylindrical_equal_area( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_cassini_soldner( +PJ PROJ_DLL *proj_create_conversion_cassini_soldner( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -453,7 +453,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_cassini_soldner( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_equidistant_conic( +PJ PROJ_DLL *proj_create_conversion_equidistant_conic( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -464,7 +464,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_equidistant_conic( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_eckert_i( +PJ PROJ_DLL *proj_create_conversion_eckert_i( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -472,7 +472,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_eckert_i( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_eckert_ii( +PJ PROJ_DLL *proj_create_conversion_eckert_ii( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -480,7 +480,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_eckert_ii( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_eckert_iii( +PJ PROJ_DLL *proj_create_conversion_eckert_iii( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -488,7 +488,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_eckert_iii( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_eckert_iv( +PJ PROJ_DLL *proj_create_conversion_eckert_iv( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -496,7 +496,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_eckert_iv( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_eckert_v( +PJ PROJ_DLL *proj_create_conversion_eckert_v( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -504,7 +504,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_eckert_v( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_eckert_vi( +PJ PROJ_DLL *proj_create_conversion_eckert_vi( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -512,7 +512,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_eckert_vi( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_equidistant_cylindrical( +PJ PROJ_DLL *proj_create_conversion_equidistant_cylindrical( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, @@ -521,7 +521,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_equidistant_cylindrical( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_equidistant_cylindrical_spherical( +PJ PROJ_DLL *proj_create_conversion_equidistant_cylindrical_spherical( PJ_CONTEXT *ctx, double latitude_first_parallel, double longitude_nat_origin, @@ -530,7 +530,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_equidistant_cylindrical_spherical( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_gall( +PJ PROJ_DLL *proj_create_conversion_gall( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -538,7 +538,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_gall( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_goode_homolosine( +PJ PROJ_DLL *proj_create_conversion_goode_homolosine( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -546,7 +546,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_goode_homolosine( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_interrupted_goode_homolosine( +PJ PROJ_DLL *proj_create_conversion_interrupted_goode_homolosine( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -554,7 +554,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_interrupted_goode_homolosine( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_geostationary_satellite_sweep_x( +PJ PROJ_DLL *proj_create_conversion_geostationary_satellite_sweep_x( PJ_CONTEXT *ctx, double center_long, double height, @@ -563,7 +563,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_geostationary_satellite_sweep_x( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_geostationary_satellite_sweep_y( +PJ PROJ_DLL *proj_create_conversion_geostationary_satellite_sweep_y( PJ_CONTEXT *ctx, double center_long, double height, @@ -572,7 +572,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_geostationary_satellite_sweep_y( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_gnomonic( +PJ PROJ_DLL *proj_create_conversion_gnomonic( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -581,7 +581,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_gnomonic( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_variant_a( +PJ PROJ_DLL *proj_create_conversion_hotine_oblique_mercator_variant_a( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_projection_centre, @@ -593,7 +593,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_variant_a( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_variant_b( +PJ PROJ_DLL *proj_create_conversion_hotine_oblique_mercator_variant_b( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_projection_centre, @@ -605,7 +605,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_variant_b( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( +PJ PROJ_DLL *proj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( PJ_CONTEXT *ctx, double latitude_projection_centre, double latitude_point1, @@ -618,7 +618,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_hotine_oblique_mercator_two_point_natura const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_laborde_oblique_mercator( +PJ PROJ_DLL *proj_create_conversion_laborde_oblique_mercator( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_projection_centre, @@ -629,7 +629,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_laborde_oblique_mercator( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_international_map_world_polyconic( +PJ PROJ_DLL *proj_create_conversion_international_map_world_polyconic( PJ_CONTEXT *ctx, double center_long, double latitude_first_parallel, @@ -639,7 +639,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_international_map_world_polyconic( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_krovak_north_oriented( +PJ PROJ_DLL *proj_create_conversion_krovak_north_oriented( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_of_origin, @@ -651,7 +651,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_krovak_north_oriented( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_krovak( +PJ PROJ_DLL *proj_create_conversion_krovak( PJ_CONTEXT *ctx, double latitude_projection_centre, double longitude_of_origin, @@ -663,7 +663,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_krovak( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_lambert_azimuthal_equal_area( +PJ PROJ_DLL *proj_create_conversion_lambert_azimuthal_equal_area( PJ_CONTEXT *ctx, double latitude_nat_origin, double longitude_nat_origin, @@ -672,7 +672,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_lambert_azimuthal_equal_area( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_miller_cylindrical( +PJ PROJ_DLL *proj_create_conversion_miller_cylindrical( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -680,7 +680,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_miller_cylindrical( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_mercator_variant_a( +PJ PROJ_DLL *proj_create_conversion_mercator_variant_a( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -690,7 +690,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_mercator_variant_a( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_mercator_variant_b( +PJ PROJ_DLL *proj_create_conversion_mercator_variant_b( PJ_CONTEXT *ctx, double latitude_first_parallel, double center_long, @@ -699,7 +699,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_mercator_variant_b( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_popular_visualisation_pseudo_mercator( +PJ PROJ_DLL *proj_create_conversion_popular_visualisation_pseudo_mercator( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -708,7 +708,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_popular_visualisation_pseudo_mercator( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_mollweide( +PJ PROJ_DLL *proj_create_conversion_mollweide( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -716,7 +716,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_mollweide( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_new_zealand_mapping_grid( +PJ PROJ_DLL *proj_create_conversion_new_zealand_mapping_grid( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -725,7 +725,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_new_zealand_mapping_grid( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_oblique_stereographic( +PJ PROJ_DLL *proj_create_conversion_oblique_stereographic( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -735,7 +735,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_oblique_stereographic( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_orthographic( +PJ PROJ_DLL *proj_create_conversion_orthographic( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -744,7 +744,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_orthographic( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_american_polyconic( +PJ PROJ_DLL *proj_create_conversion_american_polyconic( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -753,7 +753,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_american_polyconic( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_polar_stereographic_variant_a( +PJ PROJ_DLL *proj_create_conversion_polar_stereographic_variant_a( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -763,7 +763,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_polar_stereographic_variant_a( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_polar_stereographic_variant_b( +PJ PROJ_DLL *proj_create_conversion_polar_stereographic_variant_b( PJ_CONTEXT *ctx, double latitude_standard_parallel, double longitude_of_origin, @@ -772,7 +772,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_polar_stereographic_variant_b( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_robinson( +PJ PROJ_DLL *proj_create_conversion_robinson( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -780,7 +780,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_robinson( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_sinusoidal( +PJ PROJ_DLL *proj_create_conversion_sinusoidal( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -788,7 +788,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_sinusoidal( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_stereographic( +PJ PROJ_DLL *proj_create_conversion_stereographic( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -798,7 +798,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_stereographic( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_van_der_grinten( +PJ PROJ_DLL *proj_create_conversion_van_der_grinten( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -806,7 +806,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_van_der_grinten( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_wagner_i( +PJ PROJ_DLL *proj_create_conversion_wagner_i( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -814,7 +814,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_wagner_i( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_wagner_ii( +PJ PROJ_DLL *proj_create_conversion_wagner_ii( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -822,7 +822,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_wagner_ii( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_wagner_iii( +PJ PROJ_DLL *proj_create_conversion_wagner_iii( PJ_CONTEXT *ctx, double latitude_true_scale, double center_long, @@ -831,7 +831,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_wagner_iii( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_wagner_iv( +PJ PROJ_DLL *proj_create_conversion_wagner_iv( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -839,7 +839,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_wagner_iv( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_wagner_v( +PJ PROJ_DLL *proj_create_conversion_wagner_v( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -847,7 +847,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_wagner_v( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_wagner_vi( +PJ PROJ_DLL *proj_create_conversion_wagner_vi( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -855,7 +855,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_wagner_vi( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_wagner_vii( +PJ PROJ_DLL *proj_create_conversion_wagner_vii( PJ_CONTEXT *ctx, double center_long, double false_easting, @@ -863,7 +863,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_wagner_vii( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_quadrilateralized_spherical_cube( +PJ PROJ_DLL *proj_create_conversion_quadrilateralized_spherical_cube( PJ_CONTEXT *ctx, double center_lat, double center_long, @@ -872,7 +872,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_quadrilateralized_spherical_cube( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_spherical_cross_track_height( +PJ PROJ_DLL *proj_create_conversion_spherical_cross_track_height( PJ_CONTEXT *ctx, double peg_point_lat, double peg_point_long, @@ -881,7 +881,7 @@ PJ PROJ_DLL *proj_obj_create_conversion_spherical_cross_track_height( const char* ang_unit_name, double ang_unit_conv_factor, const char* linear_unit_name, double linear_unit_conv_factor); -PJ PROJ_DLL *proj_obj_create_conversion_equal_earth( +PJ PROJ_DLL *proj_create_conversion_equal_earth( PJ_CONTEXT *ctx, double center_long, double false_easting, diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp index 9807de82..620685ef 100644 --- a/test/unit/test_c_api.cpp +++ b/test/unit/test_c_api.cpp @@ -139,7 +139,7 @@ class CApi : public ::testing::Test { struct ObjListKeeper { PJ_OBJ_LIST *m_res = nullptr; explicit ObjListKeeper(PJ_OBJ_LIST *res) : m_res(res) {} - ~ObjListKeeper() { proj_obj_list_destroy(m_res); } + ~ObjListKeeper() { proj_list_destroy(m_res); } ObjListKeeper(const ObjListKeeper &) = delete; ObjListKeeper &operator=(const ObjListKeeper &) = delete; @@ -148,12 +148,11 @@ class CApi : public ::testing::Test { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_create_from_user_input) { +TEST_F(CApi, proj_create_from_user_input) { proj_destroy(nullptr); - EXPECT_EQ(proj_obj_create_from_user_input(m_ctxt, "invalid", nullptr), - nullptr); + EXPECT_EQ(proj_create_from_user_input(m_ctxt, "invalid", nullptr), nullptr); { - auto obj = proj_obj_create_from_user_input( + auto obj = proj_create_from_user_input( m_ctxt, GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get()) .c_str(), @@ -183,8 +182,7 @@ TEST_F(CApi, proj_obj_create_from_user_input) { EXPECT_EQ(info.definition, std::string("")); } { - auto obj = - proj_obj_create_from_user_input(m_ctxt, "EPSG:4326", nullptr); + auto obj = proj_create_from_user_input(m_ctxt, "EPSG:4326", nullptr); ObjectKeeper keeper(obj); EXPECT_NE(obj, nullptr); } @@ -192,18 +190,18 @@ TEST_F(CApi, proj_obj_create_from_user_input) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_create_from_wkt) { +TEST_F(CApi, proj_create_from_wkt) { { - EXPECT_EQ(proj_obj_create_from_wkt(m_ctxt, "invalid", nullptr, nullptr, - nullptr), - nullptr); + EXPECT_EQ( + proj_create_from_wkt(m_ctxt, "invalid", nullptr, nullptr, nullptr), + nullptr); } { PROJ_STRING_LIST warningList = nullptr; PROJ_STRING_LIST errorList = nullptr; - EXPECT_EQ(proj_obj_create_from_wkt(m_ctxt, "invalid", nullptr, - &warningList, &errorList), + EXPECT_EQ(proj_create_from_wkt(m_ctxt, "invalid", nullptr, &warningList, + &errorList), nullptr); EXPECT_EQ(warningList, nullptr); proj_string_list_destroy(warningList); @@ -211,7 +209,7 @@ TEST_F(CApi, proj_obj_create_from_wkt) { proj_string_list_destroy(errorList); } { - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get()) .c_str(), @@ -220,7 +218,7 @@ TEST_F(CApi, proj_obj_create_from_wkt) { EXPECT_NE(obj, nullptr); } { - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, "GEOGCS[\"WGS 84\",\n" " DATUM[\"WGS_1984\",\n" @@ -233,7 +231,7 @@ TEST_F(CApi, proj_obj_create_from_wkt) { { PROJ_STRING_LIST warningList = nullptr; PROJ_STRING_LIST errorList = nullptr; - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, "GEOGCS[\"WGS 84\",\n" " DATUM[\"WGS_1984\",\n" @@ -251,7 +249,7 @@ TEST_F(CApi, proj_obj_create_from_wkt) { PROJ_STRING_LIST warningList = nullptr; PROJ_STRING_LIST errorList = nullptr; const char *const options[] = {"STRICT=NO", nullptr}; - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, "GEOGCS[\"WGS 84\",\n" " DATUM[\"WGS_1984\",\n" @@ -269,7 +267,7 @@ TEST_F(CApi, proj_obj_create_from_wkt) { { PROJ_STRING_LIST warningList = nullptr; PROJ_STRING_LIST errorList = nullptr; - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get()) .c_str(), @@ -283,7 +281,7 @@ TEST_F(CApi, proj_obj_create_from_wkt) { { PROJ_STRING_LIST warningList = nullptr; PROJ_STRING_LIST errorList = nullptr; - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, "PROJCS[\"test\",\n" " GEOGCS[\"WGS 84\",\n" " DATUM[\"WGS_1984\",\n" @@ -302,7 +300,7 @@ TEST_F(CApi, proj_obj_create_from_wkt) { proj_string_list_destroy(errorList); } { - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, "PROJCS[\"test\",\n" " GEOGCS[\"WGS 84\",\n" " DATUM[\"WGS_1984\",\n" @@ -320,20 +318,19 @@ TEST_F(CApi, proj_obj_create_from_wkt) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_create_from_proj_string) { +TEST_F(CApi, proj_create_from_proj_string) { - EXPECT_EQ(proj_obj_create_from_proj_string(m_ctxt, "invalid", nullptr), + EXPECT_EQ(proj_create_from_proj_string(m_ctxt, "invalid", nullptr), nullptr); - auto obj = - proj_obj_create_from_proj_string(m_ctxt, "+proj=longlat", nullptr); + auto obj = proj_create_from_proj_string(m_ctxt, "+proj=longlat", nullptr); ObjectKeeper keeper(obj); EXPECT_NE(obj, nullptr); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_as_wkt) { - auto obj = proj_obj_create_from_wkt( +TEST_F(CApi, proj_as_wkt) { + auto obj = proj_create_from_wkt( m_ctxt, GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get()) .c_str(), @@ -342,14 +339,13 @@ TEST_F(CApi, proj_obj_as_wkt) { ASSERT_NE(obj, nullptr); { - auto wkt = proj_obj_as_wkt(m_ctxt, obj, PJ_WKT2_2018, nullptr); + auto wkt = proj_as_wkt(m_ctxt, obj, PJ_WKT2_2018, nullptr); ASSERT_NE(wkt, nullptr); EXPECT_TRUE(std::string(wkt).find("GEOGCRS[") == 0) << wkt; } { - auto wkt = - proj_obj_as_wkt(m_ctxt, obj, PJ_WKT2_2018_SIMPLIFIED, nullptr); + auto wkt = proj_as_wkt(m_ctxt, obj, PJ_WKT2_2018_SIMPLIFIED, nullptr); ASSERT_NE(wkt, nullptr); EXPECT_TRUE(std::string(wkt).find("GEOGCRS[") == 0) << wkt; EXPECT_TRUE(std::string(wkt).find("ANGULARUNIT[") == std::string::npos) @@ -357,14 +353,13 @@ TEST_F(CApi, proj_obj_as_wkt) { } { - auto wkt = proj_obj_as_wkt(m_ctxt, obj, PJ_WKT2_2015, nullptr); + auto wkt = proj_as_wkt(m_ctxt, obj, PJ_WKT2_2015, nullptr); ASSERT_NE(wkt, nullptr); EXPECT_TRUE(std::string(wkt).find("GEODCRS[") == 0) << wkt; } { - auto wkt = - proj_obj_as_wkt(m_ctxt, obj, PJ_WKT2_2015_SIMPLIFIED, nullptr); + auto wkt = proj_as_wkt(m_ctxt, obj, PJ_WKT2_2015_SIMPLIFIED, nullptr); ASSERT_NE(wkt, nullptr); EXPECT_TRUE(std::string(wkt).find("GEODCRS[") == 0) << wkt; EXPECT_TRUE(std::string(wkt).find("ANGULARUNIT[") == std::string::npos) @@ -372,13 +367,13 @@ TEST_F(CApi, proj_obj_as_wkt) { } { - auto wkt = proj_obj_as_wkt(m_ctxt, obj, PJ_WKT1_GDAL, nullptr); + auto wkt = proj_as_wkt(m_ctxt, obj, PJ_WKT1_GDAL, nullptr); ASSERT_NE(wkt, nullptr); EXPECT_TRUE(std::string(wkt).find("GEOGCS[\"WGS 84\"") == 0) << wkt; } { - auto wkt = proj_obj_as_wkt(m_ctxt, obj, PJ_WKT1_ESRI, nullptr); + auto wkt = proj_as_wkt(m_ctxt, obj, PJ_WKT1_ESRI, nullptr); ASSERT_NE(wkt, nullptr); EXPECT_TRUE(std::string(wkt).find("GEOGCS[\"GCS_WGS_1984\"") == 0) << wkt; @@ -387,7 +382,7 @@ TEST_F(CApi, proj_obj_as_wkt) { // MULTILINE=NO { const char *const options[] = {"MULTILINE=NO", nullptr}; - auto wkt = proj_obj_as_wkt(m_ctxt, obj, PJ_WKT1_GDAL, options); + auto wkt = proj_as_wkt(m_ctxt, obj, PJ_WKT1_GDAL, options); ASSERT_NE(wkt, nullptr); EXPECT_TRUE(std::string(wkt).find("\n") == std::string::npos) << wkt; } @@ -395,7 +390,7 @@ TEST_F(CApi, proj_obj_as_wkt) { // INDENTATION_WIDTH=2 { const char *const options[] = {"INDENTATION_WIDTH=2", nullptr}; - auto wkt = proj_obj_as_wkt(m_ctxt, obj, PJ_WKT1_GDAL, options); + auto wkt = proj_as_wkt(m_ctxt, obj, PJ_WKT1_GDAL, options); ASSERT_NE(wkt, nullptr); EXPECT_TRUE(std::string(wkt).find("\n DATUM") != std::string::npos) << wkt; @@ -404,7 +399,7 @@ TEST_F(CApi, proj_obj_as_wkt) { // OUTPUT_AXIS=NO { const char *const options[] = {"OUTPUT_AXIS=NO", nullptr}; - auto wkt = proj_obj_as_wkt(m_ctxt, obj, PJ_WKT1_GDAL, options); + auto wkt = proj_as_wkt(m_ctxt, obj, PJ_WKT1_GDAL, options); ASSERT_NE(wkt, nullptr); EXPECT_TRUE(std::string(wkt).find("AXIS") == std::string::npos) << wkt; } @@ -412,7 +407,7 @@ TEST_F(CApi, proj_obj_as_wkt) { // OUTPUT_AXIS=AUTO { const char *const options[] = {"OUTPUT_AXIS=AUTO", nullptr}; - auto wkt = proj_obj_as_wkt(m_ctxt, obj, PJ_WKT1_GDAL, options); + auto wkt = proj_as_wkt(m_ctxt, obj, PJ_WKT1_GDAL, options); ASSERT_NE(wkt, nullptr); EXPECT_TRUE(std::string(wkt).find("AXIS") == std::string::npos) << wkt; } @@ -420,7 +415,7 @@ TEST_F(CApi, proj_obj_as_wkt) { // OUTPUT_AXIS=YES { const char *const options[] = {"OUTPUT_AXIS=YES", nullptr}; - auto wkt = proj_obj_as_wkt(m_ctxt, obj, PJ_WKT1_GDAL, options); + auto wkt = proj_as_wkt(m_ctxt, obj, PJ_WKT1_GDAL, options); ASSERT_NE(wkt, nullptr); EXPECT_TRUE(std::string(wkt).find("AXIS") != std::string::npos) << wkt; } @@ -428,15 +423,15 @@ TEST_F(CApi, proj_obj_as_wkt) { // unsupported option { const char *const options[] = {"unsupported=yes", nullptr}; - auto wkt = proj_obj_as_wkt(m_ctxt, obj, PJ_WKT2_2018, options); + auto wkt = proj_as_wkt(m_ctxt, obj, PJ_WKT2_2018, options); EXPECT_EQ(wkt, nullptr); } } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_as_wkt_check_db_use) { - auto obj = proj_obj_create_from_wkt( +TEST_F(CApi, proj_as_wkt_check_db_use) { + auto obj = proj_create_from_wkt( m_ctxt, "GEOGCS[\"AGD66\",DATUM[\"Australian_Geodetic_Datum_1966\"," "SPHEROID[\"Australian National Spheroid\",6378160,298.25]]," "PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433]]", @@ -444,7 +439,7 @@ TEST_F(CApi, proj_obj_as_wkt_check_db_use) { ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - auto wkt = proj_obj_as_wkt(m_ctxt, obj, PJ_WKT1_ESRI, nullptr); + auto wkt = proj_as_wkt(m_ctxt, obj, PJ_WKT1_ESRI, nullptr); EXPECT_EQ(std::string(wkt), "GEOGCS[\"GCS_Australian_1966\",DATUM[\"D_Australian_1966\"," "SPHEROID[\"Australian\",6378160.0,298.25]]," @@ -454,21 +449,21 @@ TEST_F(CApi, proj_obj_as_wkt_check_db_use) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_as_wkt_incompatible_WKT1) { +TEST_F(CApi, proj_as_wkt_incompatible_WKT1) { auto wkt = createBoundCRS()->exportToWKT(WKTFormatter::create().get()); - auto obj = proj_obj_create_from_wkt(m_ctxt, wkt.c_str(), nullptr, nullptr, - nullptr); + auto obj = + proj_create_from_wkt(m_ctxt, wkt.c_str(), nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr) << wkt; - auto wkt1_GDAL = proj_obj_as_wkt(m_ctxt, obj, PJ_WKT1_GDAL, nullptr); + auto wkt1_GDAL = proj_as_wkt(m_ctxt, obj, PJ_WKT1_GDAL, nullptr); ASSERT_EQ(wkt1_GDAL, nullptr); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_as_proj_string) { - auto obj = proj_obj_create_from_wkt( +TEST_F(CApi, proj_as_proj_string) { + auto obj = proj_create_from_wkt( m_ctxt, GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get()) .c_str(), @@ -477,7 +472,7 @@ TEST_F(CApi, proj_obj_as_proj_string) { ASSERT_NE(obj, nullptr); { - auto proj_5 = proj_obj_as_proj_string(m_ctxt, obj, PJ_PROJ_5, nullptr); + auto proj_5 = proj_as_proj_string(m_ctxt, obj, PJ_PROJ_5, nullptr); ASSERT_NE(proj_5, nullptr); EXPECT_EQ(std::string(proj_5), "+proj=pipeline +step +proj=longlat " "+ellps=WGS84 +step +proj=unitconvert " @@ -485,7 +480,7 @@ TEST_F(CApi, proj_obj_as_proj_string) { "+proj=axisswap +order=2,1"); } { - auto proj_4 = proj_obj_as_proj_string(m_ctxt, obj, PJ_PROJ_4, nullptr); + auto proj_4 = proj_as_proj_string(m_ctxt, obj, PJ_PROJ_4, nullptr); ASSERT_NE(proj_4, nullptr); EXPECT_EQ(std::string(proj_4), "+proj=longlat +datum=WGS84 +no_defs"); } @@ -493,27 +488,27 @@ TEST_F(CApi, proj_obj_as_proj_string) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_as_proj_string_incompatible_WKT1) { - auto obj = proj_obj_create_from_wkt( +TEST_F(CApi, proj_as_proj_string_incompatible_WKT1) { + auto obj = proj_create_from_wkt( m_ctxt, createBoundCRS()->exportToWKT(WKTFormatter::create().get()).c_str(), nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - auto str = proj_obj_as_proj_string(m_ctxt, obj, PJ_PROJ_5, nullptr); + auto str = proj_as_proj_string(m_ctxt, obj, PJ_PROJ_5, nullptr); ASSERT_EQ(str, nullptr); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_as_proj_string_etmerc_option_yes) { - auto obj = proj_obj_create_from_proj_string(m_ctxt, "+proj=tmerc", nullptr); +TEST_F(CApi, proj_as_proj_string_etmerc_option_yes) { + auto obj = proj_create_from_proj_string(m_ctxt, "+proj=tmerc", nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); const char *options[] = {"USE_ETMERC=YES", nullptr}; - auto str = proj_obj_as_proj_string(m_ctxt, obj, PJ_PROJ_4, options); + auto str = proj_as_proj_string(m_ctxt, obj, PJ_PROJ_4, options); ASSERT_NE(str, nullptr); EXPECT_EQ(str, std::string("+proj=etmerc +lat_0=0 +lon_0=0 +k=1 +x_0=0 " "+y_0=0 +datum=WGS84 +units=m +no_defs")); @@ -521,14 +516,14 @@ TEST_F(CApi, proj_obj_as_proj_string_etmerc_option_yes) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_as_proj_string_etmerc_option_no) { +TEST_F(CApi, proj_as_proj_string_etmerc_option_no) { auto obj = - proj_obj_create_from_proj_string(m_ctxt, "+proj=utm +zone=31", nullptr); + proj_create_from_proj_string(m_ctxt, "+proj=utm +zone=31", nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); const char *options[] = {"USE_ETMERC=NO", nullptr}; - auto str = proj_obj_as_proj_string(m_ctxt, obj, PJ_PROJ_4, options); + auto str = proj_as_proj_string(m_ctxt, obj, PJ_PROJ_4, options); ASSERT_NE(str, nullptr); EXPECT_EQ(str, std::string("+proj=tmerc +lat_0=0 +lon_0=3 +k=0.9996 " "+x_0=500000 +y_0=0 +datum=WGS84 +units=m " @@ -537,17 +532,17 @@ TEST_F(CApi, proj_obj_as_proj_string_etmerc_option_no) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_crs_create_bound_crs_to_WGS84) { - auto crs = proj_obj_create_from_database( - m_ctxt, "EPSG", "3844", PJ_OBJ_CATEGORY_CRS, false, nullptr); +TEST_F(CApi, proj_crs_create_bound_crs_to_WGS84) { + auto crs = proj_create_from_database(m_ctxt, "EPSG", "3844", + PJ_CATEGORY_CRS, false, nullptr); ObjectKeeper keeper(crs); ASSERT_NE(crs, nullptr); - auto res = proj_obj_crs_create_bound_crs_to_WGS84(m_ctxt, crs, nullptr); + auto res = proj_crs_create_bound_crs_to_WGS84(m_ctxt, crs, nullptr); ObjectKeeper keeper_res(res); ASSERT_NE(res, nullptr); - auto proj_4 = proj_obj_as_proj_string(m_ctxt, res, PJ_PROJ_4, nullptr); + auto proj_4 = proj_as_proj_string(m_ctxt, res, PJ_PROJ_4, nullptr); ASSERT_NE(proj_4, nullptr); EXPECT_EQ(std::string(proj_4), "+proj=sterea +lat_0=46 +lon_0=25 +k=0.99975 +x_0=500000 " @@ -555,15 +550,15 @@ TEST_F(CApi, proj_obj_crs_create_bound_crs_to_WGS84) { "+towgs84=2.329,-147.042,-92.08,-0.309,0.325,0.497,5.69 " "+units=m +no_defs"); - auto base_crs = proj_obj_get_source_crs(m_ctxt, res); + auto base_crs = proj_get_source_crs(m_ctxt, res); ObjectKeeper keeper_base_crs(base_crs); ASSERT_NE(base_crs, nullptr); - auto hub_crs = proj_obj_get_target_crs(m_ctxt, res); + auto hub_crs = proj_get_target_crs(m_ctxt, res); ObjectKeeper keeper_hub_crs(hub_crs); ASSERT_NE(hub_crs, nullptr); - auto transf = proj_obj_crs_get_coordoperation(m_ctxt, res); + auto transf = proj_crs_get_coordoperation(m_ctxt, res); ObjectKeeper keeper_transf(transf); ASSERT_NE(transf, nullptr); @@ -574,155 +569,154 @@ TEST_F(CApi, proj_obj_crs_create_bound_crs_to_WGS84) { 0.325, 0.497, 5.69}; EXPECT_EQ(values, expected); - auto res2 = - proj_obj_crs_create_bound_crs(m_ctxt, base_crs, hub_crs, transf); + auto res2 = proj_crs_create_bound_crs(m_ctxt, base_crs, hub_crs, transf); ObjectKeeper keeper_res2(res2); ASSERT_NE(res2, nullptr); - EXPECT_TRUE(proj_obj_is_equivalent_to(res, res2, PJ_COMP_STRICT)); + EXPECT_TRUE(proj_is_equivalent_to(res, res2, PJ_COMP_STRICT)); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_crs_create_bound_crs_to_WGS84_on_invalid_type) { +TEST_F(CApi, proj_crs_create_bound_crs_to_WGS84_on_invalid_type) { auto wkt = createProjectedCRS()->derivingConversion()->exportToWKT( WKTFormatter::create().get()); - auto obj = proj_obj_create_from_wkt(m_ctxt, wkt.c_str(), nullptr, nullptr, - nullptr); + auto obj = + proj_create_from_wkt(m_ctxt, wkt.c_str(), nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr) << wkt; - auto res = proj_obj_crs_create_bound_crs_to_WGS84(m_ctxt, obj, nullptr); + auto res = proj_crs_create_bound_crs_to_WGS84(m_ctxt, obj, nullptr); ASSERT_EQ(res, nullptr); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_get_name) { - auto obj = proj_obj_create_from_wkt( +TEST_F(CApi, proj_get_name) { + auto obj = proj_create_from_wkt( m_ctxt, GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get()) .c_str(), nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - auto name = proj_obj_get_name(obj); + auto name = proj_get_name(obj); ASSERT_TRUE(name != nullptr); EXPECT_EQ(name, std::string("WGS 84")); - EXPECT_EQ(name, proj_obj_get_name(obj)); + EXPECT_EQ(name, proj_get_name(obj)); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_get_id_auth_name) { - auto obj = proj_obj_create_from_wkt( +TEST_F(CApi, proj_get_id_auth_name) { + auto obj = proj_create_from_wkt( m_ctxt, GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get()) .c_str(), nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - auto auth = proj_obj_get_id_auth_name(obj, 0); + auto auth = proj_get_id_auth_name(obj, 0); ASSERT_TRUE(auth != nullptr); EXPECT_EQ(auth, std::string("EPSG")); - EXPECT_EQ(auth, proj_obj_get_id_auth_name(obj, 0)); - EXPECT_EQ(proj_obj_get_id_auth_name(obj, -1), nullptr); - EXPECT_EQ(proj_obj_get_id_auth_name(obj, 1), nullptr); + EXPECT_EQ(auth, proj_get_id_auth_name(obj, 0)); + EXPECT_EQ(proj_get_id_auth_name(obj, -1), nullptr); + EXPECT_EQ(proj_get_id_auth_name(obj, 1), nullptr); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_get_id_code) { - auto obj = proj_obj_create_from_wkt( +TEST_F(CApi, proj_get_id_code) { + auto obj = proj_create_from_wkt( m_ctxt, GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get()) .c_str(), nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - auto code = proj_obj_get_id_code(obj, 0); + auto code = proj_get_id_code(obj, 0); ASSERT_TRUE(code != nullptr); EXPECT_EQ(code, std::string("4326")); - EXPECT_EQ(code, proj_obj_get_id_code(obj, 0)); - EXPECT_EQ(proj_obj_get_id_code(obj, -1), nullptr); - EXPECT_EQ(proj_obj_get_id_code(obj, 1), nullptr); + EXPECT_EQ(code, proj_get_id_code(obj, 0)); + EXPECT_EQ(proj_get_id_code(obj, -1), nullptr); + EXPECT_EQ(proj_get_id_code(obj, 1), nullptr); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_get_type) { +TEST_F(CApi, proj_get_type) { { - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get()) .c_str(), nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_GEOGRAPHIC_2D_CRS); + EXPECT_EQ(proj_get_type(obj), PJ_TYPE_GEOGRAPHIC_2D_CRS); } { - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, GeographicCRS::EPSG_4979->exportToWKT(WKTFormatter::create().get()) .c_str(), nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_GEOGRAPHIC_3D_CRS); + EXPECT_EQ(proj_get_type(obj), PJ_TYPE_GEOGRAPHIC_3D_CRS); } { - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, GeographicCRS::EPSG_4978->exportToWKT(WKTFormatter::create().get()) .c_str(), nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_GEOCENTRIC_CRS); + EXPECT_EQ(proj_get_type(obj), PJ_TYPE_GEOCENTRIC_CRS); } { - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, GeographicCRS::EPSG_4326->datum() ->exportToWKT(WKTFormatter::create().get()) .c_str(), nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_GEODETIC_REFERENCE_FRAME); + EXPECT_EQ(proj_get_type(obj), PJ_TYPE_GEODETIC_REFERENCE_FRAME); } { - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, GeographicCRS::EPSG_4326->ellipsoid() ->exportToWKT(WKTFormatter::create().get()) .c_str(), nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_ELLIPSOID); + EXPECT_EQ(proj_get_type(obj), PJ_TYPE_ELLIPSOID); } { - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, createProjectedCRS() ->exportToWKT(WKTFormatter::create().get()) .c_str(), nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_PROJECTED_CRS); + EXPECT_EQ(proj_get_type(obj), PJ_TYPE_PROJECTED_CRS); } { - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, createVerticalCRS() ->exportToWKT(WKTFormatter::create().get()) .c_str(), nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_VERTICAL_CRS); + EXPECT_EQ(proj_get_type(obj), PJ_TYPE_VERTICAL_CRS); } { - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, createVerticalCRS() ->datum() ->exportToWKT(WKTFormatter::create().get()) @@ -730,10 +724,10 @@ TEST_F(CApi, proj_obj_get_type) { nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_VERTICAL_REFERENCE_FRAME); + EXPECT_EQ(proj_get_type(obj), PJ_TYPE_VERTICAL_REFERENCE_FRAME); } { - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, createProjectedCRS() ->derivingConversion() ->exportToWKT(WKTFormatter::create().get()) @@ -741,19 +735,19 @@ TEST_F(CApi, proj_obj_get_type) { nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_CONVERSION); + EXPECT_EQ(proj_get_type(obj), PJ_TYPE_CONVERSION); } { - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, createBoundCRS()->exportToWKT(WKTFormatter::create().get()).c_str(), nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_BOUND_CRS); + EXPECT_EQ(proj_get_type(obj), PJ_TYPE_BOUND_CRS); } { - auto obj = proj_obj_create_from_wkt( + auto obj = proj_create_from_wkt( m_ctxt, createBoundCRS() ->transformation() ->exportToWKT(WKTFormatter::create().get()) @@ -761,11 +755,11 @@ TEST_F(CApi, proj_obj_get_type) { nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - EXPECT_EQ(proj_obj_get_type(obj), PJ_OBJ_TYPE_TRANSFORMATION); + EXPECT_EQ(proj_get_type(obj), PJ_TYPE_TRANSFORMATION); } { - auto obj = proj_obj_create_from_wkt(m_ctxt, "AUTHORITY[\"EPSG\", 4326]", - nullptr, nullptr, nullptr); + auto obj = proj_create_from_wkt(m_ctxt, "AUTHORITY[\"EPSG\", 4326]", + nullptr, nullptr, nullptr); ObjectKeeper keeper(obj); ASSERT_EQ(obj, nullptr); } @@ -773,63 +767,61 @@ TEST_F(CApi, proj_obj_get_type) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_create_from_database) { +TEST_F(CApi, proj_create_from_database) { { - auto crs = proj_obj_create_from_database( - m_ctxt, "EPSG", "-1", PJ_OBJ_CATEGORY_CRS, false, nullptr); + auto crs = proj_create_from_database(m_ctxt, "EPSG", "-1", + PJ_CATEGORY_CRS, false, nullptr); ASSERT_EQ(crs, nullptr); } { - auto crs = proj_obj_create_from_database( - m_ctxt, "EPSG", "4326", PJ_OBJ_CATEGORY_CRS, false, nullptr); + auto crs = proj_create_from_database(m_ctxt, "EPSG", "4326", + PJ_CATEGORY_CRS, false, nullptr); ASSERT_NE(crs, nullptr); ObjectKeeper keeper(crs); - EXPECT_TRUE(proj_obj_is_crs(crs)); - EXPECT_FALSE(proj_obj_is_deprecated(crs)); - EXPECT_EQ(proj_obj_get_type(crs), PJ_OBJ_TYPE_GEOGRAPHIC_2D_CRS); + EXPECT_TRUE(proj_is_crs(crs)); + EXPECT_FALSE(proj_is_deprecated(crs)); + EXPECT_EQ(proj_get_type(crs), PJ_TYPE_GEOGRAPHIC_2D_CRS); - const char *code = proj_obj_get_id_code(crs, 0); + const char *code = proj_get_id_code(crs, 0); ASSERT_NE(code, nullptr); EXPECT_EQ(std::string(code), "4326"); } { - auto crs = proj_obj_create_from_database( - m_ctxt, "EPSG", "6871", PJ_OBJ_CATEGORY_CRS, false, nullptr); + auto crs = proj_create_from_database(m_ctxt, "EPSG", "6871", + PJ_CATEGORY_CRS, false, nullptr); ASSERT_NE(crs, nullptr); ObjectKeeper keeper(crs); - EXPECT_TRUE(proj_obj_is_crs(crs)); - EXPECT_EQ(proj_obj_get_type(crs), PJ_OBJ_TYPE_COMPOUND_CRS); + EXPECT_TRUE(proj_is_crs(crs)); + EXPECT_EQ(proj_get_type(crs), PJ_TYPE_COMPOUND_CRS); } { - auto ellipsoid = proj_obj_create_from_database( - m_ctxt, "EPSG", "7030", PJ_OBJ_CATEGORY_ELLIPSOID, false, nullptr); + auto ellipsoid = proj_create_from_database( + m_ctxt, "EPSG", "7030", PJ_CATEGORY_ELLIPSOID, false, nullptr); ASSERT_NE(ellipsoid, nullptr); ObjectKeeper keeper(ellipsoid); - EXPECT_EQ(proj_obj_get_type(ellipsoid), PJ_OBJ_TYPE_ELLIPSOID); + EXPECT_EQ(proj_get_type(ellipsoid), PJ_TYPE_ELLIPSOID); } { - auto pm = proj_obj_create_from_database(m_ctxt, "EPSG", "8903", - PJ_OBJ_CATEGORY_PRIME_MERIDIAN, - false, nullptr); + auto pm = proj_create_from_database( + m_ctxt, "EPSG", "8903", PJ_CATEGORY_PRIME_MERIDIAN, false, nullptr); ASSERT_NE(pm, nullptr); ObjectKeeper keeper(pm); - EXPECT_EQ(proj_obj_get_type(pm), PJ_OBJ_TYPE_PRIME_MERIDIAN); + EXPECT_EQ(proj_get_type(pm), PJ_TYPE_PRIME_MERIDIAN); } { - auto datum = proj_obj_create_from_database( - m_ctxt, "EPSG", "6326", PJ_OBJ_CATEGORY_DATUM, false, nullptr); + auto datum = proj_create_from_database( + m_ctxt, "EPSG", "6326", PJ_CATEGORY_DATUM, false, nullptr); ASSERT_NE(datum, nullptr); ObjectKeeper keeper(datum); - EXPECT_EQ(proj_obj_get_type(datum), - PJ_OBJ_TYPE_GEODETIC_REFERENCE_FRAME); + EXPECT_EQ(proj_get_type(datum), PJ_TYPE_GEODETIC_REFERENCE_FRAME); } { - auto op = proj_obj_create_from_database( - m_ctxt, "EPSG", "16031", PJ_OBJ_CATEGORY_COORDINATE_OPERATION, - false, nullptr); + auto op = proj_create_from_database(m_ctxt, "EPSG", "16031", + PJ_CATEGORY_COORDINATE_OPERATION, + false, nullptr); ASSERT_NE(op, nullptr); ObjectKeeper keeper(op); - EXPECT_EQ(proj_obj_get_type(op), PJ_OBJ_TYPE_CONVERSION); + EXPECT_EQ(proj_get_type(op), PJ_TYPE_CONVERSION); auto info = proj_pj_info(op); EXPECT_NE(info.id, nullptr); @@ -841,12 +833,12 @@ TEST_F(CApi, proj_obj_create_from_database) { EXPECT_EQ(info.accuracy, 0); } { - auto op = proj_obj_create_from_database( - m_ctxt, "EPSG", "1024", PJ_OBJ_CATEGORY_COORDINATE_OPERATION, false, + auto op = proj_create_from_database( + m_ctxt, "EPSG", "1024", PJ_CATEGORY_COORDINATE_OPERATION, false, nullptr); ASSERT_NE(op, nullptr); ObjectKeeper keeper(op); - EXPECT_EQ(proj_obj_get_type(op), PJ_OBJ_TYPE_TRANSFORMATION); + EXPECT_EQ(proj_get_type(op), PJ_TYPE_TRANSFORMATION); auto info = proj_pj_info(op); EXPECT_NE(info.id, nullptr); @@ -870,7 +862,7 @@ TEST_F(CApi, proj_obj_create_from_database) { // --------------------------------------------------------------------------- TEST_F(CApi, proj_crs) { - auto crs = proj_obj_create_from_wkt( + auto crs = proj_create_from_wkt( m_ctxt, createProjectedCRS() ->exportToWKT( @@ -879,67 +871,67 @@ TEST_F(CApi, proj_crs) { nullptr, nullptr, nullptr); ASSERT_NE(crs, nullptr); ObjectKeeper keeper(crs); - EXPECT_TRUE(proj_obj_is_crs(crs)); + EXPECT_TRUE(proj_is_crs(crs)); - auto geodCRS = proj_obj_crs_get_geodetic_crs(m_ctxt, crs); + auto geodCRS = proj_crs_get_geodetic_crs(m_ctxt, crs); ASSERT_NE(geodCRS, nullptr); ObjectKeeper keeper_geogCRS(geodCRS); - EXPECT_TRUE(proj_obj_is_crs(geodCRS)); - auto geogCRS_name = proj_obj_get_name(geodCRS); + EXPECT_TRUE(proj_is_crs(geodCRS)); + auto geogCRS_name = proj_get_name(geodCRS); ASSERT_TRUE(geogCRS_name != nullptr); EXPECT_EQ(geogCRS_name, std::string("WGS 84")); - auto h_datum = proj_obj_crs_get_horizontal_datum(m_ctxt, crs); + auto h_datum = proj_crs_get_horizontal_datum(m_ctxt, crs); ASSERT_NE(h_datum, nullptr); ObjectKeeper keeper_h_datum(h_datum); - auto datum = proj_obj_crs_get_datum(m_ctxt, crs); + auto datum = proj_crs_get_datum(m_ctxt, crs); ASSERT_NE(datum, nullptr); ObjectKeeper keeper_datum(datum); - EXPECT_TRUE(proj_obj_is_equivalent_to(h_datum, datum, PJ_COMP_STRICT)); + EXPECT_TRUE(proj_is_equivalent_to(h_datum, datum, PJ_COMP_STRICT)); - auto datum_name = proj_obj_get_name(datum); + auto datum_name = proj_get_name(datum); ASSERT_TRUE(datum_name != nullptr); EXPECT_EQ(datum_name, std::string("World Geodetic System 1984")); - auto ellipsoid = proj_obj_get_ellipsoid(m_ctxt, crs); + auto ellipsoid = proj_get_ellipsoid(m_ctxt, crs); ASSERT_NE(ellipsoid, nullptr); ObjectKeeper keeper_ellipsoid(ellipsoid); - auto ellipsoid_name = proj_obj_get_name(ellipsoid); + auto ellipsoid_name = proj_get_name(ellipsoid); ASSERT_TRUE(ellipsoid_name != nullptr); EXPECT_EQ(ellipsoid_name, std::string("WGS 84")); - auto ellipsoid_from_datum = proj_obj_get_ellipsoid(m_ctxt, datum); + auto ellipsoid_from_datum = proj_get_ellipsoid(m_ctxt, datum); ASSERT_NE(ellipsoid_from_datum, nullptr); ObjectKeeper keeper_ellipsoid_from_datum(ellipsoid_from_datum); - EXPECT_EQ(proj_obj_get_ellipsoid(m_ctxt, ellipsoid), nullptr); - EXPECT_FALSE(proj_obj_is_crs(ellipsoid)); + EXPECT_EQ(proj_get_ellipsoid(m_ctxt, ellipsoid), nullptr); + EXPECT_FALSE(proj_is_crs(ellipsoid)); double a; double b; int b_is_computed; double rf; - EXPECT_TRUE(proj_obj_ellipsoid_get_parameters(m_ctxt, ellipsoid, nullptr, - nullptr, nullptr, nullptr)); - EXPECT_TRUE(proj_obj_ellipsoid_get_parameters(m_ctxt, ellipsoid, &a, &b, - &b_is_computed, &rf)); - EXPECT_FALSE(proj_obj_ellipsoid_get_parameters(m_ctxt, crs, &a, &b, - &b_is_computed, &rf)); + EXPECT_TRUE(proj_ellipsoid_get_parameters(m_ctxt, ellipsoid, nullptr, + nullptr, nullptr, nullptr)); + EXPECT_TRUE(proj_ellipsoid_get_parameters(m_ctxt, ellipsoid, &a, &b, + &b_is_computed, &rf)); + EXPECT_FALSE(proj_ellipsoid_get_parameters(m_ctxt, crs, &a, &b, + &b_is_computed, &rf)); EXPECT_EQ(a, 6378137); EXPECT_NEAR(b, 6356752.31424518, 1e-9); EXPECT_EQ(b_is_computed, 1); EXPECT_EQ(rf, 298.257223563); - auto id = proj_obj_get_id_code(ellipsoid, 0); + auto id = proj_get_id_code(ellipsoid, 0); ASSERT_TRUE(id != nullptr); EXPECT_EQ(id, std::string("7030")); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_get_prime_meridian) { - auto crs = proj_obj_create_from_wkt( +TEST_F(CApi, proj_get_prime_meridian) { + auto crs = proj_create_from_wkt( m_ctxt, createProjectedCRS() ->exportToWKT( @@ -949,31 +941,31 @@ TEST_F(CApi, proj_obj_get_prime_meridian) { ASSERT_NE(crs, nullptr); ObjectKeeper keeper(crs); - auto pm = proj_obj_get_prime_meridian(m_ctxt, crs); + auto pm = proj_get_prime_meridian(m_ctxt, crs); ASSERT_NE(pm, nullptr); ObjectKeeper keeper_pm(pm); - auto pm_name = proj_obj_get_name(pm); + auto pm_name = proj_get_name(pm); ASSERT_TRUE(pm_name != nullptr); EXPECT_EQ(pm_name, std::string("Greenwich")); - EXPECT_EQ(proj_obj_get_prime_meridian(m_ctxt, pm), nullptr); + EXPECT_EQ(proj_get_prime_meridian(m_ctxt, pm), nullptr); - EXPECT_TRUE(proj_obj_prime_meridian_get_parameters(m_ctxt, pm, nullptr, - nullptr, nullptr)); + EXPECT_TRUE(proj_prime_meridian_get_parameters(m_ctxt, pm, nullptr, nullptr, + nullptr)); double longitude = -1; double longitude_unit = 0; const char *longitude_unit_name = nullptr; - EXPECT_TRUE(proj_obj_prime_meridian_get_parameters( + EXPECT_TRUE(proj_prime_meridian_get_parameters( m_ctxt, pm, &longitude, &longitude_unit, &longitude_unit_name)); EXPECT_EQ(longitude, 0); EXPECT_NEAR(longitude_unit, UnitOfMeasure::DEGREE.conversionToSI(), 1e-10); ASSERT_TRUE(longitude_unit_name != nullptr); EXPECT_EQ(longitude_unit_name, std::string("degree")); - auto datum = proj_obj_crs_get_horizontal_datum(m_ctxt, crs); + auto datum = proj_crs_get_horizontal_datum(m_ctxt, crs); ASSERT_NE(datum, nullptr); ObjectKeeper keeper_datum(datum); - auto pm_from_datum = proj_obj_get_prime_meridian(m_ctxt, datum); + auto pm_from_datum = proj_get_prime_meridian(m_ctxt, datum); ASSERT_NE(pm_from_datum, nullptr); ObjectKeeper keeper_pm_from_datum(pm_from_datum); } @@ -981,54 +973,54 @@ TEST_F(CApi, proj_obj_get_prime_meridian) { // --------------------------------------------------------------------------- TEST_F(CApi, proj_crs_compound) { - auto crs = proj_obj_create_from_wkt( + auto crs = proj_create_from_wkt( m_ctxt, createCompoundCRS()->exportToWKT(WKTFormatter::create().get()).c_str(), nullptr, nullptr, nullptr); ASSERT_NE(crs, nullptr); ObjectKeeper keeper(crs); - EXPECT_EQ(proj_obj_get_type(crs), PJ_OBJ_TYPE_COMPOUND_CRS); + EXPECT_EQ(proj_get_type(crs), PJ_TYPE_COMPOUND_CRS); - EXPECT_EQ(proj_obj_crs_get_sub_crs(m_ctxt, crs, -1), nullptr); - EXPECT_EQ(proj_obj_crs_get_sub_crs(m_ctxt, crs, 2), nullptr); + EXPECT_EQ(proj_crs_get_sub_crs(m_ctxt, crs, -1), nullptr); + EXPECT_EQ(proj_crs_get_sub_crs(m_ctxt, crs, 2), nullptr); - auto subcrs_horiz = proj_obj_crs_get_sub_crs(m_ctxt, crs, 0); + auto subcrs_horiz = proj_crs_get_sub_crs(m_ctxt, crs, 0); ASSERT_NE(subcrs_horiz, nullptr); ObjectKeeper keeper_subcrs_horiz(subcrs_horiz); - EXPECT_EQ(proj_obj_get_type(subcrs_horiz), PJ_OBJ_TYPE_PROJECTED_CRS); - EXPECT_EQ(proj_obj_crs_get_sub_crs(m_ctxt, subcrs_horiz, 0), nullptr); + EXPECT_EQ(proj_get_type(subcrs_horiz), PJ_TYPE_PROJECTED_CRS); + EXPECT_EQ(proj_crs_get_sub_crs(m_ctxt, subcrs_horiz, 0), nullptr); - auto subcrs_vertical = proj_obj_crs_get_sub_crs(m_ctxt, crs, 1); + auto subcrs_vertical = proj_crs_get_sub_crs(m_ctxt, crs, 1); ASSERT_NE(subcrs_vertical, nullptr); ObjectKeeper keeper_subcrs_vertical(subcrs_vertical); - EXPECT_EQ(proj_obj_get_type(subcrs_vertical), PJ_OBJ_TYPE_VERTICAL_CRS); + EXPECT_EQ(proj_get_type(subcrs_vertical), PJ_TYPE_VERTICAL_CRS); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_get_source_target_crs_bound_crs) { - auto crs = proj_obj_create_from_wkt( +TEST_F(CApi, proj_get_source_target_crs_bound_crs) { + auto crs = proj_create_from_wkt( m_ctxt, createBoundCRS()->exportToWKT(WKTFormatter::create().get()).c_str(), nullptr, nullptr, nullptr); ASSERT_NE(crs, nullptr); ObjectKeeper keeper(crs); - auto sourceCRS = proj_obj_get_source_crs(m_ctxt, crs); + auto sourceCRS = proj_get_source_crs(m_ctxt, crs); ASSERT_NE(sourceCRS, nullptr); ObjectKeeper keeper_sourceCRS(sourceCRS); - EXPECT_EQ(std::string(proj_obj_get_name(sourceCRS)), "NTF (Paris)"); + EXPECT_EQ(std::string(proj_get_name(sourceCRS)), "NTF (Paris)"); - auto targetCRS = proj_obj_get_target_crs(m_ctxt, crs); + auto targetCRS = proj_get_target_crs(m_ctxt, crs); ASSERT_NE(targetCRS, nullptr); ObjectKeeper keeper_targetCRS(targetCRS); - EXPECT_EQ(std::string(proj_obj_get_name(targetCRS)), "WGS 84"); + EXPECT_EQ(std::string(proj_get_name(targetCRS)), "WGS 84"); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_get_source_target_crs_transformation) { - auto obj = proj_obj_create_from_wkt( +TEST_F(CApi, proj_get_source_target_crs_transformation) { + auto obj = proj_create_from_wkt( m_ctxt, createBoundCRS() ->transformation() ->exportToWKT(WKTFormatter::create().get()) @@ -1037,62 +1029,62 @@ TEST_F(CApi, proj_obj_get_source_target_crs_transformation) { ASSERT_NE(obj, nullptr); ObjectKeeper keeper(obj); - auto sourceCRS = proj_obj_get_source_crs(m_ctxt, obj); + auto sourceCRS = proj_get_source_crs(m_ctxt, obj); ASSERT_NE(sourceCRS, nullptr); ObjectKeeper keeper_sourceCRS(sourceCRS); - EXPECT_EQ(std::string(proj_obj_get_name(sourceCRS)), "NTF (Paris)"); + EXPECT_EQ(std::string(proj_get_name(sourceCRS)), "NTF (Paris)"); - auto targetCRS = proj_obj_get_target_crs(m_ctxt, obj); + auto targetCRS = proj_get_target_crs(m_ctxt, obj); ASSERT_NE(targetCRS, nullptr); ObjectKeeper keeper_targetCRS(targetCRS); - EXPECT_EQ(std::string(proj_obj_get_name(targetCRS)), "WGS 84"); + EXPECT_EQ(std::string(proj_get_name(targetCRS)), "WGS 84"); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_get_source_crs_of_projected_crs) { - auto crs = proj_obj_create_from_wkt( +TEST_F(CApi, proj_get_source_crs_of_projected_crs) { + auto crs = proj_create_from_wkt( m_ctxt, createProjectedCRS()->exportToWKT(WKTFormatter::create().get()).c_str(), nullptr, nullptr, nullptr); ASSERT_NE(crs, nullptr); ObjectKeeper keeper(crs); - auto sourceCRS = proj_obj_get_source_crs(m_ctxt, crs); + auto sourceCRS = proj_get_source_crs(m_ctxt, crs); ASSERT_NE(sourceCRS, nullptr); ObjectKeeper keeper_sourceCRS(sourceCRS); - EXPECT_EQ(std::string(proj_obj_get_name(sourceCRS)), "WGS 84"); + EXPECT_EQ(std::string(proj_get_name(sourceCRS)), "WGS 84"); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_get_source_target_crs_conversion_without_crs) { - auto obj = proj_obj_create_from_database( - m_ctxt, "EPSG", "16031", PJ_OBJ_CATEGORY_COORDINATE_OPERATION, false, - nullptr); +TEST_F(CApi, proj_get_source_target_crs_conversion_without_crs) { + auto obj = proj_create_from_database(m_ctxt, "EPSG", "16031", + PJ_CATEGORY_COORDINATE_OPERATION, + false, nullptr); ASSERT_NE(obj, nullptr); ObjectKeeper keeper(obj); - auto sourceCRS = proj_obj_get_source_crs(m_ctxt, obj); + auto sourceCRS = proj_get_source_crs(m_ctxt, obj); ASSERT_EQ(sourceCRS, nullptr); - auto targetCRS = proj_obj_get_target_crs(m_ctxt, obj); + auto targetCRS = proj_get_target_crs(m_ctxt, obj); ASSERT_EQ(targetCRS, nullptr); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_get_source_target_crs_invalid_object) { - auto obj = proj_obj_create_from_wkt( +TEST_F(CApi, proj_get_source_target_crs_invalid_object) { + auto obj = proj_create_from_wkt( m_ctxt, "ELLIPSOID[\"WGS 84\",6378137,298.257223563]", nullptr, nullptr, nullptr); ASSERT_NE(obj, nullptr); ObjectKeeper keeper(obj); - auto sourceCRS = proj_obj_get_source_crs(m_ctxt, obj); + auto sourceCRS = proj_get_source_crs(m_ctxt, obj); ASSERT_EQ(sourceCRS, nullptr); - auto targetCRS = proj_obj_get_target_crs(m_ctxt, obj); + auto targetCRS = proj_get_target_crs(m_ctxt, obj); ASSERT_EQ(targetCRS, nullptr); } @@ -1130,40 +1122,40 @@ TEST_F(CApi, proj_get_authorities_from_database) { TEST_F(CApi, proj_get_codes_from_database) { auto listTypes = - std::vector{PJ_OBJ_TYPE_ELLIPSOID, - - PJ_OBJ_TYPE_PRIME_MERIDIAN, - - PJ_OBJ_TYPE_GEODETIC_REFERENCE_FRAME, - PJ_OBJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME, - PJ_OBJ_TYPE_VERTICAL_REFERENCE_FRAME, - PJ_OBJ_TYPE_DYNAMIC_VERTICAL_REFERENCE_FRAME, - PJ_OBJ_TYPE_DATUM_ENSEMBLE, - - PJ_OBJ_TYPE_CRS, - PJ_OBJ_TYPE_GEODETIC_CRS, - PJ_OBJ_TYPE_GEOCENTRIC_CRS, - PJ_OBJ_TYPE_GEOGRAPHIC_CRS, - PJ_OBJ_TYPE_GEOGRAPHIC_2D_CRS, - PJ_OBJ_TYPE_GEOGRAPHIC_3D_CRS, - PJ_OBJ_TYPE_VERTICAL_CRS, - PJ_OBJ_TYPE_PROJECTED_CRS, - PJ_OBJ_TYPE_COMPOUND_CRS, - PJ_OBJ_TYPE_TEMPORAL_CRS, - PJ_OBJ_TYPE_BOUND_CRS, - PJ_OBJ_TYPE_OTHER_CRS, - - PJ_OBJ_TYPE_CONVERSION, - PJ_OBJ_TYPE_TRANSFORMATION, - PJ_OBJ_TYPE_CONCATENATED_OPERATION, - PJ_OBJ_TYPE_OTHER_COORDINATE_OPERATION, - - PJ_OBJ_TYPE_UNKNOWN}; + std::vector{PJ_TYPE_ELLIPSOID, + + PJ_TYPE_PRIME_MERIDIAN, + + PJ_TYPE_GEODETIC_REFERENCE_FRAME, + PJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME, + PJ_TYPE_VERTICAL_REFERENCE_FRAME, + PJ_TYPE_DYNAMIC_VERTICAL_REFERENCE_FRAME, + PJ_TYPE_DATUM_ENSEMBLE, + + PJ_TYPE_CRS, + PJ_TYPE_GEODETIC_CRS, + PJ_TYPE_GEOCENTRIC_CRS, + PJ_TYPE_GEOGRAPHIC_CRS, + PJ_TYPE_GEOGRAPHIC_2D_CRS, + PJ_TYPE_GEOGRAPHIC_3D_CRS, + PJ_TYPE_VERTICAL_CRS, + PJ_TYPE_PROJECTED_CRS, + PJ_TYPE_COMPOUND_CRS, + PJ_TYPE_TEMPORAL_CRS, + PJ_TYPE_BOUND_CRS, + PJ_TYPE_OTHER_CRS, + + PJ_TYPE_CONVERSION, + PJ_TYPE_TRANSFORMATION, + PJ_TYPE_CONCATENATED_OPERATION, + PJ_TYPE_OTHER_COORDINATE_OPERATION, + + PJ_TYPE_UNKNOWN}; for (const auto &type : listTypes) { auto list = proj_get_codes_from_database(m_ctxt, "EPSG", type, true); ListFreer feer(list); - if (type == PJ_OBJ_TYPE_TEMPORAL_CRS || type == PJ_OBJ_TYPE_BOUND_CRS || - type == PJ_OBJ_TYPE_UNKNOWN) { + if (type == PJ_TYPE_TEMPORAL_CRS || type == PJ_TYPE_BOUND_CRS || + type == PJ_TYPE_UNKNOWN) { EXPECT_EQ(list, nullptr) << type; } else { ASSERT_NE(list, nullptr) << type; @@ -1175,8 +1167,8 @@ TEST_F(CApi, proj_get_codes_from_database) { // --------------------------------------------------------------------------- TEST_F(CApi, conversion) { - auto crs = proj_obj_create_from_database( - m_ctxt, "EPSG", "32631", PJ_OBJ_CATEGORY_CRS, false, nullptr); + auto crs = proj_create_from_database(m_ctxt, "EPSG", "32631", + PJ_CATEGORY_CRS, false, nullptr); ASSERT_NE(crs, nullptr); ObjectKeeper keeper(crs); @@ -1185,14 +1177,14 @@ TEST_F(CApi, conversion) { nullptr, nullptr)); { - auto conv = proj_obj_crs_get_coordoperation(m_ctxt, crs); + auto conv = proj_crs_get_coordoperation(m_ctxt, crs); ASSERT_NE(conv, nullptr); ObjectKeeper keeper_conv(conv); - ASSERT_EQ(proj_obj_crs_get_coordoperation(m_ctxt, conv), nullptr); + ASSERT_EQ(proj_crs_get_coordoperation(m_ctxt, conv), nullptr); } - auto conv = proj_obj_crs_get_coordoperation(m_ctxt, crs); + auto conv = proj_crs_get_coordoperation(m_ctxt, crs); ASSERT_NE(conv, nullptr); ObjectKeeper keeper_conv(conv); @@ -1260,14 +1252,14 @@ TEST_F(CApi, conversion) { // --------------------------------------------------------------------------- TEST_F(CApi, transformation_from_boundCRS) { - auto crs = proj_obj_create_from_wkt( + auto crs = proj_create_from_wkt( m_ctxt, createBoundCRS()->exportToWKT(WKTFormatter::create().get()).c_str(), nullptr, nullptr, nullptr); ASSERT_NE(crs, nullptr); ObjectKeeper keeper(crs); - auto transf = proj_obj_crs_get_coordoperation(m_ctxt, crs); + auto transf = proj_crs_get_coordoperation(m_ctxt, crs); ASSERT_NE(transf, nullptr); ObjectKeeper keeper_transf(transf); } @@ -1275,9 +1267,9 @@ TEST_F(CApi, transformation_from_boundCRS) { // --------------------------------------------------------------------------- TEST_F(CApi, proj_coordoperation_get_grid_used) { - auto op = proj_obj_create_from_database( - m_ctxt, "EPSG", "1312", PJ_OBJ_CATEGORY_COORDINATE_OPERATION, true, - nullptr); + auto op = proj_create_from_database(m_ctxt, "EPSG", "1312", + PJ_CATEGORY_COORDINATE_OPERATION, true, + nullptr); ASSERT_NE(op, nullptr); ObjectKeeper keeper(op); @@ -1318,9 +1310,9 @@ TEST_F(CApi, proj_coordoperation_get_grid_used) { // --------------------------------------------------------------------------- TEST_F(CApi, proj_coordoperation_is_instanciable) { - auto op = proj_obj_create_from_database( - m_ctxt, "EPSG", "1671", PJ_OBJ_CATEGORY_COORDINATE_OPERATION, true, - nullptr); + auto op = proj_create_from_database(m_ctxt, "EPSG", "1671", + PJ_CATEGORY_COORDINATE_OPERATION, true, + nullptr); ASSERT_NE(op, nullptr); ObjectKeeper keeper(op); EXPECT_EQ(proj_coordoperation_is_instanciable(m_ctxt, op), 1); @@ -1328,18 +1320,18 @@ TEST_F(CApi, proj_coordoperation_is_instanciable) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_create_operations) { +TEST_F(CApi, proj_create_operations) { auto ctxt = proj_create_operation_factory_context(m_ctxt, nullptr); ASSERT_NE(ctxt, nullptr); ContextKeeper keeper_ctxt(ctxt); - auto source_crs = proj_obj_create_from_database( - m_ctxt, "EPSG", "4267", PJ_OBJ_CATEGORY_CRS, false, nullptr); // NAD27 + auto source_crs = proj_create_from_database( + m_ctxt, "EPSG", "4267", PJ_CATEGORY_CRS, false, nullptr); // NAD27 ASSERT_NE(source_crs, nullptr); ObjectKeeper keeper_source_crs(source_crs); - auto target_crs = proj_obj_create_from_database( - m_ctxt, "EPSG", "4269", PJ_OBJ_CATEGORY_CRS, false, nullptr); // NAD83 + auto target_crs = proj_create_from_database( + m_ctxt, "EPSG", "4269", PJ_CATEGORY_CRS, false, nullptr); // NAD83 ASSERT_NE(target_crs, nullptr); ObjectKeeper keeper_target_crs(target_crs); @@ -1349,33 +1341,32 @@ TEST_F(CApi, proj_obj_create_operations) { proj_operation_factory_context_set_grid_availability_use( m_ctxt, ctxt, PROJ_GRID_AVAILABILITY_IGNORED); - auto res = proj_obj_create_operations(m_ctxt, source_crs, target_crs, ctxt); + auto res = proj_create_operations(m_ctxt, source_crs, target_crs, ctxt); ASSERT_NE(res, nullptr); ObjListKeeper keeper_res(res); - EXPECT_EQ(proj_obj_list_get_count(res), 7); + EXPECT_EQ(proj_list_get_count(res), 7); - EXPECT_EQ(proj_obj_list_get(m_ctxt, res, -1), nullptr); - EXPECT_EQ(proj_obj_list_get(m_ctxt, res, proj_obj_list_get_count(res)), - nullptr); - auto op = proj_obj_list_get(m_ctxt, res, 0); + EXPECT_EQ(proj_list_get(m_ctxt, res, -1), nullptr); + EXPECT_EQ(proj_list_get(m_ctxt, res, proj_list_get_count(res)), nullptr); + auto op = proj_list_get(m_ctxt, res, 0); ASSERT_NE(op, nullptr); ObjectKeeper keeper_op(op); - EXPECT_EQ(proj_obj_get_name(op), std::string("NAD27 to NAD83 (3)")); + EXPECT_EQ(proj_get_name(op), std::string("NAD27 to NAD83 (3)")); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_create_operations_with_pivot) { +TEST_F(CApi, proj_create_operations_with_pivot) { - auto source_crs = proj_obj_create_from_database( - m_ctxt, "EPSG", "4326", PJ_OBJ_CATEGORY_CRS, false, nullptr); // WGS84 + auto source_crs = proj_create_from_database( + m_ctxt, "EPSG", "4326", PJ_CATEGORY_CRS, false, nullptr); // WGS84 ASSERT_NE(source_crs, nullptr); ObjectKeeper keeper_source_crs(source_crs); - auto target_crs = proj_obj_create_from_database( - m_ctxt, "EPSG", "6668", PJ_OBJ_CATEGORY_CRS, false, nullptr); // JGD2011 + auto target_crs = proj_create_from_database( + m_ctxt, "EPSG", "6668", PJ_CATEGORY_CRS, false, nullptr); // JGD2011 ASSERT_NE(target_crs, nullptr); ObjectKeeper keeper_target_crs(target_crs); @@ -1387,17 +1378,16 @@ TEST_F(CApi, proj_obj_create_operations_with_pivot) { ASSERT_NE(ctxt, nullptr); ContextKeeper keeper_ctxt(ctxt); - auto res = - proj_obj_create_operations(m_ctxt, source_crs, target_crs, ctxt); + auto res = proj_create_operations(m_ctxt, source_crs, target_crs, ctxt); ASSERT_NE(res, nullptr); ObjListKeeper keeper_res(res); - EXPECT_EQ(proj_obj_list_get_count(res), 1); - auto op = proj_obj_list_get(m_ctxt, res, 0); + EXPECT_EQ(proj_list_get_count(res), 1); + auto op = proj_list_get(m_ctxt, res, 0); ASSERT_NE(op, nullptr); ObjectKeeper keeper_op(op); EXPECT_EQ( - proj_obj_get_name(op), + proj_get_name(op), std::string( "Inverse of JGD2000 to WGS 84 (1) + JGD2000 to JGD2011 (2)")); } @@ -1410,16 +1400,15 @@ TEST_F(CApi, proj_obj_create_operations_with_pivot) { proj_operation_factory_context_set_allow_use_intermediate_crs( m_ctxt, ctxt, false); - auto res = - proj_obj_create_operations(m_ctxt, source_crs, target_crs, ctxt); + auto res = proj_create_operations(m_ctxt, source_crs, target_crs, ctxt); ASSERT_NE(res, nullptr); ObjListKeeper keeper_res(res); - EXPECT_EQ(proj_obj_list_get_count(res), 1); - auto op = proj_obj_list_get(m_ctxt, res, 0); + EXPECT_EQ(proj_list_get_count(res), 1); + auto op = proj_list_get(m_ctxt, res, 0); ASSERT_NE(op, nullptr); ObjectKeeper keeper_op(op); - EXPECT_EQ(proj_obj_get_name(op), + EXPECT_EQ(proj_get_name(op), std::string("Null geographic offset from WGS 84 to JGD2011")); } @@ -1437,17 +1426,16 @@ TEST_F(CApi, proj_obj_create_operations_with_pivot) { proj_operation_factory_context_set_grid_availability_use( m_ctxt, ctxt, PROJ_GRID_AVAILABILITY_IGNORED); - auto res = - proj_obj_create_operations(m_ctxt, source_crs, target_crs, ctxt); + auto res = proj_create_operations(m_ctxt, source_crs, target_crs, ctxt); ASSERT_NE(res, nullptr); ObjListKeeper keeper_res(res); - EXPECT_EQ(proj_obj_list_get_count(res), 7); - auto op = proj_obj_list_get(m_ctxt, res, 1); + EXPECT_EQ(proj_list_get_count(res), 7); + auto op = proj_list_get(m_ctxt, res, 1); ASSERT_NE(op, nullptr); ObjectKeeper keeper_op(op); EXPECT_EQ( - proj_obj_get_name(op), + proj_get_name(op), std::string( "Inverse of Tokyo to WGS 84 (108) + Tokyo to JGD2011 (2)")); } @@ -1466,18 +1454,17 @@ TEST_F(CApi, proj_obj_create_operations_with_pivot) { proj_operation_factory_context_set_grid_availability_use( m_ctxt, ctxt, PROJ_GRID_AVAILABILITY_IGNORED); - auto res = - proj_obj_create_operations(m_ctxt, source_crs, target_crs, ctxt); + auto res = proj_create_operations(m_ctxt, source_crs, target_crs, ctxt); ASSERT_NE(res, nullptr); ObjListKeeper keeper_res(res); // includes results from ESRI - EXPECT_EQ(proj_obj_list_get_count(res), 5); - auto op = proj_obj_list_get(m_ctxt, res, 0); + EXPECT_EQ(proj_list_get_count(res), 5); + auto op = proj_list_get(m_ctxt, res, 0); ASSERT_NE(op, nullptr); ObjectKeeper keeper_op(op); EXPECT_EQ( - proj_obj_get_name(op), + proj_get_name(op), std::string( "Inverse of JGD2000 to WGS 84 (1) + JGD2000 to JGD2011 (2)")); } @@ -1489,9 +1476,9 @@ TEST_F(CApi, proj_context_set_database_path_null) { EXPECT_TRUE( proj_context_set_database_path(m_ctxt, nullptr, nullptr, nullptr)); - auto source_crs = proj_obj_create_from_database(m_ctxt, "EPSG", "4326", - PJ_OBJ_CATEGORY_CRS, false, - nullptr); // WGS84 + auto source_crs = proj_create_from_database(m_ctxt, "EPSG", "4326", + PJ_CATEGORY_CRS, false, + nullptr); // WGS84 ASSERT_NE(source_crs, nullptr); ObjectKeeper keeper_source_crs(source_crs); } @@ -1516,9 +1503,9 @@ TEST_F(CApi, proj_context_set_database_path_main_memory_one_aux) { EXPECT_TRUE(proj_context_set_database_path(m_ctxt, ":memory:", aux_db_list, nullptr)); - auto source_crs = proj_obj_create_from_database(m_ctxt, "EPSG", "4326", - PJ_OBJ_CATEGORY_CRS, false, - nullptr); // WGS84 + auto source_crs = proj_create_from_database(m_ctxt, "EPSG", "4326", + PJ_CATEGORY_CRS, false, + nullptr); // WGS84 ASSERT_NE(source_crs, nullptr); ObjectKeeper keeper_source_crs(source_crs); } @@ -1531,9 +1518,9 @@ TEST_F(CApi, proj_context_set_database_path_error_1) { nullptr, nullptr)); // We will eventually re-open on the default DB - auto source_crs = proj_obj_create_from_database(m_ctxt, "EPSG", "4326", - PJ_OBJ_CATEGORY_CRS, false, - nullptr); // WGS84 + auto source_crs = proj_create_from_database(m_ctxt, "EPSG", "4326", + PJ_CATEGORY_CRS, false, + nullptr); // WGS84 ASSERT_NE(source_crs, nullptr); ObjectKeeper keeper_source_crs(source_crs); } @@ -1547,9 +1534,9 @@ TEST_F(CApi, proj_context_set_database_path_error_2) { proj_context_set_database_path(m_ctxt, nullptr, aux_db_list, nullptr)); // We will eventually re-open on the default DB - auto source_crs = proj_obj_create_from_database(m_ctxt, "EPSG", "4326", - PJ_OBJ_CATEGORY_CRS, false, - nullptr); // WGS84 + auto source_crs = proj_create_from_database(m_ctxt, "EPSG", "4326", + PJ_CATEGORY_CRS, false, + nullptr); // WGS84 ASSERT_NE(source_crs, nullptr); ObjectKeeper keeper_source_crs(source_crs); } @@ -1596,46 +1583,45 @@ TEST_F(CApi, proj_context_guess_wkt_dialect) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_create_from_name) { +TEST_F(CApi, proj_create_from_name) { /* - PJ_OBJ_LIST PROJ_DLL *proj_obj_create_from_name( + PJ_OBJ_LIST PROJ_DLL *proj_create_from_name( PJ_CONTEXT *ctx, const char *auth_name, const char *searchedName, - const PJ_OBJ_TYPE* types, + const PJ_TYPE* types, size_t typesCount, int approximateMatch, size_t limitResultCount, const char* const *options); */ { - auto res = proj_obj_create_from_name(m_ctxt, nullptr, "WGS 84", nullptr, - 0, false, 0, nullptr); + auto res = proj_create_from_name(m_ctxt, nullptr, "WGS 84", nullptr, 0, + false, 0, nullptr); ASSERT_NE(res, nullptr); ObjListKeeper keeper_res(res); - EXPECT_EQ(proj_obj_list_get_count(res), 4); + EXPECT_EQ(proj_list_get_count(res), 4); } { - auto res = proj_obj_create_from_name(m_ctxt, "xx", "WGS 84", nullptr, 0, - false, 0, nullptr); + auto res = proj_create_from_name(m_ctxt, "xx", "WGS 84", nullptr, 0, + false, 0, nullptr); ASSERT_NE(res, nullptr); ObjListKeeper keeper_res(res); - EXPECT_EQ(proj_obj_list_get_count(res), 0); + EXPECT_EQ(proj_list_get_count(res), 0); } { - const PJ_OBJ_TYPE types[] = {PJ_OBJ_TYPE_GEODETIC_CRS, - PJ_OBJ_TYPE_PROJECTED_CRS}; - auto res = proj_obj_create_from_name(m_ctxt, nullptr, "WGS 84", types, - 2, true, 10, nullptr); + const PJ_TYPE types[] = {PJ_TYPE_GEODETIC_CRS, PJ_TYPE_PROJECTED_CRS}; + auto res = proj_create_from_name(m_ctxt, nullptr, "WGS 84", types, 2, + true, 10, nullptr); ASSERT_NE(res, nullptr); ObjListKeeper keeper_res(res); - EXPECT_EQ(proj_obj_list_get_count(res), 10); + EXPECT_EQ(proj_list_get_count(res), 10); } } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_identify) { - auto obj = proj_obj_create_from_wkt( +TEST_F(CApi, proj_identify) { + auto obj = proj_create_from_wkt( m_ctxt, GeographicCRS::EPSG_4807->exportToWKT(WKTFormatter::create().get()) .c_str(), @@ -1643,28 +1629,27 @@ TEST_F(CApi, proj_obj_identify) { ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); { - auto res = proj_obj_identify(m_ctxt, obj, nullptr, nullptr, nullptr); + auto res = proj_identify(m_ctxt, obj, nullptr, nullptr, nullptr); ObjListKeeper keeper_res(res); - EXPECT_EQ(proj_obj_list_get_count(res), 1); + EXPECT_EQ(proj_list_get_count(res), 1); } { int *confidence = nullptr; - auto res = proj_obj_identify(m_ctxt, obj, "EPSG", nullptr, &confidence); + auto res = proj_identify(m_ctxt, obj, "EPSG", nullptr, &confidence); ObjListKeeper keeper_res(res); - EXPECT_EQ(proj_obj_list_get_count(res), 1); + EXPECT_EQ(proj_list_get_count(res), 1); EXPECT_EQ(confidence[0], 100); proj_int_list_destroy(confidence); } { - auto objEllps = proj_obj_create_from_wkt( + auto objEllps = proj_create_from_wkt( m_ctxt, Ellipsoid::GRS1980->exportToWKT(WKTFormatter::create().get()) .c_str(), nullptr, nullptr, nullptr); ObjectKeeper keeperEllps(objEllps); ASSERT_NE(objEllps, nullptr); - auto res = - proj_obj_identify(m_ctxt, objEllps, nullptr, nullptr, nullptr); + auto res = proj_identify(m_ctxt, objEllps, nullptr, nullptr, nullptr); ObjListKeeper keeper_res(res); EXPECT_EQ(res, nullptr); } @@ -1672,21 +1657,20 @@ TEST_F(CApi, proj_obj_identify) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_get_area_of_use) { +TEST_F(CApi, proj_get_area_of_use) { { - auto crs = proj_obj_create_from_database( - m_ctxt, "EPSG", "4326", PJ_OBJ_CATEGORY_CRS, false, nullptr); + auto crs = proj_create_from_database(m_ctxt, "EPSG", "4326", + PJ_CATEGORY_CRS, false, nullptr); ASSERT_NE(crs, nullptr); ObjectKeeper keeper(crs); - EXPECT_TRUE(proj_obj_get_area_of_use(m_ctxt, crs, nullptr, nullptr, - nullptr, nullptr, nullptr)); + EXPECT_TRUE(proj_get_area_of_use(m_ctxt, crs, nullptr, nullptr, nullptr, + nullptr, nullptr)); const char *name = nullptr; double w; double s; double e; double n; - EXPECT_TRUE( - proj_obj_get_area_of_use(m_ctxt, crs, &w, &s, &e, &n, &name)); + EXPECT_TRUE(proj_get_area_of_use(m_ctxt, crs, &w, &s, &e, &n, &name)); EXPECT_EQ(w, -180); EXPECT_EQ(s, -90); EXPECT_EQ(e, 180); @@ -1696,11 +1680,11 @@ TEST_F(CApi, proj_obj_get_area_of_use) { } { auto obj = - proj_obj_create_from_user_input(m_ctxt, "+proj=longlat", nullptr); + proj_create_from_user_input(m_ctxt, "+proj=longlat", nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - EXPECT_FALSE(proj_obj_get_area_of_use(m_ctxt, obj, nullptr, nullptr, - nullptr, nullptr, nullptr)); + EXPECT_FALSE(proj_get_area_of_use(m_ctxt, obj, nullptr, nullptr, + nullptr, nullptr, nullptr)); } } @@ -1708,23 +1692,23 @@ TEST_F(CApi, proj_obj_get_area_of_use) { TEST_F(CApi, proj_coordoperation_get_accuracy) { { - auto crs = proj_obj_create_from_database( - m_ctxt, "EPSG", "4326", PJ_OBJ_CATEGORY_CRS, false, nullptr); + auto crs = proj_create_from_database(m_ctxt, "EPSG", "4326", + PJ_CATEGORY_CRS, false, nullptr); ASSERT_NE(crs, nullptr); ObjectKeeper keeper(crs); EXPECT_EQ(proj_coordoperation_get_accuracy(m_ctxt, crs), -1.0); } { - auto obj = proj_obj_create_from_database( - m_ctxt, "EPSG", "1170", PJ_OBJ_CATEGORY_COORDINATE_OPERATION, false, - nullptr); + auto obj = proj_create_from_database(m_ctxt, "EPSG", "1170", + PJ_CATEGORY_COORDINATE_OPERATION, + false, nullptr); ASSERT_NE(obj, nullptr); ObjectKeeper keeper(obj); EXPECT_EQ(proj_coordoperation_get_accuracy(m_ctxt, obj), 16.0); } { auto obj = - proj_obj_create_from_user_input(m_ctxt, "+proj=helmert", nullptr); + proj_create_from_user_input(m_ctxt, "+proj=helmert", nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); EXPECT_EQ(proj_coordoperation_get_accuracy(m_ctxt, obj), -1.0); @@ -1733,21 +1717,21 @@ TEST_F(CApi, proj_coordoperation_get_accuracy) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_create_geographic_crs) { +TEST_F(CApi, proj_create_geographic_crs) { - auto cs = proj_obj_create_ellipsoidal_2D_cs( + auto cs = proj_create_ellipsoidal_2D_cs( m_ctxt, PJ_ELLPS2D_LATITUDE_LONGITUDE, nullptr, 0); ObjectKeeper keeper_cs(cs); ASSERT_NE(cs, nullptr); { - auto obj = proj_obj_create_geographic_crs( + auto obj = proj_create_geographic_crs( m_ctxt, "WGS 84", "World Geodetic System 1984", "WGS 84", 6378137, 298.257223563, "Greenwich", 0.0, "Degree", 0.0174532925199433, cs); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - auto objRef = proj_obj_create_from_user_input( + auto objRef = proj_create_from_user_input( m_ctxt, GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get()) .c_str(), @@ -1755,36 +1739,36 @@ TEST_F(CApi, proj_obj_create_geographic_crs) { ObjectKeeper keeperobjRef(objRef); EXPECT_NE(objRef, nullptr); - EXPECT_TRUE(proj_obj_is_equivalent_to(obj, objRef, PJ_COMP_EQUIVALENT)); + EXPECT_TRUE(proj_is_equivalent_to(obj, objRef, PJ_COMP_EQUIVALENT)); - auto datum = proj_obj_crs_get_datum(m_ctxt, obj); + auto datum = proj_crs_get_datum(m_ctxt, obj); ObjectKeeper keeper_datum(datum); ASSERT_NE(datum, nullptr); - auto obj2 = proj_obj_create_geographic_crs_from_datum(m_ctxt, "WGS 84", - datum, cs); + auto obj2 = + proj_create_geographic_crs_from_datum(m_ctxt, "WGS 84", datum, cs); ObjectKeeper keeperObj(obj2); ASSERT_NE(obj2, nullptr); - EXPECT_TRUE(proj_obj_is_equivalent_to(obj, obj2, PJ_COMP_STRICT)); + EXPECT_TRUE(proj_is_equivalent_to(obj, obj2, PJ_COMP_STRICT)); } { - auto obj = proj_obj_create_geographic_crs(m_ctxt, nullptr, nullptr, - nullptr, 1.0, 0.0, nullptr, - 0.0, nullptr, 0.0, cs); + auto obj = + proj_create_geographic_crs(m_ctxt, nullptr, nullptr, nullptr, 1.0, + 0.0, nullptr, 0.0, nullptr, 0.0, cs); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); } // Datum with GDAL_WKT1 spelling: special case of WGS_1984 { - auto obj = proj_obj_create_geographic_crs( + auto obj = proj_create_geographic_crs( m_ctxt, "WGS 84", "WGS_1984", "WGS 84", 6378137, 298.257223563, "Greenwich", 0.0, "Degree", 0.0174532925199433, cs); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - auto objRef = proj_obj_create_from_user_input( + auto objRef = proj_create_from_user_input( m_ctxt, GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get()) .c_str(), @@ -1792,18 +1776,18 @@ TEST_F(CApi, proj_obj_create_geographic_crs) { ObjectKeeper keeperobjRef(objRef); EXPECT_NE(objRef, nullptr); - EXPECT_TRUE(proj_obj_is_equivalent_to(obj, objRef, PJ_COMP_EQUIVALENT)); + EXPECT_TRUE(proj_is_equivalent_to(obj, objRef, PJ_COMP_EQUIVALENT)); } // Datum with GDAL_WKT1 spelling: database query { - auto obj = proj_obj_create_geographic_crs( + auto obj = proj_create_geographic_crs( m_ctxt, "NAD83", "North_American_Datum_1983", "GRS 1980", 6378137, 298.257222101, "Greenwich", 0.0, "Degree", 0.0174532925199433, cs); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - auto objRef = proj_obj_create_from_user_input( + auto objRef = proj_create_from_user_input( m_ctxt, GeographicCRS::EPSG_4269->exportToWKT(WKTFormatter::create().get()) .c_str(), @@ -1811,12 +1795,12 @@ TEST_F(CApi, proj_obj_create_geographic_crs) { ObjectKeeper keeperobjRef(objRef); EXPECT_NE(objRef, nullptr); - EXPECT_TRUE(proj_obj_is_equivalent_to(obj, objRef, PJ_COMP_EQUIVALENT)); + EXPECT_TRUE(proj_is_equivalent_to(obj, objRef, PJ_COMP_EQUIVALENT)); } // Datum with GDAL_WKT1 spelling: database query in alias_name table { - auto crs = proj_obj_create_geographic_crs( + auto crs = proj_create_geographic_crs( m_ctxt, "S-JTSK (Ferro)", "System_Jednotne_Trigonometricke_Site_Katastralni_Ferro", "Bessel 1841", 6377397.155, 299.1528128, "Ferro", @@ -1824,11 +1808,11 @@ TEST_F(CApi, proj_obj_create_geographic_crs) { ObjectKeeper keeper(crs); ASSERT_NE(crs, nullptr); - auto datum = proj_obj_crs_get_datum(m_ctxt, crs); + auto datum = proj_crs_get_datum(m_ctxt, crs); ASSERT_NE(datum, nullptr); ObjectKeeper keeper_datum(datum); - auto datum_name = proj_obj_get_name(datum); + auto datum_name = proj_get_name(datum); ASSERT_TRUE(datum_name != nullptr); EXPECT_EQ(datum_name, std::string("System of the Unified Trigonometrical Cadastral " @@ -1837,32 +1821,32 @@ TEST_F(CApi, proj_obj_create_geographic_crs) { // WKT1 with (deprecated) { - auto crs = proj_obj_create_geographic_crs( + auto crs = proj_create_geographic_crs( m_ctxt, "SAD69 (deprecated)", "South_American_Datum_1969", "GRS 1967", 6378160, 298.247167427, "Greenwich", 0, "Degree", 0.0174532925199433, cs); ObjectKeeper keeper(crs); ASSERT_NE(crs, nullptr); - auto name = proj_obj_get_name(crs); + auto name = proj_get_name(crs); ASSERT_TRUE(name != nullptr); EXPECT_EQ(name, std::string("SAD69")); - EXPECT_TRUE(proj_obj_is_deprecated(crs)); + EXPECT_TRUE(proj_is_deprecated(crs)); } } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_create_geocentric_crs) { +TEST_F(CApi, proj_create_geocentric_crs) { { - auto obj = proj_obj_create_geocentric_crs( + auto obj = proj_create_geocentric_crs( m_ctxt, "WGS 84", "World Geodetic System 1984", "WGS 84", 6378137, 298.257223563, "Greenwich", 0.0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - auto objRef = proj_obj_create_from_user_input( + auto objRef = proj_create_from_user_input( m_ctxt, GeographicCRS::EPSG_4978->exportToWKT(WKTFormatter::create().get()) .c_str(), @@ -1870,23 +1854,23 @@ TEST_F(CApi, proj_obj_create_geocentric_crs) { ObjectKeeper keeperobjRef(objRef); EXPECT_NE(objRef, nullptr); - EXPECT_TRUE(proj_obj_is_equivalent_to(obj, objRef, PJ_COMP_EQUIVALENT)); + EXPECT_TRUE(proj_is_equivalent_to(obj, objRef, PJ_COMP_EQUIVALENT)); - auto datum = proj_obj_crs_get_datum(m_ctxt, obj); + auto datum = proj_crs_get_datum(m_ctxt, obj); ObjectKeeper keeper_datum(datum); ASSERT_NE(datum, nullptr); - auto obj2 = proj_obj_create_geocentric_crs_from_datum( - m_ctxt, "WGS 84", datum, "Metre", 1.0); + auto obj2 = proj_create_geocentric_crs_from_datum(m_ctxt, "WGS 84", + datum, "Metre", 1.0); ObjectKeeper keeperObj(obj2); ASSERT_NE(obj2, nullptr); - EXPECT_TRUE(proj_obj_is_equivalent_to(obj, obj2, PJ_COMP_STRICT)); + EXPECT_TRUE(proj_is_equivalent_to(obj, obj2, PJ_COMP_STRICT)); } { - auto obj = proj_obj_create_geocentric_crs( - m_ctxt, nullptr, nullptr, nullptr, 1.0, 0.0, nullptr, 0.0, nullptr, - 0.0, nullptr, 0.0); + auto obj = proj_create_geocentric_crs(m_ctxt, nullptr, nullptr, nullptr, + 1.0, 0.0, nullptr, 0.0, nullptr, + 0.0, nullptr, 0.0); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); } @@ -1897,7 +1881,7 @@ TEST_F(CApi, proj_obj_create_geocentric_crs) { TEST_F(CApi, check_coord_op_obj_can_be_used_with_proj_trans) { { - auto projCRS = proj_obj_create_conversion_utm(m_ctxt, 31, true); + auto projCRS = proj_create_conversion_utm(m_ctxt, 31, true); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); @@ -1912,23 +1896,23 @@ TEST_F(CApi, check_coord_op_obj_can_be_used_with_proj_trans) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_create_projections) { +TEST_F(CApi, proj_create_projections) { /* BEGIN: Generated by scripts/create_c_api_projections.py*/ { - auto projCRS = proj_obj_create_conversion_utm(m_ctxt, 0, 0); + auto projCRS = proj_create_conversion_utm(m_ctxt, 0, 0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_transverse_mercator( + auto projCRS = proj_create_conversion_transverse_mercator( m_ctxt, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { auto projCRS = - proj_obj_create_conversion_gauss_schreiber_transverse_mercator( + proj_create_conversion_gauss_schreiber_transverse_mercator( m_ctxt, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); @@ -1936,40 +1920,40 @@ TEST_F(CApi, proj_obj_create_projections) { } { auto projCRS = - proj_obj_create_conversion_transverse_mercator_south_oriented( + proj_create_conversion_transverse_mercator_south_oriented( m_ctxt, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_two_point_equidistant( + auto projCRS = proj_create_conversion_two_point_equidistant( m_ctxt, 0, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_tunisia_mapping_grid( + auto projCRS = proj_create_conversion_tunisia_mapping_grid( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_albers_equal_area( + auto projCRS = proj_create_conversion_albers_equal_area( m_ctxt, 0, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_lambert_conic_conformal_1sp( + auto projCRS = proj_create_conversion_lambert_conic_conformal_1sp( m_ctxt, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_lambert_conic_conformal_2sp( + auto projCRS = proj_create_conversion_lambert_conic_conformal_2sp( m_ctxt, 0, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); @@ -1977,7 +1961,7 @@ TEST_F(CApi, proj_obj_create_projections) { } { auto projCRS = - proj_obj_create_conversion_lambert_conic_conformal_2sp_michigan( + proj_create_conversion_lambert_conic_conformal_2sp_michigan( m_ctxt, 0, 0, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); @@ -1985,351 +1969,342 @@ TEST_F(CApi, proj_obj_create_projections) { } { auto projCRS = - proj_obj_create_conversion_lambert_conic_conformal_2sp_belgium( + proj_create_conversion_lambert_conic_conformal_2sp_belgium( m_ctxt, 0, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_azimuthal_equidistant( + auto projCRS = proj_create_conversion_azimuthal_equidistant( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_guam_projection( + auto projCRS = proj_create_conversion_guam_projection( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_bonne( + auto projCRS = proj_create_conversion_bonne( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { auto projCRS = - proj_obj_create_conversion_lambert_cylindrical_equal_area_spherical( + proj_create_conversion_lambert_cylindrical_equal_area_spherical( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = - proj_obj_create_conversion_lambert_cylindrical_equal_area( - m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); + auto projCRS = proj_create_conversion_lambert_cylindrical_equal_area( + m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_cassini_soldner( + auto projCRS = proj_create_conversion_cassini_soldner( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_equidistant_conic( + auto projCRS = proj_create_conversion_equidistant_conic( m_ctxt, 0, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_eckert_i( + auto projCRS = proj_create_conversion_eckert_i( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_eckert_ii( + auto projCRS = proj_create_conversion_eckert_ii( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_eckert_iii( + auto projCRS = proj_create_conversion_eckert_iii( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_eckert_iv( + auto projCRS = proj_create_conversion_eckert_iv( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_eckert_v( + auto projCRS = proj_create_conversion_eckert_v( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_eckert_vi( + auto projCRS = proj_create_conversion_eckert_vi( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_equidistant_cylindrical( + auto projCRS = proj_create_conversion_equidistant_cylindrical( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = - proj_obj_create_conversion_equidistant_cylindrical_spherical( - m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); + auto projCRS = proj_create_conversion_equidistant_cylindrical_spherical( + m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_gall( + auto projCRS = proj_create_conversion_gall( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_goode_homolosine( + auto projCRS = proj_create_conversion_goode_homolosine( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_interrupted_goode_homolosine( + auto projCRS = proj_create_conversion_interrupted_goode_homolosine( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = - proj_obj_create_conversion_geostationary_satellite_sweep_x( - m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); + auto projCRS = proj_create_conversion_geostationary_satellite_sweep_x( + m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = - proj_obj_create_conversion_geostationary_satellite_sweep_y( - m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); + auto projCRS = proj_create_conversion_geostationary_satellite_sweep_y( + m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_gnomonic( + auto projCRS = proj_create_conversion_gnomonic( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = - proj_obj_create_conversion_hotine_oblique_mercator_variant_a( - m_ctxt, 0, 0, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, - "Metre", 1.0); + auto projCRS = proj_create_conversion_hotine_oblique_mercator_variant_a( + m_ctxt, 0, 0, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", + 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = - proj_obj_create_conversion_hotine_oblique_mercator_variant_b( - m_ctxt, 0, 0, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, - "Metre", 1.0); + auto projCRS = proj_create_conversion_hotine_oblique_mercator_variant_b( + m_ctxt, 0, 0, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", + 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { auto projCRS = - proj_obj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( + proj_create_conversion_hotine_oblique_mercator_two_point_natural_origin( m_ctxt, 0, 0, 0, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_laborde_oblique_mercator( + auto projCRS = proj_create_conversion_laborde_oblique_mercator( m_ctxt, 0, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = - proj_obj_create_conversion_international_map_world_polyconic( - m_ctxt, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", - 1.0); + auto projCRS = proj_create_conversion_international_map_world_polyconic( + m_ctxt, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_krovak_north_oriented( + auto projCRS = proj_create_conversion_krovak_north_oriented( m_ctxt, 0, 0, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_krovak( - m_ctxt, 0, 0, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", - 1.0); + auto projCRS = + proj_create_conversion_krovak(m_ctxt, 0, 0, 0, 0, 0, 0, 0, "Degree", + 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_lambert_azimuthal_equal_area( + auto projCRS = proj_create_conversion_lambert_azimuthal_equal_area( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_miller_cylindrical( + auto projCRS = proj_create_conversion_miller_cylindrical( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_mercator_variant_a( + auto projCRS = proj_create_conversion_mercator_variant_a( m_ctxt, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_mercator_variant_b( + auto projCRS = proj_create_conversion_mercator_variant_b( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { auto projCRS = - proj_obj_create_conversion_popular_visualisation_pseudo_mercator( + proj_create_conversion_popular_visualisation_pseudo_mercator( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_mollweide( + auto projCRS = proj_create_conversion_mollweide( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_new_zealand_mapping_grid( + auto projCRS = proj_create_conversion_new_zealand_mapping_grid( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_oblique_stereographic( + auto projCRS = proj_create_conversion_oblique_stereographic( m_ctxt, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_orthographic( + auto projCRS = proj_create_conversion_orthographic( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_american_polyconic( + auto projCRS = proj_create_conversion_american_polyconic( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_polar_stereographic_variant_a( + auto projCRS = proj_create_conversion_polar_stereographic_variant_a( m_ctxt, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_polar_stereographic_variant_b( + auto projCRS = proj_create_conversion_polar_stereographic_variant_b( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_robinson( + auto projCRS = proj_create_conversion_robinson( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_sinusoidal( + auto projCRS = proj_create_conversion_sinusoidal( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_stereographic( + auto projCRS = proj_create_conversion_stereographic( m_ctxt, 0, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_van_der_grinten( + auto projCRS = proj_create_conversion_van_der_grinten( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_wagner_i( + auto projCRS = proj_create_conversion_wagner_i( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_wagner_ii( + auto projCRS = proj_create_conversion_wagner_ii( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_wagner_iii( + auto projCRS = proj_create_conversion_wagner_iii( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_wagner_iv( + auto projCRS = proj_create_conversion_wagner_iv( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_wagner_v( + auto projCRS = proj_create_conversion_wagner_v( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_wagner_vi( + auto projCRS = proj_create_conversion_wagner_vi( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_wagner_vii( + auto projCRS = proj_create_conversion_wagner_vii( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = - proj_obj_create_conversion_quadrilateralized_spherical_cube( - m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); + auto projCRS = proj_create_conversion_quadrilateralized_spherical_cube( + m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_spherical_cross_track_height( + auto projCRS = proj_create_conversion_spherical_cross_track_height( m_ctxt, 0, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } { - auto projCRS = proj_obj_create_conversion_equal_earth( + auto projCRS = proj_create_conversion_equal_earth( m_ctxt, 0, 0, 0, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); @@ -2339,32 +2314,32 @@ TEST_F(CApi, proj_obj_create_projections) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_cs_get_axis_info) { +TEST_F(CApi, proj_cs_get_axis_info) { { - auto crs = proj_obj_create_from_database( - m_ctxt, "EPSG", "4326", PJ_OBJ_CATEGORY_CRS, false, nullptr); + auto crs = proj_create_from_database(m_ctxt, "EPSG", "4326", + PJ_CATEGORY_CRS, false, nullptr); ASSERT_NE(crs, nullptr); ObjectKeeper keeper(crs); - auto cs = proj_obj_crs_get_coordinate_system(m_ctxt, crs); + auto cs = proj_crs_get_coordinate_system(m_ctxt, crs); ASSERT_NE(cs, nullptr); ObjectKeeper keeperCs(cs); - EXPECT_EQ(proj_obj_cs_get_type(m_ctxt, cs), PJ_CS_TYPE_ELLIPSOIDAL); + EXPECT_EQ(proj_cs_get_type(m_ctxt, cs), PJ_CS_TYPE_ELLIPSOIDAL); - EXPECT_EQ(proj_obj_cs_get_axis_count(m_ctxt, cs), 2); + EXPECT_EQ(proj_cs_get_axis_count(m_ctxt, cs), 2); - EXPECT_FALSE(proj_obj_cs_get_axis_info(m_ctxt, cs, -1, nullptr, nullptr, - nullptr, nullptr, nullptr, - nullptr, nullptr)); + EXPECT_FALSE(proj_cs_get_axis_info(m_ctxt, cs, -1, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, + nullptr)); - EXPECT_FALSE(proj_obj_cs_get_axis_info(m_ctxt, cs, 2, nullptr, nullptr, - nullptr, nullptr, nullptr, - nullptr, nullptr)); + EXPECT_FALSE(proj_cs_get_axis_info(m_ctxt, cs, 2, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, + nullptr)); - EXPECT_TRUE(proj_obj_cs_get_axis_info(m_ctxt, cs, 0, nullptr, nullptr, - nullptr, nullptr, nullptr, - nullptr, nullptr)); + EXPECT_TRUE(proj_cs_get_axis_info(m_ctxt, cs, 0, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, + nullptr)); const char *name = nullptr; const char *abbrev = nullptr; @@ -2374,7 +2349,7 @@ TEST_F(CApi, proj_obj_cs_get_axis_info) { const char *unitAuthority = nullptr; const char *unitCode = nullptr; - EXPECT_TRUE(proj_obj_cs_get_axis_info( + EXPECT_TRUE(proj_cs_get_axis_info( m_ctxt, cs, 0, &name, &abbrev, &direction, &unitConvFactor, &unitName, &unitAuthority, &unitCode)); ASSERT_NE(name, nullptr); @@ -2394,20 +2369,20 @@ TEST_F(CApi, proj_obj_cs_get_axis_info) { // Non CRS object { - auto obj = proj_obj_create_from_database( - m_ctxt, "EPSG", "1170", PJ_OBJ_CATEGORY_COORDINATE_OPERATION, false, - nullptr); + auto obj = proj_create_from_database(m_ctxt, "EPSG", "1170", + PJ_CATEGORY_COORDINATE_OPERATION, + false, nullptr); ASSERT_NE(obj, nullptr); ObjectKeeper keeper(obj); - EXPECT_EQ(proj_obj_crs_get_coordinate_system(m_ctxt, obj), nullptr); + EXPECT_EQ(proj_crs_get_coordinate_system(m_ctxt, obj), nullptr); - EXPECT_EQ(proj_obj_cs_get_type(m_ctxt, obj), PJ_CS_TYPE_UNKNOWN); + EXPECT_EQ(proj_cs_get_type(m_ctxt, obj), PJ_CS_TYPE_UNKNOWN); - EXPECT_EQ(proj_obj_cs_get_axis_count(m_ctxt, obj), -1); + EXPECT_EQ(proj_cs_get_axis_count(m_ctxt, obj), -1); - EXPECT_FALSE(proj_obj_cs_get_axis_info(m_ctxt, obj, 0, nullptr, nullptr, - nullptr, nullptr, nullptr, - nullptr, nullptr)); + EXPECT_FALSE(proj_cs_get_axis_info(m_ctxt, obj, 0, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, + nullptr)); } } @@ -2420,23 +2395,22 @@ TEST_F(CApi, proj_context_get_database_metadata) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_clone) { - auto obj = - proj_obj_create_from_proj_string(m_ctxt, "+proj=longlat", nullptr); +TEST_F(CApi, proj_clone) { + auto obj = proj_create_from_proj_string(m_ctxt, "+proj=longlat", nullptr); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - auto clone = proj_obj_clone(m_ctxt, obj); + auto clone = proj_clone(m_ctxt, obj); ObjectKeeper keeperClone(clone); ASSERT_NE(clone, nullptr); - EXPECT_TRUE(proj_obj_is_equivalent_to(obj, clone, PJ_COMP_STRICT)); + EXPECT_TRUE(proj_is_equivalent_to(obj, clone, PJ_COMP_STRICT)); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_crs_alter_geodetic_crs) { - auto projCRS = proj_obj_create_from_wkt( +TEST_F(CApi, proj_crs_alter_geodetic_crs) { + auto projCRS = proj_create_from_wkt( m_ctxt, createProjectedCRS()->exportToWKT(WKTFormatter::create().get()).c_str(), nullptr, nullptr, nullptr); @@ -2444,59 +2418,59 @@ TEST_F(CApi, proj_obj_crs_alter_geodetic_crs) { ASSERT_NE(projCRS, nullptr); auto newGeodCRS = - proj_obj_create_from_proj_string(m_ctxt, "+proj=longlat", nullptr); + proj_create_from_proj_string(m_ctxt, "+proj=longlat", nullptr); ObjectKeeper keeper_newGeodCRS(newGeodCRS); ASSERT_NE(newGeodCRS, nullptr); - auto geodCRS = proj_obj_crs_get_geodetic_crs(m_ctxt, projCRS); + auto geodCRS = proj_crs_get_geodetic_crs(m_ctxt, projCRS); ObjectKeeper keeper_geodCRS(geodCRS); ASSERT_NE(geodCRS, nullptr); auto geodCRSAltered = - proj_obj_crs_alter_geodetic_crs(m_ctxt, geodCRS, newGeodCRS); + proj_crs_alter_geodetic_crs(m_ctxt, geodCRS, newGeodCRS); ObjectKeeper keeper_geodCRSAltered(geodCRSAltered); ASSERT_NE(geodCRSAltered, nullptr); EXPECT_TRUE( - proj_obj_is_equivalent_to(geodCRSAltered, newGeodCRS, PJ_COMP_STRICT)); + proj_is_equivalent_to(geodCRSAltered, newGeodCRS, PJ_COMP_STRICT)); { auto projCRSAltered = - proj_obj_crs_alter_geodetic_crs(m_ctxt, projCRS, newGeodCRS); + proj_crs_alter_geodetic_crs(m_ctxt, projCRS, newGeodCRS); ObjectKeeper keeper_projCRSAltered(projCRSAltered); ASSERT_NE(projCRSAltered, nullptr); - EXPECT_EQ(proj_obj_get_type(projCRSAltered), PJ_OBJ_TYPE_PROJECTED_CRS); + EXPECT_EQ(proj_get_type(projCRSAltered), PJ_TYPE_PROJECTED_CRS); auto projCRSAltered_geodCRS = - proj_obj_crs_get_geodetic_crs(m_ctxt, projCRSAltered); + proj_crs_get_geodetic_crs(m_ctxt, projCRSAltered); ObjectKeeper keeper_projCRSAltered_geodCRS(projCRSAltered_geodCRS); ASSERT_NE(projCRSAltered_geodCRS, nullptr); - EXPECT_TRUE(proj_obj_is_equivalent_to(projCRSAltered_geodCRS, - newGeodCRS, PJ_COMP_STRICT)); + EXPECT_TRUE(proj_is_equivalent_to(projCRSAltered_geodCRS, newGeodCRS, + PJ_COMP_STRICT)); } - // Check that proj_obj_crs_alter_geodetic_crs preserves deprecation flag + // Check that proj_crs_alter_geodetic_crs preserves deprecation flag { auto projCRSDeprecated = - proj_obj_alter_name(m_ctxt, projCRS, "new name (deprecated)"); + proj_alter_name(m_ctxt, projCRS, "new name (deprecated)"); ObjectKeeper keeper_projCRSDeprecated(projCRSDeprecated); ASSERT_NE(projCRSDeprecated, nullptr); - auto projCRSAltered = proj_obj_crs_alter_geodetic_crs( - m_ctxt, projCRSDeprecated, newGeodCRS); + auto projCRSAltered = + proj_crs_alter_geodetic_crs(m_ctxt, projCRSDeprecated, newGeodCRS); ObjectKeeper keeper_projCRSAltered(projCRSAltered); ASSERT_NE(projCRSAltered, nullptr); - EXPECT_EQ(proj_obj_get_name(projCRSAltered), std::string("new name")); - EXPECT_TRUE(proj_obj_is_deprecated(projCRSAltered)); + EXPECT_EQ(proj_get_name(projCRSAltered), std::string("new name")); + EXPECT_TRUE(proj_is_deprecated(projCRSAltered)); } } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_crs_alter_cs_angular_unit) { - auto crs = proj_obj_create_from_wkt( +TEST_F(CApi, proj_crs_alter_cs_angular_unit) { + auto crs = proj_create_from_wkt( m_ctxt, GeographicCRS::EPSG_4326->exportToWKT(WKTFormatter::create().get()) .c_str(), @@ -2505,32 +2479,32 @@ TEST_F(CApi, proj_obj_crs_alter_cs_angular_unit) { ASSERT_NE(crs, nullptr); { - auto alteredCRS = proj_obj_crs_alter_cs_angular_unit( - m_ctxt, crs, "my unit", 2, nullptr, nullptr); + auto alteredCRS = proj_crs_alter_cs_angular_unit(m_ctxt, crs, "my unit", + 2, nullptr, nullptr); ObjectKeeper keeper_alteredCRS(alteredCRS); ASSERT_NE(alteredCRS, nullptr); - auto cs = proj_obj_crs_get_coordinate_system(m_ctxt, alteredCRS); + auto cs = proj_crs_get_coordinate_system(m_ctxt, alteredCRS); ASSERT_NE(cs, nullptr); ObjectKeeper keeperCs(cs); double unitConvFactor = 0.0; const char *unitName = nullptr; - EXPECT_TRUE(proj_obj_cs_get_axis_info(m_ctxt, cs, 0, nullptr, nullptr, - nullptr, &unitConvFactor, - &unitName, nullptr, nullptr)); + EXPECT_TRUE(proj_cs_get_axis_info(m_ctxt, cs, 0, nullptr, nullptr, + nullptr, &unitConvFactor, &unitName, + nullptr, nullptr)); ASSERT_NE(unitName, nullptr); EXPECT_EQ(unitConvFactor, 2) << unitConvFactor; EXPECT_EQ(std::string(unitName), "my unit"); } { - auto alteredCRS = proj_obj_crs_alter_cs_angular_unit( + auto alteredCRS = proj_crs_alter_cs_angular_unit( m_ctxt, crs, "my unit", 2, "my auth", "my code"); ObjectKeeper keeper_alteredCRS(alteredCRS); ASSERT_NE(alteredCRS, nullptr); - auto cs = proj_obj_crs_get_coordinate_system(m_ctxt, alteredCRS); + auto cs = proj_crs_get_coordinate_system(m_ctxt, alteredCRS); ASSERT_NE(cs, nullptr); ObjectKeeper keeperCs(cs); double unitConvFactor = 0.0; @@ -2538,9 +2512,9 @@ TEST_F(CApi, proj_obj_crs_alter_cs_angular_unit) { const char *unitAuthName = nullptr; const char *unitCode = nullptr; - EXPECT_TRUE(proj_obj_cs_get_axis_info( - m_ctxt, cs, 0, nullptr, nullptr, nullptr, &unitConvFactor, - &unitName, &unitAuthName, &unitCode)); + EXPECT_TRUE(proj_cs_get_axis_info(m_ctxt, cs, 0, nullptr, nullptr, + nullptr, &unitConvFactor, &unitName, + &unitAuthName, &unitCode)); ASSERT_NE(unitName, nullptr); EXPECT_EQ(unitConvFactor, 2) << unitConvFactor; EXPECT_EQ(std::string(unitName), "my unit"); @@ -2553,8 +2527,8 @@ TEST_F(CApi, proj_obj_crs_alter_cs_angular_unit) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_crs_alter_cs_linear_unit) { - auto crs = proj_obj_create_from_wkt( +TEST_F(CApi, proj_crs_alter_cs_linear_unit) { + auto crs = proj_create_from_wkt( m_ctxt, createProjectedCRS()->exportToWKT(WKTFormatter::create().get()).c_str(), nullptr, nullptr, nullptr); @@ -2562,32 +2536,32 @@ TEST_F(CApi, proj_obj_crs_alter_cs_linear_unit) { ASSERT_NE(crs, nullptr); { - auto alteredCRS = proj_obj_crs_alter_cs_linear_unit( - m_ctxt, crs, "my unit", 2, nullptr, nullptr); + auto alteredCRS = proj_crs_alter_cs_linear_unit(m_ctxt, crs, "my unit", + 2, nullptr, nullptr); ObjectKeeper keeper_alteredCRS(alteredCRS); ASSERT_NE(alteredCRS, nullptr); - auto cs = proj_obj_crs_get_coordinate_system(m_ctxt, alteredCRS); + auto cs = proj_crs_get_coordinate_system(m_ctxt, alteredCRS); ASSERT_NE(cs, nullptr); ObjectKeeper keeperCs(cs); double unitConvFactor = 0.0; const char *unitName = nullptr; - EXPECT_TRUE(proj_obj_cs_get_axis_info(m_ctxt, cs, 0, nullptr, nullptr, - nullptr, &unitConvFactor, - &unitName, nullptr, nullptr)); + EXPECT_TRUE(proj_cs_get_axis_info(m_ctxt, cs, 0, nullptr, nullptr, + nullptr, &unitConvFactor, &unitName, + nullptr, nullptr)); ASSERT_NE(unitName, nullptr); EXPECT_EQ(unitConvFactor, 2) << unitConvFactor; EXPECT_EQ(std::string(unitName), "my unit"); } { - auto alteredCRS = proj_obj_crs_alter_cs_linear_unit( + auto alteredCRS = proj_crs_alter_cs_linear_unit( m_ctxt, crs, "my unit", 2, "my auth", "my code"); ObjectKeeper keeper_alteredCRS(alteredCRS); ASSERT_NE(alteredCRS, nullptr); - auto cs = proj_obj_crs_get_coordinate_system(m_ctxt, alteredCRS); + auto cs = proj_crs_get_coordinate_system(m_ctxt, alteredCRS); ASSERT_NE(cs, nullptr); ObjectKeeper keeperCs(cs); double unitConvFactor = 0.0; @@ -2595,9 +2569,9 @@ TEST_F(CApi, proj_obj_crs_alter_cs_linear_unit) { const char *unitAuthName = nullptr; const char *unitCode = nullptr; - EXPECT_TRUE(proj_obj_cs_get_axis_info( - m_ctxt, cs, 0, nullptr, nullptr, nullptr, &unitConvFactor, - &unitName, &unitAuthName, &unitCode)); + EXPECT_TRUE(proj_cs_get_axis_info(m_ctxt, cs, 0, nullptr, nullptr, + nullptr, &unitConvFactor, &unitName, + &unitAuthName, &unitCode)); ASSERT_NE(unitName, nullptr); EXPECT_EQ(unitConvFactor, 2) << unitConvFactor; EXPECT_EQ(std::string(unitName), "my unit"); @@ -2610,8 +2584,8 @@ TEST_F(CApi, proj_obj_crs_alter_cs_linear_unit) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_crs_alter_parameters_linear_unit) { - auto crs = proj_obj_create_from_wkt( +TEST_F(CApi, proj_crs_alter_parameters_linear_unit) { + auto crs = proj_create_from_wkt( m_ctxt, createProjectedCRS()->exportToWKT(WKTFormatter::create().get()).c_str(), nullptr, nullptr, nullptr); @@ -2619,12 +2593,12 @@ TEST_F(CApi, proj_obj_crs_alter_parameters_linear_unit) { ASSERT_NE(crs, nullptr); { - auto alteredCRS = proj_obj_crs_alter_parameters_linear_unit( + auto alteredCRS = proj_crs_alter_parameters_linear_unit( m_ctxt, crs, "my unit", 2, nullptr, nullptr, false); ObjectKeeper keeper_alteredCRS(alteredCRS); ASSERT_NE(alteredCRS, nullptr); - auto wkt = proj_obj_as_wkt(m_ctxt, alteredCRS, PJ_WKT2_2018, nullptr); + auto wkt = proj_as_wkt(m_ctxt, alteredCRS, PJ_WKT2_2018, nullptr); ASSERT_NE(wkt, nullptr); EXPECT_TRUE(std::string(wkt).find("500000") != std::string::npos) << wkt; @@ -2633,12 +2607,12 @@ TEST_F(CApi, proj_obj_crs_alter_parameters_linear_unit) { } { - auto alteredCRS = proj_obj_crs_alter_parameters_linear_unit( + auto alteredCRS = proj_crs_alter_parameters_linear_unit( m_ctxt, crs, "my unit", 2, nullptr, nullptr, true); ObjectKeeper keeper_alteredCRS(alteredCRS); ASSERT_NE(alteredCRS, nullptr); - auto wkt = proj_obj_as_wkt(m_ctxt, alteredCRS, PJ_WKT2_2018, nullptr); + auto wkt = proj_as_wkt(m_ctxt, alteredCRS, PJ_WKT2_2018, nullptr); ASSERT_NE(wkt, nullptr); EXPECT_TRUE(std::string(wkt).find("250000") != std::string::npos) << wkt; @@ -2649,77 +2623,76 @@ TEST_F(CApi, proj_obj_crs_alter_parameters_linear_unit) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_create_engineering_crs) { +TEST_F(CApi, proj_create_engineering_crs) { - auto crs = proj_obj_create_engineering_crs(m_ctxt, "name"); + auto crs = proj_create_engineering_crs(m_ctxt, "name"); ObjectKeeper keeper(crs); ASSERT_NE(crs, nullptr); - auto wkt = proj_obj_as_wkt(m_ctxt, crs, PJ_WKT1_GDAL, nullptr); + auto wkt = proj_as_wkt(m_ctxt, crs, PJ_WKT1_GDAL, nullptr); ASSERT_NE(wkt, nullptr); EXPECT_EQ(std::string(wkt), "LOCAL_CS[\"name\"]") << wkt; } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_alter_name) { +TEST_F(CApi, proj_alter_name) { - auto cs = proj_obj_create_ellipsoidal_2D_cs( + auto cs = proj_create_ellipsoidal_2D_cs( m_ctxt, PJ_ELLPS2D_LONGITUDE_LATITUDE, nullptr, 0); ObjectKeeper keeper_cs(cs); ASSERT_NE(cs, nullptr); - auto obj = proj_obj_create_geographic_crs( + auto obj = proj_create_geographic_crs( m_ctxt, "WGS 84", "World Geodetic System 1984", "WGS 84", 6378137, 298.257223563, "Greenwich", 0.0, "Degree", 0.0174532925199433, cs); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); { - auto alteredObj = proj_obj_alter_name(m_ctxt, obj, "new name"); + auto alteredObj = proj_alter_name(m_ctxt, obj, "new name"); ObjectKeeper keeper_alteredObj(alteredObj); ASSERT_NE(alteredObj, nullptr); - EXPECT_EQ(std::string(proj_obj_get_name(alteredObj)), "new name"); - EXPECT_FALSE(proj_obj_is_deprecated(alteredObj)); + EXPECT_EQ(std::string(proj_get_name(alteredObj)), "new name"); + EXPECT_FALSE(proj_is_deprecated(alteredObj)); } { - auto alteredObj = - proj_obj_alter_name(m_ctxt, obj, "new name (deprecated)"); + auto alteredObj = proj_alter_name(m_ctxt, obj, "new name (deprecated)"); ObjectKeeper keeper_alteredObj(alteredObj); ASSERT_NE(alteredObj, nullptr); - EXPECT_EQ(std::string(proj_obj_get_name(alteredObj)), "new name"); - EXPECT_TRUE(proj_obj_is_deprecated(alteredObj)); + EXPECT_EQ(std::string(proj_get_name(alteredObj)), "new name"); + EXPECT_TRUE(proj_is_deprecated(alteredObj)); } } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_alter_id) { +TEST_F(CApi, proj_alter_id) { - auto cs = proj_obj_create_ellipsoidal_2D_cs( + auto cs = proj_create_ellipsoidal_2D_cs( m_ctxt, PJ_ELLPS2D_LONGITUDE_LATITUDE, nullptr, 0); ObjectKeeper keeper_cs(cs); ASSERT_NE(cs, nullptr); - auto obj = proj_obj_create_geographic_crs( + auto obj = proj_create_geographic_crs( m_ctxt, "WGS 84", "World Geodetic System 1984", "WGS 84", 6378137, 298.257223563, "Greenwich", 0.0, "Degree", 0.0174532925199433, cs); ObjectKeeper keeper(obj); ASSERT_NE(obj, nullptr); - auto alteredObj = proj_obj_alter_id(m_ctxt, obj, "auth", "code"); + auto alteredObj = proj_alter_id(m_ctxt, obj, "auth", "code"); ObjectKeeper keeper_alteredObj(alteredObj); ASSERT_NE(alteredObj, nullptr); - EXPECT_EQ(std::string(proj_obj_get_id_auth_name(alteredObj, 0)), "auth"); - EXPECT_EQ(std::string(proj_obj_get_id_code(alteredObj, 0)), "code"); + EXPECT_EQ(std::string(proj_get_id_auth_name(alteredObj, 0)), "auth"); + EXPECT_EQ(std::string(proj_get_id_code(alteredObj, 0)), "code"); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_create_projected_crs) { +TEST_F(CApi, proj_create_projected_crs) { PJ_PARAM_DESCRIPTION param; param.name = "param name"; @@ -2730,37 +2703,37 @@ TEST_F(CApi, proj_obj_create_projected_crs) { param.unit_conv_factor = 1.0; param.unit_type = PJ_UT_SCALE; - auto conv = proj_obj_create_conversion(m_ctxt, "conv", "conv auth", - "conv code", "method", "method auth", - "method code", 1, ¶m); + auto conv = proj_create_conversion(m_ctxt, "conv", "conv auth", "conv code", + "method", "method auth", "method code", + 1, ¶m); ObjectKeeper keeper_conv(conv); ASSERT_NE(conv, nullptr); - auto geog_cs = proj_obj_create_ellipsoidal_2D_cs( + auto geog_cs = proj_create_ellipsoidal_2D_cs( m_ctxt, PJ_ELLPS2D_LONGITUDE_LATITUDE, nullptr, 0); ObjectKeeper keeper_geog_cs(geog_cs); ASSERT_NE(geog_cs, nullptr); - auto geogCRS = proj_obj_create_geographic_crs( + auto geogCRS = proj_create_geographic_crs( m_ctxt, "WGS 84", "World Geodetic System 1984", "WGS 84", 6378137, 298.257223563, "Greenwich", 0.0, "Degree", 0.0174532925199433, geog_cs); ObjectKeeper keeper_geogCRS(geogCRS); ASSERT_NE(geogCRS, nullptr); - auto cs = proj_obj_create_cartesian_2D_cs( - m_ctxt, PJ_CART2D_EASTING_NORTHING, nullptr, 0); + auto cs = proj_create_cartesian_2D_cs(m_ctxt, PJ_CART2D_EASTING_NORTHING, + nullptr, 0); ObjectKeeper keeper_cs(cs); ASSERT_NE(cs, nullptr); auto projCRS = - proj_obj_create_projected_crs(m_ctxt, "my CRS", geogCRS, conv, cs); + proj_create_projected_crs(m_ctxt, "my CRS", geogCRS, conv, cs); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_create_transformation) { +TEST_F(CApi, proj_create_transformation) { PJ_PARAM_DESCRIPTION param; param.name = "param name"; @@ -2771,24 +2744,24 @@ TEST_F(CApi, proj_obj_create_transformation) { param.unit_conv_factor = 1.0; param.unit_type = PJ_UT_SCALE; - auto geog_cs = proj_obj_create_ellipsoidal_2D_cs( + auto geog_cs = proj_create_ellipsoidal_2D_cs( m_ctxt, PJ_ELLPS2D_LONGITUDE_LATITUDE, nullptr, 0); ObjectKeeper keeper_geog_cs(geog_cs); ASSERT_NE(geog_cs, nullptr); - auto source_crs = proj_obj_create_geographic_crs( + auto source_crs = proj_create_geographic_crs( m_ctxt, "Source CRS", "World Geodetic System 1984", "WGS 84", 6378137, 298.257223563, "Greenwich", 0.0, "Degree", 0.0174532925199433, geog_cs); ObjectKeeper keeper_source_crs(source_crs); ASSERT_NE(source_crs, nullptr); - auto target_crs = proj_obj_create_geographic_crs( + auto target_crs = proj_create_geographic_crs( m_ctxt, "WGS 84", "World Geodetic System 1984", "WGS 84", 6378137, 298.257223563, "Greenwich", 0.0, "Degree", 0.0174532925199433, geog_cs); ObjectKeeper keeper_target_crs(target_crs); ASSERT_NE(target_crs, nullptr); - auto interp_crs = proj_obj_create_geographic_crs( + auto interp_crs = proj_create_geographic_crs( m_ctxt, "Interpolation CRS", "World Geodetic System 1984", "WGS 84", 6378137, 298.257223563, "Greenwich", 0.0, "Degree", 0.0174532925199433, geog_cs); @@ -2796,7 +2769,7 @@ TEST_F(CApi, proj_obj_create_transformation) { ASSERT_NE(interp_crs, nullptr); { - auto transf = proj_obj_create_transformation( + auto transf = proj_create_transformation( m_ctxt, "transf", "transf auth", "transf code", source_crs, target_crs, interp_crs, "method", "method auth", "method code", 1, ¶m, 0); @@ -2805,21 +2778,21 @@ TEST_F(CApi, proj_obj_create_transformation) { EXPECT_EQ(proj_coordoperation_get_param_count(m_ctxt, transf), 1); - auto got_source_crs = proj_obj_get_source_crs(m_ctxt, transf); + auto got_source_crs = proj_get_source_crs(m_ctxt, transf); ObjectKeeper keeper_got_source_crs(got_source_crs); ASSERT_NE(got_source_crs, nullptr); - EXPECT_TRUE(proj_obj_is_equivalent_to(source_crs, got_source_crs, - PJ_COMP_STRICT)); + EXPECT_TRUE( + proj_is_equivalent_to(source_crs, got_source_crs, PJ_COMP_STRICT)); - auto got_target_crs = proj_obj_get_target_crs(m_ctxt, transf); + auto got_target_crs = proj_get_target_crs(m_ctxt, transf); ObjectKeeper keeper_got_target_crs(got_target_crs); ASSERT_NE(got_target_crs, nullptr); - EXPECT_TRUE(proj_obj_is_equivalent_to(target_crs, got_target_crs, - PJ_COMP_STRICT)); + EXPECT_TRUE( + proj_is_equivalent_to(target_crs, got_target_crs, PJ_COMP_STRICT)); } { - auto transf = proj_obj_create_transformation( + auto transf = proj_create_transformation( m_ctxt, "transf", "transf auth", "transf code", source_crs, target_crs, nullptr, "method", "method auth", "method code", 1, ¶m, -1); @@ -2830,152 +2803,150 @@ TEST_F(CApi, proj_obj_create_transformation) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_create_compound_crs) { +TEST_F(CApi, proj_create_compound_crs) { - auto horiz_cs = proj_obj_create_ellipsoidal_2D_cs( + auto horiz_cs = proj_create_ellipsoidal_2D_cs( m_ctxt, PJ_ELLPS2D_LONGITUDE_LATITUDE, nullptr, 0); ObjectKeeper keeper_horiz_cs(horiz_cs); ASSERT_NE(horiz_cs, nullptr); - auto horiz_crs = proj_obj_create_geographic_crs( + auto horiz_crs = proj_create_geographic_crs( m_ctxt, "WGS 84", "World Geodetic System 1984", "WGS 84", 6378137, 298.257223563, "Greenwich", 0.0, "Degree", 0.0174532925199433, horiz_cs); ObjectKeeper keeper_horiz_crs(horiz_crs); ASSERT_NE(horiz_crs, nullptr); - auto vert_crs = proj_obj_create_vertical_crs(m_ctxt, "myVertCRS", - "myVertDatum", nullptr, 0.0); + auto vert_crs = proj_create_vertical_crs(m_ctxt, "myVertCRS", "myVertDatum", + nullptr, 0.0); ObjectKeeper keeper_vert_crs(vert_crs); ASSERT_NE(vert_crs, nullptr); - EXPECT_EQ(proj_obj_get_name(vert_crs), std::string("myVertCRS")); + EXPECT_EQ(proj_get_name(vert_crs), std::string("myVertCRS")); - auto compound_crs = proj_obj_create_compound_crs(m_ctxt, "myCompoundCRS", - horiz_crs, vert_crs); + auto compound_crs = + proj_create_compound_crs(m_ctxt, "myCompoundCRS", horiz_crs, vert_crs); ObjectKeeper keeper_compound_crss(compound_crs); ASSERT_NE(compound_crs, nullptr); - EXPECT_EQ(proj_obj_get_name(compound_crs), std::string("myCompoundCRS")); + EXPECT_EQ(proj_get_name(compound_crs), std::string("myCompoundCRS")); - auto subcrs_horiz = proj_obj_crs_get_sub_crs(m_ctxt, compound_crs, 0); + auto subcrs_horiz = proj_crs_get_sub_crs(m_ctxt, compound_crs, 0); ASSERT_NE(subcrs_horiz, nullptr); ObjectKeeper keeper_subcrs_horiz(subcrs_horiz); - EXPECT_TRUE( - proj_obj_is_equivalent_to(subcrs_horiz, horiz_crs, PJ_COMP_STRICT)); + EXPECT_TRUE(proj_is_equivalent_to(subcrs_horiz, horiz_crs, PJ_COMP_STRICT)); - auto subcrs_vert = proj_obj_crs_get_sub_crs(m_ctxt, compound_crs, 1); + auto subcrs_vert = proj_crs_get_sub_crs(m_ctxt, compound_crs, 1); ASSERT_NE(subcrs_vert, nullptr); ObjectKeeper keeper_subcrs_vert(subcrs_vert); - EXPECT_TRUE( - proj_obj_is_equivalent_to(subcrs_vert, vert_crs, PJ_COMP_STRICT)); + EXPECT_TRUE(proj_is_equivalent_to(subcrs_vert, vert_crs, PJ_COMP_STRICT)); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_convert_conversion_to_other_method) { +TEST_F(CApi, proj_convert_conversion_to_other_method) { { - auto geog_cs = proj_obj_create_ellipsoidal_2D_cs( + auto geog_cs = proj_create_ellipsoidal_2D_cs( m_ctxt, PJ_ELLPS2D_LONGITUDE_LATITUDE, nullptr, 0); ObjectKeeper keeper_geog_cs(geog_cs); ASSERT_NE(geog_cs, nullptr); - auto geogCRS = proj_obj_create_geographic_crs( + auto geogCRS = proj_create_geographic_crs( m_ctxt, "WGS 84", "World Geodetic System 1984", "WGS 84", 6378137, 298.257223563, "Greenwich", 0.0, "Degree", 0.0174532925199433, geog_cs); ObjectKeeper keeper_geogCRS(geogCRS); ASSERT_NE(geogCRS, nullptr); - auto cs = proj_obj_create_cartesian_2D_cs( + auto cs = proj_create_cartesian_2D_cs( m_ctxt, PJ_CART2D_EASTING_NORTHING, nullptr, 0); ObjectKeeper keeper_cs(cs); ASSERT_NE(cs, nullptr); - auto conv = proj_obj_create_conversion_mercator_variant_a( + auto conv = proj_create_conversion_mercator_variant_a( m_ctxt, 0, 1, 0.99, 2, 3, "Degree", 0.0174532925199433, "Metre", 1.0); ObjectKeeper keeper_conv(conv); ASSERT_NE(conv, nullptr); auto projCRS = - proj_obj_create_projected_crs(m_ctxt, "my CRS", geogCRS, conv, cs); + proj_create_projected_crs(m_ctxt, "my CRS", geogCRS, conv, cs); ObjectKeeper keeper_projCRS(projCRS); ASSERT_NE(projCRS, nullptr); // Wrong object type EXPECT_EQ( - proj_obj_convert_conversion_to_other_method( + proj_convert_conversion_to_other_method( m_ctxt, projCRS, EPSG_CODE_METHOD_MERCATOR_VARIANT_B, nullptr), nullptr); - auto conv_in_proj = proj_obj_crs_get_coordoperation(m_ctxt, projCRS); + auto conv_in_proj = proj_crs_get_coordoperation(m_ctxt, projCRS); ObjectKeeper keeper_conv_in_proj(conv_in_proj); ASSERT_NE(conv_in_proj, nullptr); // 3rd and 4th argument both 0/null - EXPECT_EQ(proj_obj_convert_conversion_to_other_method( - m_ctxt, conv_in_proj, 0, nullptr), + EXPECT_EQ(proj_convert_conversion_to_other_method(m_ctxt, conv_in_proj, + 0, nullptr), nullptr); - auto new_conv = proj_obj_convert_conversion_to_other_method( + auto new_conv = proj_convert_conversion_to_other_method( m_ctxt, conv_in_proj, EPSG_CODE_METHOD_MERCATOR_VARIANT_B, nullptr); ObjectKeeper keeper_new_conv(new_conv); ASSERT_NE(new_conv, nullptr); EXPECT_FALSE( - proj_obj_is_equivalent_to(new_conv, conv_in_proj, PJ_COMP_STRICT)); - EXPECT_TRUE(proj_obj_is_equivalent_to(new_conv, conv_in_proj, - PJ_COMP_EQUIVALENT)); + proj_is_equivalent_to(new_conv, conv_in_proj, PJ_COMP_STRICT)); + EXPECT_TRUE( + proj_is_equivalent_to(new_conv, conv_in_proj, PJ_COMP_EQUIVALENT)); - auto new_conv_from_name = proj_obj_convert_conversion_to_other_method( + auto new_conv_from_name = proj_convert_conversion_to_other_method( m_ctxt, conv_in_proj, 0, EPSG_NAME_METHOD_MERCATOR_VARIANT_B); ObjectKeeper keeper_new_conv_from_name(new_conv_from_name); ASSERT_NE(new_conv_from_name, nullptr); - EXPECT_TRUE(proj_obj_is_equivalent_to(new_conv, new_conv_from_name, - PJ_COMP_STRICT)); + EXPECT_TRUE(proj_is_equivalent_to(new_conv, new_conv_from_name, + PJ_COMP_STRICT)); - auto new_conv_back = proj_obj_convert_conversion_to_other_method( + auto new_conv_back = proj_convert_conversion_to_other_method( m_ctxt, conv_in_proj, 0, EPSG_NAME_METHOD_MERCATOR_VARIANT_A); ObjectKeeper keeper_new_conv_back(new_conv_back); ASSERT_NE(new_conv_back, nullptr); - EXPECT_TRUE(proj_obj_is_equivalent_to(conv_in_proj, new_conv_back, - PJ_COMP_STRICT)); + EXPECT_TRUE( + proj_is_equivalent_to(conv_in_proj, new_conv_back, PJ_COMP_STRICT)); } } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_get_non_deprecated) { - auto crs = proj_obj_create_from_database( - m_ctxt, "EPSG", "4226", PJ_OBJ_CATEGORY_CRS, false, nullptr); +TEST_F(CApi, proj_get_non_deprecated) { + auto crs = proj_create_from_database(m_ctxt, "EPSG", "4226", + PJ_CATEGORY_CRS, false, nullptr); ObjectKeeper keeper(crs); ASSERT_NE(crs, nullptr); - auto list = proj_obj_get_non_deprecated(m_ctxt, crs); + auto list = proj_get_non_deprecated(m_ctxt, crs); ASSERT_NE(list, nullptr); ObjListKeeper keeper_list(list); - EXPECT_EQ(proj_obj_list_get_count(list), 2); + EXPECT_EQ(proj_list_get_count(list), 2); } // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_query_geodetic_crs_from_datum) { +TEST_F(CApi, proj_query_geodetic_crs_from_datum) { { - auto list = proj_obj_query_geodetic_crs_from_datum( - m_ctxt, nullptr, "EPSG", "6326", nullptr); + auto list = proj_query_geodetic_crs_from_datum(m_ctxt, nullptr, "EPSG", + "6326", nullptr); ASSERT_NE(list, nullptr); ObjListKeeper keeper_list(list); - EXPECT_GE(proj_obj_list_get_count(list), 3); + EXPECT_GE(proj_list_get_count(list), 3); } { - auto list = proj_obj_query_geodetic_crs_from_datum( - m_ctxt, "EPSG", "EPSG", "6326", "geographic 2D"); + auto list = proj_query_geodetic_crs_from_datum(m_ctxt, "EPSG", "EPSG", + "6326", "geographic 2D"); ASSERT_NE(list, nullptr); ObjListKeeper keeper_list(list); - EXPECT_EQ(proj_obj_list_get_count(list), 1); + EXPECT_EQ(proj_list_get_count(list), 1); } } @@ -3018,35 +2989,35 @@ TEST_F(CApi, proj_uom_get_info_from_database) { // --------------------------------------------------------------------------- -TEST_F(CApi, proj_obj_create_cartesian_2D_cs) { +TEST_F(CApi, proj_create_cartesian_2D_cs) { { - auto cs = proj_obj_create_cartesian_2D_cs( + auto cs = proj_create_cartesian_2D_cs( m_ctxt, PJ_CART2D_EASTING_NORTHING, nullptr, 0); ObjectKeeper keeper_cs(cs); ASSERT_NE(cs, nullptr); } { - auto cs = proj_obj_create_cartesian_2D_cs( + auto cs = proj_create_cartesian_2D_cs( m_ctxt, PJ_CART2D_NORTHING_EASTING, nullptr, 0); ObjectKeeper keeper_cs(cs); ASSERT_NE(cs, nullptr); } { - auto cs = proj_obj_create_cartesian_2D_cs( + auto cs = proj_create_cartesian_2D_cs( m_ctxt, PJ_CART2D_NORTH_POLE_EASTING_SOUTH_NORTHING_SOUTH, nullptr, 0); ObjectKeeper keeper_cs(cs); ASSERT_NE(cs, nullptr); } { - auto cs = proj_obj_create_cartesian_2D_cs( + auto cs = proj_create_cartesian_2D_cs( m_ctxt, PJ_CART2D_SOUTH_POLE_EASTING_NORTH_NORTHING_NORTH, nullptr, 0); ObjectKeeper keeper_cs(cs); ASSERT_NE(cs, nullptr); } { - auto cs = proj_obj_create_cartesian_2D_cs( + auto cs = proj_create_cartesian_2D_cs( m_ctxt, PJ_CART2D_WESTING_SOUTHING, nullptr, 0); ObjectKeeper keeper_cs(cs); ASSERT_NE(cs, nullptr); diff --git a/test/unit/test_operation.cpp b/test/unit/test_operation.cpp index b406227c..9b9273b5 100644 --- a/test/unit/test_operation.cpp +++ b/test/unit/test_operation.cpp @@ -4224,7 +4224,8 @@ TEST(operation, geogCRS_to_geogCRS_context_default) { // Romania has a larger area than Poland (given our approx formula) EXPECT_EQ(list[0]->getEPSGCode(), 15994); // Romania - 3m EXPECT_EQ(list[1]->getEPSGCode(), 1644); // Poland - 1m - EXPECT_EQ(list[2]->nameStr(), "Null geographic offset from Pulkovo 1942(58) to ETRS89"); + EXPECT_EQ(list[2]->nameStr(), + "Null geographic offset from Pulkovo 1942(58) to ETRS89"); EXPECT_EQ( list[0]->exportToPROJString(PROJStringFormatter::create().get()), -- cgit v1.2.3