Mercurial > dive4elements > river
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 :