From 95f3eaf001188a1e098bea246e6736751e5fcd0d Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 31 May 2017 18:55:41 +0200 Subject: [PATCH 1/2] Diagonal curve should be bypassed when it is linear, regardless of node count, fixes #3902 --- rtengine/diagonalcurves.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/diagonalcurves.cc b/rtengine/diagonalcurves.cc index 1c75e3059..82faa6cd5 100644 --- a/rtengine/diagonalcurves.cc +++ b/rtengine/diagonalcurves.cc @@ -58,7 +58,7 @@ DiagonalCurve::DiagonalCurve (const std::vector& p, int poly_pn) x[i] = p[ix++]; y[i] = p[ix++]; - if (x[i] != y[i]) { + if (std::fabs(x[i] - y[i]) >= 0.000009) { identity = false; } } From 40ee59147488c228baf446f7573e25bbced991d7 Mon Sep 17 00:00:00 2001 From: heckflosse Date: Wed, 31 May 2017 19:24:33 +0200 Subject: [PATCH 2/2] Added a comment for last commit --- rtengine/diagonalcurves.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rtengine/diagonalcurves.cc b/rtengine/diagonalcurves.cc index 82faa6cd5..3f885782c 100644 --- a/rtengine/diagonalcurves.cc +++ b/rtengine/diagonalcurves.cc @@ -59,6 +59,8 @@ DiagonalCurve::DiagonalCurve (const std::vector& p, int poly_pn) y[i] = p[ix++]; if (std::fabs(x[i] - y[i]) >= 0.000009) { + // the smallest possible difference between x and y curve point values is ~ 0.00001 + // checking against >= 0.000009 is a bit saver than checking against >= 0.00001 identity = false; } }