aboutsummaryrefslogtreecommitdiff
path: root/src/projections/hammer.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/projections/hammer.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/projections/hammer.cpp')
-rw-r--r--src/projections/hammer.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/projections/hammer.cpp b/src/projections/hammer.cpp
index d9bcafc7..5a183082 100644
--- a/src/projections/hammer.cpp
+++ b/src/projections/hammer.cpp
@@ -28,7 +28,7 @@ static PJ_XY hammer_s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forwa
lp.lam *= Q->w;
double denom = 1. + cosphi * cos(lp.lam);
if( denom == 0.0 ) {
- proj_errno_set(P, PJD_ERR_TOLERANCE_CONDITION);
+ proj_errno_set(P, PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN);
return proj_coord_error().xy;
}
d = sqrt(2./denom);
@@ -47,7 +47,7 @@ static PJ_LP hammer_s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inver
if (fabs(2.*z*z-1.) < EPS) {
lp.lam = HUGE_VAL;
lp.phi = HUGE_VAL;
- proj_errno_set(P, PJD_ERR_LAT_OR_LON_EXCEED_LIMIT);
+ proj_errno_set(P, PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN);
} else {
lp.lam = aatan2(Q->w * xy.x * z,2. * z * z - 1)/Q->w;
lp.phi = aasin(P->ctx,z * xy.y);
@@ -59,19 +59,25 @@ static PJ_LP hammer_s_inverse (PJ_XY xy, PJ *P) { /* Spheroidal, inver
PJ *PROJECTION(hammer) {
struct pj_opaque *Q = static_cast<struct pj_opaque*>(calloc (1, sizeof (struct pj_opaque)));
if (nullptr==Q)
- return pj_default_destructor (P, ENOMEM);
+ return pj_default_destructor (P, PROJ_ERR_INVALID_OP /*ENOMEM*/);
P->opaque = Q;
if (pj_param(P->ctx, P->params, "tW").i) {
Q->w = fabs(pj_param(P->ctx, P->params, "dW").f);
if (Q->w <= 0.)
- return pj_default_destructor (P, PJD_ERR_W_OR_M_ZERO_OR_LESS);
+ {
+ proj_log_error(P, _("Invalid value for W: it should be > 0"));
+ return pj_default_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE);
+ }
} else
Q->w = .5;
if (pj_param(P->ctx, P->params, "tM").i) {
Q->m = fabs(pj_param(P->ctx, P->params, "dM").f);
if (Q->m <= 0.)
- return pj_default_destructor (P, PJD_ERR_W_OR_M_ZERO_OR_LESS);
+ {
+ proj_log_error(P, _("Invalid value for M: it should be > 0"));
+ return pj_default_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE);
+ }
} else
Q->m = 1.;