Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/model/MainValuesQFacet.java @ 7494:4de4b19b6be6
Fixed half broken interpolation code for lines to 'Dauerlinie'.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Fri, 01 Nov 2013 13:25:54 +0100 |
parents | 3e9961dcbf9a |
children | e4606eae8ea5 |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/MainValuesQFacet.java Fri Nov 01 12:12:24 2013 +0100 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/MainValuesQFacet.java Fri Nov 01 13:25:54 2013 +0100 @@ -20,7 +20,6 @@ import org.dive4elements.artifactdatabase.state.DefaultFacet; import org.dive4elements.river.artifacts.MainValuesArtifact; -import org.dive4elements.river.artifacts.math.Linear; import org.dive4elements.river.jfree.RiverAnnotation; import org.dive4elements.river.jfree.StickyAxisAnnotation; @@ -51,7 +50,6 @@ this.isAtGauge = atGauge; } - /** * Set the hit-point in Q where a line drawn from the axis would hit the * curve in WQDay (if hit). @@ -59,34 +57,14 @@ */ protected static void setHitPoint(WQDay wqday, StickyAxisAnnotation annotation) { - if (wqday.size() == 0) { - return; - } + float q = annotation.getPos(); + Double day = wqday.interpolateDayByQ(q); - int idx = 0; - float q = annotation.getPos(); - boolean qIncreases = wqday.getQ(0) < wqday.getQ(wqday.size()-1); - if (qIncreases) { - while (idx < wqday.size() && wqday.getQ(idx) < q) { - idx++; - } + if (day != null) { + annotation.setHitPoint(day.floatValue()); } - else { - idx = wqday.size() -1; - while (idx > 0 && wqday.getQ(idx) > q) { - idx--; - } - } - - double day = 0d; - int mod = (qIncreases) ? -1 : +1; - if (idx != 0 && idx <= wqday.size()-1) { - day = Linear.linear(q, wqday.getQ(idx +mod), wqday.getQ(idx), - wqday.getDay(idx+mod), wqday.getDay(idx)); - annotation.setHitPoint((float)day); - } - else { - logger.debug("StickyAnnotation does not hit wqday curve"); + else if (logger.isDebugEnabled()) { + logger.debug("StickyAnnotation does not hit wqday curve: " + q); } }