diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java @ 1676:6e840e213fdf

Backjump correction: Finally looks fine. flys-artifacts/trunk@2893 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 05 Oct 2011 10:36:40 +0000
parents b5209452f6bb
children 2898b1ff6013
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java	Wed Oct 05 10:26:54 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/BackJumpCorrector.java	Wed Oct 05 10:36:40 2011 +0000
@@ -133,10 +133,10 @@
 
             double between = above + quarterDistance;
 
-            double betweenHeight = ws[i] + 0.25*(startHeight - ws[i]);
+            double aboveHeight = ws[i] + 0.25*(startHeight - ws[i]);
 
-            double [] x = { start,  between,  km[i] };
-            double [] y = { startHeight, betweenHeight, ws[i] };
+            double [] x = { start,  above,  between };
+            double [] y = { startHeight, aboveHeight, ws[i] };
 
             if (log.isDebugEnabled()) {
                 for (int j = 0; j < x.length; ++j) {
@@ -168,7 +168,13 @@
                     }
                 }
 
-                for (int j = i-1; j > 0 && ws[j] < startHeight; --j) {
+                int j = i-1;
+
+                for (; j >= 0 && km[j] >= between; --j) {
+                    ws[j] = ws[i];
+                }
+
+                for (; j >= 0 && ws[j] < startHeight; --j) {
                     ws[j] = spline.value(km[j]);
                 }
             }

http://dive4elements.wald.intevation.org