diff options
| author | Alan D. Snow <alansnow21@gmail.com> | 2020-10-19 10:20:27 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-19 17:20:27 +0200 |
| commit | 084f5f6cb39b3732c4cd930ebffcff86cdb24932 (patch) | |
| tree | b6e3d9bd87eecafbfe0f6f2634c4db9d00bc8e05 /src | |
| parent | 85137d93549f2bb3dfe4fcfd371a0f1925e26417 (diff) | |
| download | PROJ-084f5f6cb39b3732c4cd930ebffcff86cdb24932.tar.gz PROJ-084f5f6cb39b3732c4cd930ebffcff86cdb24932.zip | |
C API: add proj_context_clone() (#2383)
Fixes #2382
Diffstat (limited to 'src')
| -rw-r--r-- | src/4D_api.cpp | 2 | ||||
| -rw-r--r-- | src/ctx.cpp | 13 | ||||
| -rw-r--r-- | src/proj.h | 1 | ||||
| -rw-r--r-- | src/proj_symbol_rename.h | 7 |
4 files changed, 22 insertions, 1 deletions
diff --git a/src/4D_api.cpp b/src/4D_api.cpp index 3c6ab802..0c26840d 100644 --- a/src/4D_api.cpp +++ b/src/4D_api.cpp @@ -1448,7 +1448,7 @@ int proj_errno_reset (const PJ *P) { } -/* Create a new context */ +/* Create a new context based on the default context */ PJ_CONTEXT *proj_context_create (void) { return pj_ctx_alloc (); } diff --git a/src/ctx.cpp b/src/ctx.cpp index 5575d3aa..6dbe0de5 100644 --- a/src/ctx.cpp +++ b/src/ctx.cpp @@ -226,6 +226,19 @@ projCtx pj_ctx_alloc() } /************************************************************************/ +/* proj_context_clone() */ +/* Create a new context based on a custom context */ +/************************************************************************/ + +PJ_CONTEXT *proj_context_clone (PJ_CONTEXT *ctx) +{ + if (nullptr==ctx) + return pj_ctx_alloc (); + + return new (std::nothrow) projCtx_t(*ctx); +} + +/************************************************************************/ /* pj_ctx_free() */ /************************************************************************/ @@ -361,6 +361,7 @@ typedef struct projCtx_t PJ_CONTEXT; #endif PJ_CONTEXT PROJ_DLL *proj_context_create (void); PJ_CONTEXT PROJ_DLL *proj_context_destroy (PJ_CONTEXT *ctx); +PJ_CONTEXT PROJ_DLL *proj_context_clone (PJ_CONTEXT *ctx); /** Callback to resolve a filename to a full path */ typedef const char* (*proj_file_finder) (PJ_CONTEXT *ctx, const char*, void* user_data); diff --git a/src/proj_symbol_rename.h b/src/proj_symbol_rename.h index cb6fcd23..7fbe4242 100644 --- a/src/proj_symbol_rename.h +++ b/src/proj_symbol_rename.h @@ -97,6 +97,7 @@ #define proj_clone internal_proj_clone #define proj_concatoperation_get_step internal_proj_concatoperation_get_step #define proj_concatoperation_get_step_count internal_proj_concatoperation_get_step_count +#define proj_context_clone internal_proj_context_clone #define proj_context_create internal_proj_context_create #define proj_context_destroy internal_proj_context_destroy #define proj_context_errno internal_proj_context_errno @@ -235,6 +236,8 @@ #define proj_crs_get_coordinate_system internal_proj_crs_get_coordinate_system #define proj_crs_get_coordoperation internal_proj_crs_get_coordoperation #define proj_crs_get_datum internal_proj_crs_get_datum +#define proj_crs_get_datum_ensemble internal_proj_crs_get_datum_ensemble +#define proj_crs_get_datum_forced internal_proj_crs_get_datum_forced #define proj_crs_get_geodetic_crs internal_proj_crs_get_geodetic_crs #define proj_crs_get_horizontal_datum internal_proj_crs_get_horizontal_datum #define proj_crs_get_sub_crs internal_proj_crs_get_sub_crs @@ -243,11 +246,15 @@ #define proj_cs_get_axis_count internal_proj_cs_get_axis_count #define proj_cs_get_axis_info internal_proj_cs_get_axis_info #define proj_cs_get_type internal_proj_cs_get_type +#define proj_datum_ensemble_get_accuracy internal_proj_datum_ensemble_get_accuracy +#define proj_datum_ensemble_get_member internal_proj_datum_ensemble_get_member +#define proj_datum_ensemble_get_member_count internal_proj_datum_ensemble_get_member_count #define proj_degree_input internal_proj_degree_input #define proj_degree_output internal_proj_degree_output #define proj_destroy internal_proj_destroy #define proj_dmstor internal_proj_dmstor #define proj_download_file internal_proj_download_file +#define proj_dynamic_datum_get_frame_reference_epoch internal_proj_dynamic_datum_get_frame_reference_epoch #define proj_ellipsoid_get_parameters internal_proj_ellipsoid_get_parameters #define proj_errno internal_proj_errno #define proj_errno_reset internal_proj_errno_reset |
