sascha@2256: package de.intevation.flys.artifacts.model; sascha@2256: sascha@2256: import de.intevation.flys.artifacts.math.Function; sascha@2256: import de.intevation.flys.artifacts.math.Identity; sascha@2281: import de.intevation.flys.artifacts.math.LinearFunction; sascha@2256: sascha@2256: public class WWAxisTypes sascha@2256: { sascha@2256: protected boolean inCm1; sascha@2256: protected boolean inCm2; sascha@2256: sascha@2256: public WWAxisTypes() { sascha@2256: inCm1 = inCm2 = true; sascha@2256: } sascha@2256: sascha@2256: public WWAxisTypes(WW ww) { sascha@2256: this(); sascha@2256: classify(ww); sascha@2256: } sascha@2256: sascha@2256: public void classify(WW ww) { sascha@2256: if (!ww.startAtGauge()) inCm1 = false; sascha@2256: if (!ww.endAtGauge()) inCm2 = false; sascha@2256: } sascha@2256: sascha@2407: public boolean getInCm(int index) { sascha@2407: switch (index) { sascha@2407: case 0: return inCm1; sascha@2407: case 1: return inCm2; sascha@2407: default: return false; sascha@2407: } sascha@2407: } sascha@2407: sascha@2256: public boolean getInCm1() { sascha@2256: return inCm1; sascha@2256: } sascha@2256: sascha@2256: public void setInCm1(boolean inCm1) { sascha@2256: this.inCm1 = inCm1; sascha@2256: } sascha@2256: sascha@2256: public boolean getInCm2() { sascha@2256: return inCm2; sascha@2256: } sascha@2256: sascha@2256: public void setInCm2(boolean inCm2) { sascha@2256: this.inCm2 = inCm2; sascha@2256: } sascha@2256: sascha@2256: public WW.ApplyFunctionIterator transform(WW ww) { sascha@2278: return transform(ww, false); sascha@2278: } sascha@2278: sascha@2278: public WW.ApplyFunctionIterator transform(WW ww, boolean normalized) { sascha@2278: sascha@2281: Function function1; sascha@2281: Function function2; sascha@2256: sascha@2281: if (!normalized) { sascha@2281: function1 = inCm1 felix@2401: ? new LinearFunction(100d, -ww.getStartDatum()*100d) sascha@2281: : Identity.IDENTITY; sascha@2281: sascha@2281: function2 = inCm2 felix@2401: ? new LinearFunction(100d, -ww.getEndDatum()*100d) sascha@2281: : Identity.IDENTITY; sascha@2281: } sascha@2281: else { sascha@2281: double minW1 = ww.minWs(); sascha@2281: double minW2 = ww.minWs2(); sascha@2281: double scale1 = inCm1 ? 100d : 1d; sascha@2281: double scale2 = inCm2 ? 100d : 1d; sascha@2281: function1 = new LinearFunction(scale1, -minW1); sascha@2281: function2 = new LinearFunction(scale1, -minW2); sascha@2281: } sascha@2281: sascha@2256: return new WW.ApplyFunctionIterator(ww, function1, function2); sascha@2256: } sascha@2256: } sascha@2256: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :