void LinePlot::calcDomains() { if (plotEntitiesProp_.dataValid() && !inportHasPlotFunction_) { Interval<plot_t> xDomain = data_.getInterval(plotEntitiesProp_.getXColumnIndex()); Interval<plot_t> yDomain = Interval<plot_t>(); std::vector<PlotEntitySettings>::const_iterator it = plotEntitiesProp_.get().begin(); for (; it < plotEntitiesProp_.get().end(); ++it) { if (!it->getCandleStickFlag()) { Interval<plot_t> lineDomain = data_.getInterval(it->getMainColumnIndex()); if (it->getOptionalColumnIndex() != -1) { Interval<plot_t> errorDomain = data_.getInterval(it->getOptionalColumnIndex()); plot_t error = std::max(abs(errorDomain.getLeft()), abs(errorDomain.getRight())); lineDomain = Interval<plot_t>(lineDomain.getLeft()-error, lineDomain.getRight()+error); } yDomain.unionWith(lineDomain); } else { yDomain.unionWith(data_.getInterval(it->getStickTopColumnIndex())); yDomain.unionWith(data_.getInterval(it->getStickBottomColumnIndex())); yDomain.unionWith(data_.getInterval(it->getCandleTopColumnIndex())); yDomain.unionWith(data_.getInterval(it->getCandleBottomColumnIndex())); } } yDomain.enlarge(1.1); selectionProp_.setBaseZoomState(PlotZoomState(xDomain, yDomain)); } }
void PlotZoomPropertyWidget::btnPushClicked() { if (checkSanityOfInput()) { property_->push(PlotZoomState(Interval<plot_t>(spXlow_->value(), spXhigh_->value()), Interval<plot_t>(spYlow_->value(), spYhigh_->value()), Interval<plot_t>(spZlow_->value(), spZhigh_->value()))); } }