Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WWAxisTypes.java @ 3061:49baebb39305
FixA: Add interpolation of parameters that better suits the instantiation real functions.
flys-artifacts/trunk@4641 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 12 Jun 2012 08:11:36 +0000 |
parents | 388cd6fc451b |
children |
line wrap: on
line source
package de.intevation.flys.artifacts.model; import de.intevation.flys.artifacts.math.Function; import de.intevation.flys.artifacts.math.Identity; import de.intevation.flys.artifacts.math.AddScaleFunction; public class WWAxisTypes { protected boolean inCm1; protected boolean inCm2; public WWAxisTypes() { inCm1 = inCm2 = true; } public WWAxisTypes(WW ww) { this(); classify(ww); } public void classify(WW ww) { if (!ww.startAtGauge()) inCm1 = false; if (!ww.endAtGauge()) inCm2 = false; } public boolean getInCm(int index) { switch (index) { case 0: return inCm1; case 1: return inCm2; default: return false; } } public boolean getInCm1() { return inCm1; } public void setInCm1(boolean inCm1) { this.inCm1 = inCm1; } public boolean getInCm2() { return inCm2; } public void setInCm2(boolean inCm2) { this.inCm2 = inCm2; } public WW.ApplyFunctionIterator transform(WW ww) { return transform(ww, false); } private static final double zero(Double d) { return d == null ? 0 : d; } public WW.ApplyFunctionIterator transform(WW ww, boolean normalized) { Function function1; Function function2; if (!normalized) { function1 = inCm1 ? new AddScaleFunction(-ww.getStartDatum(), 100d) : Identity.IDENTITY; function2 = inCm2 ? new AddScaleFunction(-ww.getEndDatum(), 100d) : Identity.IDENTITY; } else { double minW1 = ww.minWs(); double minW2 = ww.minWs2(); double scale1 = inCm1 ? 100d : 1d; double scale2 = inCm2 ? 100d : 1d; function1 = new AddScaleFunction(-minW1, scale1); function2 = new AddScaleFunction(-minW2, scale2); } return new WW.ApplyFunctionIterator(ww, function1, function2); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :