diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java @ 649:44175d4720f8

Fix crashes in back jump correction. flys-artifacts/trunk@2038 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 01 Jun 2011 09:57:22 +0000
parents 433f67a076aa
children 913b52064449
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java	Wed Jun 01 09:18:00 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java	Wed Jun 01 09:57:22 2011 +0000
@@ -345,13 +345,25 @@
         QPosition   qPosition,
         LinearRemap remap
     ) {
+        interpolate(kms, ws, qs, qPosition, remap, 0, kms.length);
+    }
+
+    public void interpolate(
+        double []   kms,
+        double []   ws,
+        double []   qs,
+        QPosition   qPosition,
+        LinearRemap remap,
+        int         startIndex,
+        int         length
+    ) {
         int R1 = rows.size()-1;
 
         Row kmKey = new Row();
 
         QPosition nPosition = new QPosition();
 
-        for (int i = 0; i < kms.length; ++i) {
+        for (int i = startIndex, end = startIndex+length; i < end; ++i) {
             kmKey.km = kms[i];
 
             qs[i] = remap.eval(kms[i], getQ(qPosition, kms[i]));
@@ -389,6 +401,18 @@
         double [] ws,
         double [] qs
     ) {
+        return interpolate(q, referenceKm, kms, ws, qs, 0, kms.length);
+    }
+
+    public QPosition interpolate(
+        double    q,
+        double    referenceKm,
+        double [] kms,
+        double [] ws,
+        double [] qs,
+        int       startIndex,
+        int       length
+    ) {
         QPosition qPosition = getQPosition(referenceKm, q);
 
         if (qPosition == null) {
@@ -400,7 +424,7 @@
 
         int R1 = rows.size()-1;
 
-        for (int i = 0; i < kms.length; ++i) {
+        for (int i = startIndex, end = startIndex+length; i < end; ++i) {
             kmKey.km = kms[i];
 
             int rowIndex = Collections.binarySearch(rows, kmKey);

http://dive4elements.wald.intevation.org