diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java @ 633:d08f77e7f7e8

WST value table: Qs are now stored in ranges for each column. flys-artifacts/trunk@2006 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 25 May 2011 15:31:25 +0000
parents 07640ab913fd
children a776afdf1ec5
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java	Tue May 24 14:46:45 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/QRangeTree.java	Wed May 25 15:31:25 2011 +0000
@@ -2,16 +2,15 @@
 
 import java.io.Serializable;
 
-import java.math.BigDecimal;
-
 import java.util.List;
 
-import de.intevation.flys.model.WstQRange;
-import de.intevation.flys.model.Range;
+import org.apache.log4j.Logger;
 
 public class QRangeTree
 implements   Serializable
 {
+    private static Logger log = Logger.getLogger(QRangeTree.class);
+
     public static class Node
     implements          Serializable
     {
@@ -75,6 +74,7 @@
         }
 
         public double findQ(double pos) {
+
             Node current = this;
             for (;;) {
                 if (pos < current.a) {
@@ -82,7 +82,7 @@
                         current = current.left;
                         continue;
                     }
-                    return current.left != null
+                    return current.prev != null
                         ? current.interpolatePrev(pos)
                         : Double.NaN;
                 }
@@ -91,7 +91,7 @@
                         current = current.right;
                         continue;
                     }
-                    return current.right != null
+                    return current.next != null
                         ? current.interpolateNext(pos)
                         : Double.NaN;
                 }
@@ -106,27 +106,6 @@
     }
 
     /** wstQRanges need to be sorted by range.a */
-    public QRangeTree(List<WstQRange> wstQRanges) {
-
-        if (wstQRanges.isEmpty()) {
-            return;
-        }
-
-        Node [] nodes = new Node[wstQRanges.size()];
-        for (int i = 0; i < nodes.length; ++i) {
-            WstQRange wstQRange = wstQRanges.get(i);
-            Range     range     = wstQRange.getRange();
-            BigDecimal a = range.getA();
-            BigDecimal b = range.getB();
-            nodes[i] = new Node(
-                a != null ? a.doubleValue() : -Double.MAX_VALUE,
-                b != null ? b.doubleValue() :  Double.MAX_VALUE,
-                wstQRange.getQ().doubleValue());
-        }
-
-        root = wireTree(nodes);
-    }
-
     public QRangeTree(List<Object []> qRanges, int start, int stop) {
 
         if (stop <= start) {

http://dive4elements.wald.intevation.org