diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/pj_fwd.c | 5 | ||||
| -rw-r--r-- | src/pj_inv.c | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/pj_fwd.c b/src/pj_fwd.c index 347f8334..4b6cfc58 100644 --- a/src/pj_fwd.c +++ b/src/pj_fwd.c @@ -30,6 +30,7 @@ #include <errno.h> #include "proj_internal.h" +#include "proj_math.h" #include "projects.h" #define INPUT_UNITS P->left @@ -37,7 +38,7 @@ static PJ_COORD fwd_prepare (PJ *P, PJ_COORD coo) { - if (HUGE_VAL==coo.v[0]) + if (HUGE_VAL==coo.v[0] || HUGE_VAL==coo.v[1] || HUGE_VAL==coo.v[2]) return proj_coord_error (); /* The helmert datum shift will choke unless it gets a sensible 4D coordinate */ @@ -191,7 +192,7 @@ XY pj_fwd(LP lp, PJ *P) { if (!P->skip_fwd_prepare) coo = fwd_prepare (P, coo); - if (HUGE_VAL==coo.v[0]) + if (HUGE_VAL==coo.v[0] || HUGE_VAL==coo.v[1]) return proj_coord_error ().xy; /* Do the transformation, using the lowest dimensional transformer available */ diff --git a/src/pj_inv.c b/src/pj_inv.c index 327fef9f..25d416c0 100644 --- a/src/pj_inv.c +++ b/src/pj_inv.c @@ -30,13 +30,14 @@ #include <errno.h> #include "proj_internal.h" +#include "proj_math.h" #include "projects.h" #define INPUT_UNITS P->right #define OUTPUT_UNITS P->left static PJ_COORD inv_prepare (PJ *P, PJ_COORD coo) { - if (coo.xyz.x == HUGE_VAL) { + if (coo.v[0] == HUGE_VAL || coo.v[1] == HUGE_VAL || coo.v[2] == HUGE_VAL) { proj_errno_set (P, PJD_ERR_INVALID_X_OR_Y); return proj_coord_error (); } |
