Bug #33 ยป logaxis_minAbove0.patch
src/Wt/Chart/WAxis.C | ||
---|---|---|
class ExtremesIterator : public SeriesIterator
|
||
{
|
||
public:
|
||
ExtremesIterator(Axis axis)
|
||
: axis_(axis),
|
||
ExtremesIterator(Axis axis, AxisScale scale)
|
||
: axis_(axis),scale_(scale),
|
||
minimum_(WAxis::AUTO_MINIMUM),
|
||
maximum_(WAxis::AUTO_MAXIMUM)
|
||
{ }
|
||
... | ... | |
virtual void newValue(const WDataSeries& series, double x, double y,
|
||
double stackY)
|
||
{
|
||
if (!Utils::isNaN(y)) {
|
||
if (!Utils::isNaN(y) && (scale_!=LogScale || y>0.0)) {
|
||
maximum_ = std::max(y, maximum_);
|
||
minimum_ = std::min(y, minimum_);
|
||
}
|
||
... | ... | |
private:
|
||
Axis axis_;
|
||
AxisScale scale_;
|
||
double minimum_, maximum_;
|
||
};
|
||
... | ... | |
}
|
||
}
|
||
} else {
|
||
ExtremesIterator iterator(axis_);
|
||
ExtremesIterator iterator(axis_, scale_);
|
||
renderer.iterateSeries(&iterator);
|
||
minimum = iterator.minimum();
|
||
... | ... | |
if (findMinimum)
|
||
segment.renderMinimum
|
||
= std::pow(10,
|
||
(std::floor(std::log10(segment.renderMinimum - 1E-4))));
|
||
(std::floor(std::log10(segment.renderMinimum) - 4)));
|
||
if (findMaximum)
|
||
segment.renderMaximum
|
||
= std::pow(10,
|
||
(std::ceil(std::log10(segment.renderMaximum + 1E-4))));
|
||
(std::ceil(std::log10(segment.renderMaximum) + 4)));
|
||
} else {
|
||
if (findMinimum)
|
||
segment.renderMinimum = std::floor(segment.renderMinimum - 1E-4);
|