Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/StyledSeriesBuilder.java @ 8698:5c7b4f4a2e6c
(issue1670) Purge obsolete if-branching.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Mon, 20 Apr 2015 15:31:12 +0200 |
parents | 527e0f4c28c1 |
children | 5e38e2924c07 |
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. |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
52 */ |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
53 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
|
54 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
|
55 return; |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
56 } |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
57 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
|
58 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
|
59 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
|
60 if (skipNANs && |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
61 (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
|
62 continue; |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
63 } |
8698
5c7b4f4a2e6c
(issue1670) Purge obsolete if-branching.
Tom Gottfried <tom@intevation.de>
parents:
8697
diff
changeset
|
64 // Create gap if distance between points > distance. |
5c7b4f4a2e6c
(issue1670) Purge obsolete if-branching.
Tom Gottfried <tom@intevation.de>
parents:
8697
diff
changeset
|
65 if (i > 0 && Math.abs(xPoints[i-1] - xPoints[i]) > distance && |
5c7b4f4a2e6c
(issue1670) Purge obsolete if-branching.
Tom Gottfried <tom@intevation.de>
parents:
8697
diff
changeset
|
66 !Double.isNaN(yPoints[i-1]) && !Double.isNaN(yPoints[i])) { |
5c7b4f4a2e6c
(issue1670) Purge obsolete if-branching.
Tom Gottfried <tom@intevation.de>
parents:
8697
diff
changeset
|
67 series.add((xPoints[i-1] + xPoints[i])/2, Double.NaN, false); |
6212
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
68 } |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
69 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
|
70 } |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
71 } |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
72 |
128686fa5add
flys/issue863: Create gaps for middlebedheight data if distance > 110 m.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
5994
diff
changeset
|
73 /** |
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
|
74 * 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
|
75 * |
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
|
76 * @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
|
77 * @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
|
78 * to 2nd dim. |
2686
6fda6ec9e426
Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2601
diff
changeset
|
79 * @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
|
80 * @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
|
81 * @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
|
82 */ |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
83 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
|
84 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
|
85 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
|
86 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
|
87 return; |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
88 } |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
89 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
|
90 return; |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
91 } |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
92 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
|
93 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
|
94 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
|
95 if (skipNANs && |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
96 (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
|
97 continue; |
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 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
|
100 } |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
101 } |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
102 |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
103 /** |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
104 * 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
|
105 * |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
106 * @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
|
107 * @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
|
108 * 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
|
109 * @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
|
110 */ |
2686
6fda6ec9e426
Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2601
diff
changeset
|
111 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
|
112 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
|
113 return; |
b30e1710df1d
Server-side of interactive cross-section diagrams.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1942
diff
changeset
|
114 } |
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
|
115 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
|
116 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
|
117 for (int i = 0; i < xPoints.length; i++) { |
2686
6fda6ec9e426
Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2601
diff
changeset
|
118 if (skipNANs && |
6fda6ec9e426
Added accidentally ommitted changes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2601
diff
changeset
|
119 (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
|
120 continue; |
63f44b8b41a3
Partial Dontcrash on flys/issue647 (NaNs from WstValueTable interpolation).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2156
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 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
|
123 } |
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 } |
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
|
125 |
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
|
126 |
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
|
127 /** |
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
|
128 * 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
|
129 * |
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 * @param series Series to add points to. |
3269
b2ea89a665bc
Fix issues in 'documentation'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3176
diff
changeset
|
131 * @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
|
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 public static void addPoints(XYSeries series, WKms wkms) { |
2156
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
134 if (wkms == null) { |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
135 return; |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
136 } |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
137 |
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
|
138 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
|
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 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
|
141 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
|
142 } |
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
|
143 } |
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
|
144 |
3395
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
145 |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
146 /** |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
147 * 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
|
148 * @param series series to add data to. |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
149 * @param wkms WKms of which the Ws will be shifted. |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
150 * @param off the offset. |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
151 */ |
3394
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
152 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
|
153 if (wkms == null) { |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
154 return; |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
155 } |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
156 |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
157 int size = wkms.size(); |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
158 |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
159 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
|
160 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
|
161 } |
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 |
3395
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
164 |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
165 /** |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
166 * 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
|
167 * amount). |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
168 * @param series series to add data to. |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
169 * @param wkms WKms of which the Ws will be shifted. |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
170 * @param off the offset. |
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
171 */ |
3394
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
172 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
|
173 addUpperBand(series, wkms, -off); |
f091f2f55f88
Partial implementation of bandwidths for curves (issue720).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3284
diff
changeset
|
174 } |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
175 |
3395
2a8919e0ed28
Cosmetics, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3394
diff
changeset
|
176 |
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
|
177 /** |
1942
be1270c10d9a
Fix documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1886
diff
changeset
|
178 * 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
|
179 * |
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
|
180 * @param series Series to add points to. |
3269
b2ea89a665bc
Fix issues in 'documentation'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3176
diff
changeset
|
181 * @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
|
182 */ |
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
|
183 public static void addPointsKmQ(XYSeries series, WQKms wqkms) { |
2156
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
184 if (wqkms == null) { |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
185 return; |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
186 } |
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
|
187 |
2156
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
188 int size = wqkms.size(); |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
189 |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
190 for (int i = 0; i < size; i++) { |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
191 series.add(wqkms.getKm(i), wqkms.getQ(i), false); |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
192 } |
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
|
193 } |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
194 |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
195 |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
196 /** |
3176
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
197 * 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
|
198 * 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
|
199 * |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
200 * @param series Series to add points to. |
3269
b2ea89a665bc
Fix issues in 'documentation'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3176
diff
changeset
|
201 * @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
|
202 */ |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
203 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
|
204 if (wqkms == null) { |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
205 return; |
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 |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
208 int size = wqkms.size(); |
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 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
|
211 if (i==0) { |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
212 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
|
213 } 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
|
214 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
|
215 } else { |
3176
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
216 //Add two points. |
8507
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
217 double prevX; |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
218 double prevQ; |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
219 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
|
220 /* 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
|
221 * 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
|
222 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
|
223 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
|
224 } else { |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
225 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
|
226 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
|
227 } |
7d0c4e508835
(issue1782) Select index based on km for step generation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8202
diff
changeset
|
228 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
|
229 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
|
230 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
|
231 } |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
232 } |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
233 } |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
234 |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
235 |
cbaa49896eca
Fix issue663 (step curves for longitudinal_section Qs).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3076
diff
changeset
|
236 /** |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
237 * 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
|
238 * |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
239 * @param series Series to add points to. |
3284
d9af29a4bb85
Various cosmetic doc fixes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3269
diff
changeset
|
240 * @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
|
241 */ |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
242 public static void addPointsQW(XYSeries series, WQKms wqkms) { |
2156
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
243 if (wqkms == null) { |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
244 return; |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
245 } |
4e0878695c5f
Made StyledSeriesBuilder more robust.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1983
diff
changeset
|
246 |
1812
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
247 int size = wqkms.size(); |
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 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
|
250 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
|
251 } |
dd084cf3f284
Refactored to allow mainvalues in discharge curve diagrams, too.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1791
diff
changeset
|
252 } |
2601
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
253 |
6428
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
254 /** |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
255 * 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
|
256 * 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
|
257 * |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
258 * @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
|
259 * @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
|
260 * @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
|
261 * @param wScale multiply with |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
262 */ |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
263 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
|
264 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
|
265 return; |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
266 } |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
267 |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
268 double x[] = qws[0]; |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
269 double y[] = qws[1]; |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
270 |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
271 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
|
272 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
|
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 /** |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
276 * 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
|
277 * 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
|
278 * |
32af7e5cb00f
issue1378: Prepare StyledSeriesBuilder to get double[][] values to translate.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6862
diff
changeset
|
279 * @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
|
280 * @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
|
281 * @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
|
282 * @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
|
283 */ |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
284 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
|
285 if (wqkms == null) { |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
286 return; |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
287 } |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
288 |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
289 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
|
290 |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
291 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
|
292 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
|
293 } |
39aba54a4c15
issue1370: StyledSeriesBuilder: Added add function with translation and scale factors.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6213
diff
changeset
|
294 } |
2601
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
295 |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
296 /** |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
297 * 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
|
298 * |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
299 * @param series Series to add points to. |
4365
7e3dc021452a
StyledSeriesBuilder: Corrected doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4364
diff
changeset
|
300 * @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
|
301 * @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
|
302 */ |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
303 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
|
304 if (ws == null || qs == null) { |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
305 return; |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
306 } |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
307 |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
308 int size = qs.length; |
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 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
|
311 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
|
312 } |
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 |
6465
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
315 /** |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
316 * 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
|
317 * 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
|
318 * |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
319 * @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
|
320 * @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
|
321 * @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
|
322 */ |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
323 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
|
324 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
|
325 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
|
326 return; |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
327 } |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
328 |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
329 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
|
330 |
126c76184c3e
StyledSeriesBuilder: More convenience methods to scale and translate values while adding.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6428
diff
changeset
|
331 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
|
332 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
|
333 } |
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 |
4364
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
337 |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
338 /** |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
339 * 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
|
340 * |
e62f70c2213d
StyledSeriesBuilder: New addPointsQW accepting double[]s.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3395
diff
changeset
|
341 * @param series Series to add points to. |
3284
d9af29a4bb85
Various cosmetic doc fixes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
3269
diff
changeset
|
342 * @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
|
343 */ |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
344 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
|
345 if (wwqq == null) { |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
346 return; |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
347 } |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
348 |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
349 int size = wwqq.size(); |
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 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
|
352 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
|
353 } |
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 |
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 * 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
|
359 * 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
|
360 */ |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
361 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
|
362 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
|
363 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
|
364 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
|
365 return ground; |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
366 } |
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 |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
369 /** |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
370 * 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
|
371 * 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
|
372 */ |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
373 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
|
374 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
|
375 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
|
376 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
|
377 return ground; |
9e8459c2e7d4
Fix flys/issue491 (areas over axis stop at zero).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2571
diff
changeset
|
378 } |
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
|
379 } |
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
|
380 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |