annotate artifacts/src/main/java/org/dive4elements/river/exports/StyledSeriesBuilder.java @ 8696:5dea205ea3e7

(issue1670) Remove 99-percent copy-paste method, which had been used only once.
author Tom Gottfried <tom@intevation.de>
date Mon, 20 Apr 2015 12:58:52 +0200
parents a7eaf3e13bbe
children 527e0f4c28c1
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4438
diff changeset
9 package org.dive4elements.river.exports;
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
10
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
11 import org.apache.log4j.Logger;
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
12
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
13 import org.jfree.data.xy.XYSeries;
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
14
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4438
diff changeset
15 import org.dive4elements.river.artifacts.model.WKms;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4438
diff changeset
16 import org.dive4elements.river.artifacts.model.WQKms;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4438
diff changeset
17 import org.dive4elements.river.artifacts.model.WWQQ;
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
18
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
19 /**
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
20 * Helper to create and modify StyledXYSeries.
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
21 */
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
22 public class StyledSeriesBuilder {
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
23
2601
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
24 /**
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
25 * JFreeChart and the area calculation will fail if we use Double.INFINITY
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
26 * or Double.MAX_VALUE (probably because these are really used in
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
27 * calculations). We define and use a more handy value instead.
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
28 */
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
29 final static double BIG_DOUBLE_VALUE = 1234567d;
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
30
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6881
diff changeset
31 private static final Logger log = Logger.getLogger
2571
63f44b8b41a3 Partial Dontcrash on flys/issue647 (NaNs from WstValueTable interpolation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2156
diff changeset
32 (StyledSeriesBuilder.class);
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
33
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
34
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
35 /**
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
36 * Trivial, hidden constructor.
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
37 */
1886
6f047a407f84 Removed dead ';' from empty bodies.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1812
diff changeset
38 private StyledSeriesBuilder() {
6f047a407f84 Removed dead ';' from empty bodies.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1812
diff changeset
39 }
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
40
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
41
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
42 /**
6212
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
43 * Add points to series, create gaps if certain distance between points is met.
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
44 *
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
45 * @param series Series to add points to.
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
46 * @param points Points to add to series, points[0] to 1st dim, points[1]
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
47 * to 2nd dim.
6769
334db91c96dc StyledSeriesBuilder: Minor doc improvement.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6465
diff changeset
48 * @param skipNANs if true, skip NAN values in points parameter. Otherwise,
334db91c96dc StyledSeriesBuilder: Minor doc improvement.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6465
diff changeset
49 * the NaNs lead to gaps in graph.
6212
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
50 * @param distance if two consecutive entries in points[0] are more
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
51 * than distance apart, create a NaN value to skip in display.
6778
cbe9ac4380a5 issue1439: Show line segments for points that have gaps on both sides. Small refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6769
diff changeset
52 * Still, create a line segment.
6212
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
53 */
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
54 public static void addPoints(XYSeries series, double[][] points, boolean skipNANs, double distance) {
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
55 if (points == null || points.length <= 1) {
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
56 return;
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
57 }
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
58 double [] xPoints = points[0];
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
59 double [] yPoints = points[1];
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
60 for (int i = 0; i < xPoints.length; i++) {
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
61 if (skipNANs &&
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
62 (Double.isNaN(xPoints[i]) || Double.isNaN(yPoints[i]))) {
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
63 continue;
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
64 }
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
65 // Create gap if distance >= distance.
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
66 if (i != 0 && Math.abs(xPoints[i-1] - xPoints[i]) >= distance) {
6778
cbe9ac4380a5 issue1439: Show line segments for points that have gaps on both sides. Small refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6769
diff changeset
67 // Create at least a small segment for last point.
cbe9ac4380a5 issue1439: Show line segments for points that have gaps on both sides. Small refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6769
diff changeset
68 if (!Double.isNaN(yPoints[i-1])) {
cbe9ac4380a5 issue1439: Show line segments for points that have gaps on both sides. Small refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6769
diff changeset
69 series.add(xPoints[i-1]+0.99d*(distance)/2.d, yPoints[i-1], false);
cbe9ac4380a5 issue1439: Show line segments for points that have gaps on both sides. Small refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6769
diff changeset
70 }
cbe9ac4380a5 issue1439: Show line segments for points that have gaps on both sides. Small refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6769
diff changeset
71
6212
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
72 if (!Double.isNaN(yPoints[i-1]) && !Double.isNaN(yPoints[i])) {
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
73 series.add((xPoints[i-1]+xPoints[i])/2.d, Double.NaN, false);
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
74 }
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
75 }
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
76 series.add(xPoints[i], yPoints[i], false);
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
77 }
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
78 }
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
79
128686fa5add flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
80 /**
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
81 * Add points to series.
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
82 *
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
83 * @param series Series to add points to.
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
84 * @param points Points to add to series, points[0] to 1st dim, points[1]
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
85 * to 2nd dim.
2686
6fda6ec9e426 Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2601
diff changeset
86 * @param skipNANs if true, skip NAN values in points parameter.
6465
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
87 * @param transY translate y-values by this value (before scale).
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
88 * @param factorY scale y-values by this value (after translation).
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
89 */
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
90 public static void addPoints(XYSeries series, double[][] points,
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
91 boolean skipNANs, double transY, double factorY) {
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
92 if (transY == 0d && factorY == 1d) {
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
93 addPoints(series, points, skipNANs);
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
94 return;
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
95 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
96 if (points == null || points.length <= 1) {
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
97 return;
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
98 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
99 double [] xPoints = points[0];
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
100 double [] yPoints = points[1];
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
101 for (int i = 0; i < xPoints.length; i++) {
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
102 if (skipNANs &&
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
103 (Double.isNaN(xPoints[i]) || Double.isNaN(yPoints[i]))) {
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
104 continue;
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
105 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
106 series.add(xPoints[i], factorY * (transY+yPoints[i]), false);
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
107 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
108 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
109
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
110 /**
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
111 * Add points to series.
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
112 *
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
113 * @param series Series to add points to.
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
114 * @param points Points to add to series, points[0] to 1st dim, points[1]
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
115 * to 2nd dim.
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
116 * @param skipNANs if true, skip NAN values in points parameter.
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
117 */
2686
6fda6ec9e426 Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2601
diff changeset
118 public static void addPoints(XYSeries series, double[][] points, boolean skipNANs) {
1983
ddb7b7da6199 Fix/survive certain minor malconditions.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1975
diff changeset
119 if (points == null || points.length <= 1) {
1975
b30e1710df1d Server-side of interactive cross-section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1942
diff changeset
120 return;
b30e1710df1d Server-side of interactive cross-section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1942
diff changeset
121 }
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
122 double [] xPoints = points[0];
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
123 double [] yPoints = points[1];
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
124 for (int i = 0; i < xPoints.length; i++) {
2686
6fda6ec9e426 Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2601
diff changeset
125 if (skipNANs &&
6fda6ec9e426 Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2601
diff changeset
126 (Double.isNaN(xPoints[i]) || Double.isNaN(yPoints[i]))) {
2571
63f44b8b41a3 Partial Dontcrash on flys/issue647 (NaNs from WstValueTable interpolation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2156
diff changeset
127 continue;
63f44b8b41a3 Partial Dontcrash on flys/issue647 (NaNs from WstValueTable interpolation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2156
diff changeset
128 }
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
129 series.add(xPoints[i], yPoints[i], false);
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
130 }
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
131 }
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
132
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
133
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
134 /**
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
135 * Add points to series (km to 1st dim, w to 2nd dim).
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
136 *
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
137 * @param series Series to add points to.
3269
b2ea89a665bc Fix issues in 'documentation'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3176
diff changeset
138 * @param wkms WKms to add to series.
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
139 */
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
140 public static void addPoints(XYSeries series, WKms wkms) {
2156
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
141 if (wkms == null) {
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
142 return;
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
143 }
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
144
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
145 int size = wkms.size();
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
146
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
147 for (int i = 0; i < size; i++) {
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
148 series.add(wkms.getKm(i), wkms.getW(i), false);
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
149 }
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
150 }
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
151
3395
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
152
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
153 /**
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
154 * Add points to dataset with an offset (shift all points by given amount).
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
155 * @param series series to add data to.
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
156 * @param wkms WKms of which the Ws will be shifted.
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
157 * @param off the offset.
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
158 */
3394
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
159 public static void addUpperBand(XYSeries series, WKms wkms, double off) {
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
160 if (wkms == null) {
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
161 return;
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
162 }
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
163
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
164 int size = wkms.size();
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
165
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
166 for (int i = 0; i < size; i++) {
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
167 series.add(wkms.getKm(i), wkms.getW(i)+off, false);
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
168 }
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
169 }
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
170
3395
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
171
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
172 /**
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
173 * Add points to dataset with an offset (shift all points 'down' by given
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
174 * amount).
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
175 * @param series series to add data to.
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
176 * @param wkms WKms of which the Ws will be shifted.
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
177 * @param off the offset.
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
178 */
3394
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
179 public static void addLowerBand(XYSeries series, WKms wkms, double off) {
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
180 addUpperBand(series, wkms, -off);
f091f2f55f88 Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3284
diff changeset
181 }
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
182
3395
2a8919e0ed28 Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3394
diff changeset
183
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
184 /**
1942
be1270c10d9a Fix documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1886
diff changeset
185 * Add points to series (km to 1st dim, q to 2nd dim).
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
186 *
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
187 * @param series Series to add points to.
3269
b2ea89a665bc Fix issues in 'documentation'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3176
diff changeset
188 * @param wqkms WQKms to add to series.
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
189 */
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
190 public static void addPointsKmQ(XYSeries series, WQKms wqkms) {
2156
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
191 if (wqkms == null) {
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
192 return;
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
193 }
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
194
2156
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
195 int size = wqkms.size();
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
196
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
197 for (int i = 0; i < size; i++) {
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
198 series.add(wqkms.getKm(i), wqkms.getQ(i), false);
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
199 }
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
200 }
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
201
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
202
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
203 /**
3176
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
204 * Add points to series (km to 1st dim, q to 2nd dim), adding points
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
205 * to achieve a step-like curve.
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
206 *
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
207 * @param series Series to add points to.
3269
b2ea89a665bc Fix issues in 'documentation'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3176
diff changeset
208 * @param wqkms WQKms to add to series.
3176
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
209 */
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
210 public static void addStepPointsKmQ(XYSeries series, WQKms wqkms) {
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
211 if (wqkms == null) {
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
212 return;
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
213 }
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
214
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
215 int size = wqkms.size();
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
216
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
217 for (int i = 0; i < size; i++) {
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
218 if (i==0) {
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
219 series.add(wqkms.getKm(i), wqkms.getQ(i), false);
8507
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
220 } else if (i == size-1) {
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
221 series.add(wqkms.getKm(i), wqkms.getQ(i), false);
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
222 } else {
3176
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
223 //Add two points.
8507
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
224 double prevX;
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
225 double prevQ;
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
226 if (wqkms.getKm(i + 1) < wqkms.getKm(i)) {
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
227 /* Depending on the data direction the previous km / q
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
228 * might have a larger index when we draw right to left data. */
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
229 prevX = wqkms.getKm(i + 1);
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
230 prevQ = wqkms.getQ(i + 1);
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
231 } else {
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
232 prevX = wqkms.getKm(i - 1);
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
233 prevQ = wqkms.getQ(i - 1);
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
234 }
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
235 double halveX = (prevX + wqkms.getKm(i)) / 2d;
7d0c4e508835 (issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8202
diff changeset
236 series.add(halveX, prevQ, false);
4438
919d4939ebe6 Don't notify jfreechart listeners when adding points
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4365
diff changeset
237 series.add(halveX, wqkms.getQ(i), false);
3176
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
238 }
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
239 }
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
240 }
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
241
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
242
cbaa49896eca Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3076
diff changeset
243 /**
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
244 * Add points to series (q to 1st dim, w to 2nd dim).
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
245 *
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
246 * @param series Series to add points to.
3284
d9af29a4bb85 Various cosmetic doc fixes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3269
diff changeset
247 * @param wqkms WQKms to add to series.
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
248 */
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
249 public static void addPointsQW(XYSeries series, WQKms wqkms) {
2156
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
250 if (wqkms == null) {
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
251 return;
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
252 }
4e0878695c5f Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1983
diff changeset
253
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
254 int size = wqkms.size();
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
255
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
256 for (int i = 0; i < size; i++) {
4438
919d4939ebe6 Don't notify jfreechart listeners when adding points
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4365
diff changeset
257 series.add(wqkms.getQ(i), wqkms.getW(i), false);
1812
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
258 }
dd084cf3f284 Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1791
diff changeset
259 }
2601
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
260
6428
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
261 /**
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
262 * Add points to series (q to 1st dim, w to 2nd dim), adding wTrans to the
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
263 * W values and scaling it with wScale.
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
264 *
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
265 * @param series Series to add points to.
6881
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
266 * @param qws to add to series.
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
267 * @param wAdd Value to add to each Q while adding to series.
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
268 * @param wScale multiply with
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
269 */
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
270 public static void addPointsQW(XYSeries series, double[][] qws, double wTrans, double wScale) {
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
271 if (qws == null || qws.length == 0) {
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
272 return;
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
273 }
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
274
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
275 double x[] = qws[0];
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
276 double y[] = qws[1];
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
277
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
278 for (int i = 0; i < x.length; i++) {
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
279 series.add(x[i], wScale * (y[i] + wTrans), false);
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
280 }
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
281 }
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
282 /**
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
283 * Add points to series (q to 1st dim, w to 2nd dim), adding wTrans to the
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
284 * W values and scaling it with wScale.
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
285 *
32af7e5cb00f issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6862
diff changeset
286 * @param series Series to add points to.
6428
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
287 * @param wqkms WQKms to add to series.
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
288 * @param wAdd Value to add to each Q while adding to series.
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
289 * @param wScale multiply with
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
290 */
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
291 public static void addPointsQW(XYSeries series, WQKms wqkms, double wTrans, double wScale) {
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
292 if (wqkms == null) {
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
293 return;
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
294 }
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
295
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
296 int size = wqkms.size();
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
297
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
298 for (int i = 0; i < size; i++) {
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
299 series.add(wqkms.getQ(i), wScale * (wqkms.getW(i) + wTrans), false);
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
300 }
39aba54a4c15 issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6213
diff changeset
301 }
2601
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
302
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
303 /**
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
304 * Add points to series (q to 1st dim, w to 2nd dim).
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
305 *
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
306 * @param series Series to add points to.
4365
7e3dc021452a StyledSeriesBuilder: Corrected doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4364
diff changeset
307 * @param qs the Qs to add, assumed same length than ws.
7e3dc021452a StyledSeriesBuilder: Corrected doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4364
diff changeset
308 * @param ws the Ws to add, assumed same length than qs.
4364
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
309 */
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
310 public static void addPointsQW(XYSeries series, double[] qs, double ws[]) {
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
311 if (ws == null || qs == null) {
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
312 return;
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
313 }
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
314
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
315 int size = qs.length;
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
316
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
317 for (int i = 0; i < size; i++) {
4438
919d4939ebe6 Don't notify jfreechart listeners when adding points
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4365
diff changeset
318 series.add(qs[i], ws[i], false);
4364
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
319 }
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
320 }
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
321
6465
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
322 /**
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
323 * Add points to series (q to 1st dim, w to 2nd dim), with
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
324 * scaling and translation.
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
325 *
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
326 * @param series Series to add points to.
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
327 * @param qs the Qs to add, assumed same length than ws.
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
328 * @param ws the Ws to add, assumed same length than qs.
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
329 */
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
330 public static void addPointsQW(XYSeries series, double[] qs, double ws[],
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
331 double wTrans, double wScale) {
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
332 if (ws == null || qs == null) {
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
333 return;
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
334 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
335
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
336 int size = qs.length;
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
337
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
338 for (int i = 0; i < size; i++) {
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
339 series.add(qs[i], wScale * (ws[i]+wTrans), false);
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
340 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
341 }
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
342
126c76184c3e StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6428
diff changeset
343
4364
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
344
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
345 /**
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
346 * Add points to series (q to 1st dim, w to 2nd dim).
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
347 *
e62f70c2213d StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3395
diff changeset
348 * @param series Series to add points to.
3284
d9af29a4bb85 Various cosmetic doc fixes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3269
diff changeset
349 * @param wwqq WWQQ to add to series.
2601
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
350 */
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
351 public static void addPoints(XYSeries series, WWQQ wwqq) {
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
352 if (wwqq == null) {
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
353 return;
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
354 }
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
355
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
356 int size = wwqq.size();
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
357
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
358 for (int i = 0; i < size; i++) {
4438
919d4939ebe6 Don't notify jfreechart listeners when adding points
Björn Ricks <bjoern.ricks@intevation.de>
parents: 4365
diff changeset
359 series.add(wwqq.getW1(i), wwqq.getW2(i), false);
2601
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
360 }
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
361 }
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
362
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
363
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
364 /**
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
365 * Create a Series such that an infinitely big area can be filled
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
366 * between the newly created and the given series.
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
367 */
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
368 public static XYSeries createGroundAtInfinity(XYSeries series) {
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
369 XYSeries ground = new XYSeries(series.getKey() + /** TODO rand + */ "INF");
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
370 ground.add(series.getMinX(), -BIG_DOUBLE_VALUE);
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
371 ground.add(series.getMaxX(), -BIG_DOUBLE_VALUE);
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
372 return ground;
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
373 }
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
374
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
375
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
376 /**
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
377 * Create a Series such that an infinitely big area can be filled
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
378 * between the newly created and the given series.
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
379 */
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
380 public static XYSeries createCeilingAtInfinity(XYSeries series) {
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
381 XYSeries ground = new XYSeries(series.getKey() + /** TODO rand + */ "INF");
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
382 ground.add(series.getMinX(), BIG_DOUBLE_VALUE);
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
383 ground.add(series.getMaxX(), BIG_DOUBLE_VALUE);
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
384 return ground;
9e8459c2e7d4 Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2571
diff changeset
385 }
1791
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
386 }
e0e5a5b51a40 Added new StyledSeriesBuilder class and use it when adding points to XYSeries (in diagram generation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
diff changeset
387 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org