changeset 2197:5781847433d8

"Bezugslinienverfahren": Implemented the on-the-flys shift to (0, 0). flys-artifacts/trunk@3813 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 27 Jan 2012 17:59:24 +0000
parents 5f3726f31f00
children 672a41efe222
files flys-artifacts/ChangeLog flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/NormalizedReferenceCurveFacet.java flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WW.java
diffstat 3 files changed, 33 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/flys-artifacts/ChangeLog	Fri Jan 27 17:45:26 2012 +0000
+++ b/flys-artifacts/ChangeLog	Fri Jan 27 17:59:24 2012 +0000
@@ -1,3 +1,11 @@
+2012-01-27	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* src/main/java/de/intevation/flys/artifacts/model/WW.java:
+	  Added method createNormalized() to shift the data to start in (0, 0).
+
+	* src/main/java/de/intevation/flys/artifacts/model/NormalizedReferenceCurveFacet.java:
+	  Returns the 'normalized' data of the reference curve.
+
 2012-01-27	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
 
 	* src/main/java/de/intevation/flys/artifacts/model/NormalizedReferenceCurveFacet.java:
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/NormalizedReferenceCurveFacet.java	Fri Jan 27 17:45:26 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/NormalizedReferenceCurveFacet.java	Fri Jan 27 17:59:24 2012 +0000
@@ -32,7 +32,7 @@
     @Override
     protected Object getInternalData(WW [] wws) {
         // TODO: On-the-fly generation of normalized WW.
-        return wws[index];
+        return wws[index].createNormalized();
     }
 
     /** Copy deeply. */
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WW.java	Fri Jan 27 17:45:26 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WW.java	Fri Jan 27 17:59:24 2012 +0000
@@ -29,6 +29,12 @@
         this.ws2 = new TDoubleArrayList(ws2);
     }
 
+    public WW(String name, TDoubleArrayList ws, TDoubleArrayList ws2) {
+        this.name = name;
+        this.ws  = ws;
+        this.ws2 = ws2;
+    }
+
     public void add(double w1, double w2) {
         ws .add(w1);
         ws2.add(w2);
@@ -58,5 +64,23 @@
     public void removeNaNs() {
         removeNaNs(new TDoubleArrayList [] { ws, ws2 });
     }
+
+    public WW createNormalized() {
+
+        double minW1 = ws. min();
+        double minW2 = ws2.min(); 
+
+        int N = size();
+
+        TDoubleArrayList ws1c = new TDoubleArrayList(N);
+        TDoubleArrayList ws2c = new TDoubleArrayList(N);
+
+        for (int i = 0; i < N; ++i) {
+            ws1c.add(ws. getQuick(i) - minW1);
+            ws2c.add(ws2.getQuick(i) - minW2);
+        }
+
+        return new WW(getName(), ws1c, ws2c);
+    }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org