aboutsummaryrefslogtreecommitdiff
path: root/src/transformations/molodensky.cpp
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-12-15 00:51:46 +0100
committerEven Rouault <even.rouault@spatialys.com>2020-12-15 01:13:43 +0100
commit244a24104ded3a4573aeffa32160af21f76cbce6 (patch)
treef3a11529172719657cf7576e062e45e0f9452db5 /src/transformations/molodensky.cpp
parent1e9894b0e2b161e61546672bccb85a9ef21df541 (diff)
downloadPROJ-244a24104ded3a4573aeffa32160af21f76cbce6.tar.gz
PROJ-244a24104ded3a4573aeffa32160af21f76cbce6.zip
Revise error codes to have a reduced set exposed in the public API.
Fixes #2482 And also add proj_context_errno_string() Revise gie 'expect failure errno XXXX' strings
Diffstat (limited to 'src/transformations/molodensky.cpp')
-rw-r--r--src/transformations/molodensky.cpp54
1 files changed, 28 insertions, 26 deletions
diff --git a/src/transformations/molodensky.cpp b/src/transformations/molodensky.cpp
index bf5960d2..4a6584a9 100644
--- a/src/transformations/molodensky.cpp
+++ b/src/transformations/molodensky.cpp
@@ -245,7 +245,7 @@ static PJ_XYZ forward_3d(PJ_LPZ lpz, PJ *P) {
lpz = calc_standard_params(lpz, P);
}
if( lpz.lam == HUGE_VAL ) {
- proj_errno_set(P, PJD_ERR_TOLERANCE_CONDITION);
+ proj_errno_set(P, PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN);
return proj_coord_error().xyz;
}
@@ -277,7 +277,7 @@ static PJ_LPZ reverse_3d(PJ_XYZ xyz, PJ *P) {
lpz = calc_standard_params(point.lpz, P);
if( lpz.lam == HUGE_VAL ) {
- proj_errno_set(P, PJD_ERR_TOLERANCE_CONDITION);
+ proj_errno_set(P, PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN);
return proj_coord_error().lpz;
}
@@ -297,10 +297,9 @@ static PJ_COORD reverse_4d(PJ_COORD obs, PJ *P) {
PJ *TRANSFORMATION(molodensky,1) {
- int count_required_params = 0;
struct pj_opaque_molodensky *Q = static_cast<struct pj_opaque_molodensky*>(calloc(1, sizeof(struct pj_opaque_molodensky)));
if (nullptr==Q)
- return pj_default_destructor(P, ENOMEM);
+ return pj_default_destructor(P, PROJ_ERR_INVALID_OP /*ENOMEM*/);
P->opaque = (void *) Q;
P->fwd4d = forward_4d;
@@ -314,39 +313,42 @@ PJ *TRANSFORMATION(molodensky,1) {
P->right = PJ_IO_UNITS_RADIANS;
/* read args */
- if (pj_param(P->ctx, P->params, "tdx").i) {
- count_required_params ++;
- Q->dx = pj_param(P->ctx, P->params, "ddx").f;
+ if (!pj_param(P->ctx, P->params, "tdx").i)
+ {
+ proj_log_error (P, _("molodensky: missing dx"));
+ return pj_default_destructor (P, PROJ_ERR_INVALID_OP_MISSING_ARG);
}
+ Q->dx = pj_param(P->ctx, P->params, "ddx").f;
- if (pj_param(P->ctx, P->params, "tdy").i) {
- count_required_params ++;
- Q->dy = pj_param(P->ctx, P->params, "ddy").f;
+ if (!pj_param(P->ctx, P->params, "tdy").i)
+ {
+ proj_log_error (P, _("molodensky: missing dy"));
+ return pj_default_destructor (P, PROJ_ERR_INVALID_OP_MISSING_ARG);
}
+ Q->dy = pj_param(P->ctx, P->params, "ddy").f;
- if (pj_param(P->ctx, P->params, "tdz").i) {
- count_required_params ++;
- Q->dz = pj_param(P->ctx, P->params, "ddz").f;
+ if (!pj_param(P->ctx, P->params, "tdz").i)
+ {
+ proj_log_error (P, _("molodensky: missing dz"));
+ return pj_default_destructor (P, PROJ_ERR_INVALID_OP_MISSING_ARG);
}
+ Q->dz = pj_param(P->ctx, P->params, "ddz").f;
- if (pj_param(P->ctx, P->params, "tda").i) {
- count_required_params ++;
- Q->da = pj_param(P->ctx, P->params, "dda").f;
+ if (!pj_param(P->ctx, P->params, "tda").i)
+ {
+ proj_log_error (P, _("molodensky: missing da"));
+ return pj_default_destructor (P, PROJ_ERR_INVALID_OP_MISSING_ARG);
}
+ Q->da = pj_param(P->ctx, P->params, "dda").f;
- if (pj_param(P->ctx, P->params, "tdf").i) {
- count_required_params ++;
- Q->df = pj_param(P->ctx, P->params, "ddf").f;
+ if (!pj_param(P->ctx, P->params, "tdf").i)
+ {
+ proj_log_error (P, _("molodensky: missing df"));
+ return pj_default_destructor (P, PROJ_ERR_INVALID_OP_MISSING_ARG);
}
+ Q->df = pj_param(P->ctx, P->params, "ddf").f;
Q->abridged = pj_param(P->ctx, P->params, "tabridged").i;
- /* We want all parameters (except +abridged) to be set */
- if (count_required_params == 0)
- return pj_default_destructor(P, PJD_ERR_NO_ARGS);
-
- if (count_required_params != 5)
- return pj_default_destructor(P, PJD_ERR_MISSING_ARGS);
-
return P;
}