Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/exports/XYChartGenerator.java @ 1959:eace020067da
Further flys/issue420 fix, NaN-guard X axis extent.
flys-artifacts/trunk@3360 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Tue, 06 Dec 2011 10:38:32 +0000 |
parents | 82cefa3f954f |
children | ddb7b7da6199 |
comparison
equal
deleted
inserted
replaced
1958:82cefa3f954f | 1959:eace020067da |
---|---|
76 datasets = new ArrayList<XYDataset>(); | 76 datasets = new ArrayList<XYDataset>(); |
77 } | 77 } |
78 | 78 |
79 /** Merge (or create given range with range so far (if any). */ | 79 /** Merge (or create given range with range so far (if any). */ |
80 private void mergeRanges(Range subRange) { | 80 private void mergeRanges(Range subRange) { |
81 // Avoid merging NaNs, as they take min/max place forever. | |
82 if (subRange == null || | |
83 Double.isNaN(subRange.getLowerBound()) || | |
84 Double.isNaN(subRange.getUpperBound())) { | |
85 return; | |
86 } | |
81 if (range == null) { | 87 if (range == null) { |
82 range = subRange; | 88 range = subRange; |
83 return; | 89 return; |
84 } | 90 } |
85 range = Range.combine(range, subRange); | 91 range = Range.combine(range, subRange); |
91 includeYRange(dataset); | 97 includeYRange(dataset); |
92 } | 98 } |
93 | 99 |
94 /** Adjust range to include given dataset. */ | 100 /** Adjust range to include given dataset. */ |
95 public void includeYRange(XYSeries dataset) { | 101 public void includeYRange(XYSeries dataset) { |
96 // Avoid merging NaNs, as they take min/max place forever. | |
97 if (Double.isNaN(dataset.getMinY()) || | |
98 Double.isNaN(dataset.getMaxY())) { | |
99 return; | |
100 } | |
101 mergeRanges(new Range(dataset.getMinY(), dataset.getMaxY())); | 102 mergeRanges(new Range(dataset.getMinY(), dataset.getMaxY())); |
102 } | 103 } |
103 | 104 |
104 /** True if no datasets given. */ | 105 /** True if no datasets given. */ |
105 public boolean isEmpty() { | 106 public boolean isEmpty() { |
365 * Effect: extend range of x axis to include given limits. | 366 * Effect: extend range of x axis to include given limits. |
366 * @param range the given ("minimal") range. | 367 * @param range the given ("minimal") range. |
367 * @param index index of axis to be merged. | 368 * @param index index of axis to be merged. |
368 */ | 369 */ |
369 private void combineXRanges(Range range, int index) { | 370 private void combineXRanges(Range range, int index) { |
371 | |
372 if (range == null | |
373 || Double.isNaN(range.getLowerBound()) | |
374 || Double.isNaN(range.getUpperBound())) { | |
375 return; | |
376 } | |
370 | 377 |
371 Range old = xRanges.get(index); | 378 Range old = xRanges.get(index); |
372 | 379 |
373 if (old != null) { | 380 if (old != null) { |
374 range = Range.combine(old, range); | 381 range = Range.combine(old, range); |