Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WW.java @ 3785:a5f65e8983be
Merged revisions 5501-5502,5504-5508,5511-5513,5516-5519 via svnmerge from
file:///home/clients/bsh/bsh-generischer-viewer/Material/SVN/flys-artifacts/trunk
........
r5501 | felix | 2012-09-18 11:49:45 +0200 (Di, 18 Sep 2012) | 1 line
fix issue865 - missing showarea theme prop.
........
r5502 | clins | 2012-09-18 12:18:30 +0200 (Di, 18 Sep 2012) | 1 line
Add robustness checks to prevent NPEs
........
r5504 | felix | 2012-09-18 14:03:15 +0200 (Di, 18 Sep 2012) | 1 line
i18n for area label (fix issue487).
........
r5505 | clins | 2012-09-18 16:19:59 +0200 (Di, 18 Sep 2012) | 1 line
Update themes to show point descriptions
........
r5506 | rrenkert | 2012-09-18 17:00:30 +0200 (Di, 18 Sep 2012) | 3 lines
Removed incorrect characteristic diameter.
........
r5507 | rrenkert | 2012-09-18 17:03:20 +0200 (Di, 18 Sep 2012) | 3 lines
Fixed some stupid bugs in bed quality data factory and calculation.
........
r5508 | teichmann | 2012-09-18 17:45:49 +0200 (Di, 18 Sep 2012) | 1 line
The usual whitespace and import cleanups.
........
r5511 | teichmann | 2012-09-18 18:24:51 +0200 (Di, 18 Sep 2012) | 1 line
Use generics aware Collections.emptyList().
........
r5512 | teichmann | 2012-09-18 20:36:52 +0200 (Di, 18 Sep 2012) | 1 line
Some more little steps towards "Auslagerung extremer Wasserspiegellagen".
........
r5513 | clins | 2012-09-18 23:38:19 +0200 (Di, 18 Sep 2012) | 1 line
A and B facets of fix analyis are now deactivated by default
........
r5516 | bricks | 2012-09-19 10:45:51 +0200 (Mi, 19 Sep 2012) | 2 lines
Add the gauge station to the GaugeOverviewInfoService xml response
........
r5517 | rrenkert | 2012-09-19 10:50:23 +0200 (Mi, 19 Sep 2012) | 3 lines
Added CSV export to bed quality calculation.
........
r5518 | bricks | 2012-09-19 11:04:04 +0200 (Mi, 19 Sep 2012) | 2 lines
Fix date in changelog entry
........
r5519 | teichmann | 2012-09-19 11:17:14 +0200 (Mi, 19 Sep 2012) | 1 line
Removed trailing whitespace.
........
flys-artifacts/tags/2.9.1@5531 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 19 Sep 2012 14:58:31 +0000 |
parents | 5642a83420f2 |
children | bcf25d8c183e |
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 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, Identity.IDENTITY, Identity.IDENTITY); } public ApplyFunctionIterator( WW ww, Function function1, Function function2 ) { this.ww = ww; this.function1 = function1; this.function2 = function2; } 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; protected double startKm; protected double endKm; protected Double startDatum; protected Double endDatum; public WW() { this(""); } public WW(String name) { super(name); } public WW(int capacity) { this(capacity, ""); } public WW(int capacity, String name) { super(capacity, name); ws2 = new TDoubleArrayList(capacity); } public WW( String name, double startKm, Double startDatum, double [] ws, double endKm, Double endDatum, double [] ws2 ) { this.name = name; this.ws = new TDoubleArrayList(ws); this.ws2 = new TDoubleArrayList(ws2); this.startKm = startKm; this.startDatum = startDatum; this.endKm = endKm; this.endDatum = endDatum; } 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); } public double getW1(int idx) { return ws.getQuick(idx); } public double getW2(int idx) { return ws2.getQuick(idx); } public double [] getWs2() { return ws2.toNativeArray(); } @Override public double [] get(int idx) { return get(idx, new double[2]); } @Override public double [] get(int idx, double [] dst) { dst[0] = ws .getQuick(idx); dst[1] = ws2.getQuick(idx); return dst; } public double getStartKm() { return startKm; } public void setStartKm(double startKm) { this.startKm = startKm; } public double getEndKm() { return endKm; } public void setEndKm(double endKm) { this.endKm = endKm; } public Double getStartDatum() { return startDatum; } public boolean startAtGauge() { return startDatum != null; } public boolean endAtGauge() { return endDatum != null; } public void setStartDatum(Double startDatum) { this.startDatum = startDatum; } public Double getEndDatum() { return endDatum; } public void setEndDatum(Double endDatum) { this.endDatum = endDatum; } @Override public void removeNaNs() { removeNaNs(new TDoubleArrayList [] { ws, ws2 }); } public double minWs2() { return ws2.min(); } // Note that we can also easily define a Function to do so. public double getRelHeight1Cm(int idx) { if (this.startAtGauge()) { return (ws.getQuick(idx) - getStartDatum())*100d; } else return ws.getQuick(idx)*100d; } public double getRelHeight2Cm(int idx) { if (this.endAtGauge()) { return (ws2.getQuick(idx) - getEndDatum())*100d; } else return ws2.getQuick(idx)*100d; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :