aboutsummaryrefslogtreecommitdiff
path: root/src/projections/gn_sinu.cpp
diff options
context:
space:
mode:
authorKristian Evers <kristianevers@gmail.com>2020-12-21 17:28:48 +0100
committerKristian Evers <kristianevers@gmail.com>2020-12-21 17:28:48 +0100
commit5aad0d25f8423b8b88a716d0333c7bd19f6184c7 (patch)
treef0a248ef08fb51ef0ec29178ef41fd4168d4c85d /src/projections/gn_sinu.cpp
parentc3efbd23a5bf26f1dfd5bc55ae3488d5665ace98 (diff)
parent1cafe3e602d3f697c8d2daaa9b634f3ad23b0d53 (diff)
downloadPROJ-5aad0d25f8423b8b88a716d0333c7bd19f6184c7.tar.gz
PROJ-5aad0d25f8423b8b88a716d0333c7bd19f6184c7.zip
Merge remote-tracking branch 'osgeo/master'
Diffstat (limited to 'src/projections/gn_sinu.cpp')
-rw-r--r--src/projections/gn_sinu.cpp44
1 files changed, 30 insertions, 14 deletions
diff --git a/src/projections/gn_sinu.cpp b/src/projections/gn_sinu.cpp
index ef312613..863613b6 100644
--- a/src/projections/gn_sinu.cpp
+++ b/src/projections/gn_sinu.cpp
@@ -46,7 +46,7 @@ static PJ_LP gn_sinu_e_inverse (PJ_XY xy, PJ *P) { /* Ellipsoidal, inve
} else if ((s - EPS10) < M_HALFPI) {
lp.lam = 0.;
} else {
- proj_errno_set(P, PJD_ERR_TOLERANCE_CONDITION);
+ proj_errno_set(P, PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN);
}
return lp;
@@ -71,7 +71,7 @@ static PJ_XY gn_sinu_s_forward (PJ_LP lp, PJ *P) { /* Spheroidal, forw
break;
}
if (!i) {
- proj_errno_set(P, PJD_ERR_TOLERANCE_CONDITION);
+ proj_errno_set(P, PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN);
return xy;
}
@@ -123,12 +123,12 @@ static void setup(PJ *P) {
PJ *PROJECTION(sinu) {
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_OTHER /*ENOMEM*/);
P->opaque = Q;
P->destructor = destructor;
if (!(Q->en = pj_enfn(P->es)))
- return pj_default_destructor (P, ENOMEM);
+ return pj_default_destructor (P, PROJ_ERR_OTHER /*ENOMEM*/);
if (P->es != 0.0) {
P->inv = gn_sinu_e_inverse;
@@ -145,7 +145,7 @@ PJ *PROJECTION(sinu) {
PJ *PROJECTION(eck6) {
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_OTHER /*ENOMEM*/);
P->opaque = Q;
P->destructor = destructor;
@@ -160,7 +160,7 @@ PJ *PROJECTION(eck6) {
PJ *PROJECTION(mbtfps) {
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_OTHER /*ENOMEM*/);
P->opaque = Q;
P->destructor = destructor;
@@ -175,17 +175,33 @@ PJ *PROJECTION(mbtfps) {
PJ *PROJECTION(gn_sinu) {
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_OTHER /*ENOMEM*/);
P->opaque = Q;
P->destructor = destructor;
- if (pj_param(P->ctx, P->params, "tn").i && pj_param(P->ctx, P->params, "tm").i) {
- Q->n = pj_param(P->ctx, P->params, "dn").f;
- Q->m = pj_param(P->ctx, P->params, "dm").f;
- if (Q->n <= 0 || Q->m < 0)
- return destructor (P, PJD_ERR_INVALID_M_OR_N);
- } else
- return destructor (P, PJD_ERR_INVALID_M_OR_N);
+ if (!pj_param(P->ctx, P->params, "tn").i )
+ {
+ proj_log_error(P, _("Missing parameter n."));
+ return pj_default_destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG);
+ }
+ if (!pj_param(P->ctx, P->params, "tm").i )
+ {
+ proj_log_error(P, _("Missing parameter m."));
+ return pj_default_destructor(P, PROJ_ERR_INVALID_OP_MISSING_ARG);
+ }
+
+ Q->n = pj_param(P->ctx, P->params, "dn").f;
+ Q->m = pj_param(P->ctx, P->params, "dm").f;
+ if (Q->n <= 0)
+ {
+ proj_log_error(P, _("Invalid value for n: it should be > 0."));
+ return pj_default_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE);
+ }
+ if (Q->m < 0)
+ {
+ proj_log_error(P, _("Invalid value for m: it should be >= 0."));
+ return pj_default_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE);
+ }
setup(P);