diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WW.java @ 2198:672a41efe222

"Bezugslinienverfahren": Replaced normalized curve generation with a better and needed solution. flys-artifacts/trunk@3814 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sat, 28 Jan 2012 12:50:03 +0000
parents 5781847433d8
children 4e3bfa2d9584
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WW.java	Fri Jan 27 17:59:24 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WW.java	Sat Jan 28 12:50:03 2012 +0000
@@ -1,10 +1,52 @@
 package de.intevation.flys.artifacts.model;
 
+import de.intevation.flys.artifacts.math.Function;
+import de.intevation.flys.artifacts.math.Identity;
+
 import gnu.trove.TDoubleArrayList;
 
 public class WW
 extends      W
 {
+    public static class ApplyFunctionIterator
+    {
+        protected Function function1;
+        protected Function function2;
+        protected int      pos;
+        protected WW       ww;
+
+        public ApplyFunctionIterator(WW ww) {
+            this.ww        = ww;
+            this.function1 = Identity.IDENTITY;
+            this.function2 = Identity.IDENTITY;
+        }
+
+        public boolean hasNext() {
+            return pos < ww.size();
+        }
+
+        public int size() {
+            return ww.size();
+        }
+
+        public void reset() {
+            pos = 0;
+        }
+
+        public WW getWW() {
+            return ww;
+        }
+
+        public void get(int idx, double [] wwPair) {
+            wwPair[0] = function1.value(ww.getW(idx));
+            wwPair[1] = function2.value(ww.getW2(idx));
+        }
+
+        public void next(double [] wwPair) {
+            get(pos++, wwPair);
+        }
+    } // class FunctionIterator
+
     protected TDoubleArrayList ws2;
 
     public WW() {
@@ -65,22 +107,8 @@
         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);
+    public double minWs2() {
+        return ws2.min();
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org