From c069008f3c101a88da12ecf00452d61f1155c316 Mon Sep 17 00:00:00 2001 From: Samuel Fadel Date: Mon, 11 Jan 2016 15:46:23 +0100 Subject: Scatterplot: new methods for setting visual attrs without issuing update()s. * Also added calls to these new methods in main(). --- scatterplot.cpp | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'scatterplot.cpp') diff --git a/scatterplot.cpp b/scatterplot.cpp index 62a492b..96e9ecb 100644 --- a/scatterplot.cpp +++ b/scatterplot.cpp @@ -53,7 +53,7 @@ bool Scatterplot::saveToFile(const QUrl &url) return m_xy.save(url.path().toStdString(), arma::raw_ascii); } -void Scatterplot::setXY(const arma::mat &xy) +void Scatterplot::setXY(const arma::mat &xy, bool updateView) { if (xy.n_cols != 2) { return; @@ -75,23 +75,36 @@ void Scatterplot::setXY(const arma::mat &xy) max = std::max(m_xy.col(1).max(), m_oldXY.col(1).max()); m_sy.setDomain(min, max); - updateGeometry(); - emit xyChanged(m_xy); - startAnimation(); + if (updateView) { + updateGeometry(); + startAnimation(); + } } -void Scatterplot::setColorData(const arma::vec &colorData) +void Scatterplot::setXY(const arma::mat &xy) { - if (colorData.n_elem != m_xy.n_rows) { + setXY(xy, true); +} + +void Scatterplot::setColorData(const arma::vec &colorData, bool updateView) +{ + if (m_xy.n_rows > 0 && colorData.n_elem != m_xy.n_rows) { return; } m_colorData = colorData; emit colorDataChanged(m_colorData); - updateMaterials(); + if (updateView) { + updateMaterials(); + } +} + +void Scatterplot::setColorData(const arma::vec &colorData) +{ + setColorData(colorData, true); } void Scatterplot::updateGeometry() -- cgit v1.2.3