From 3ce49858c6859fccc2e4d35839c34685348790d1 Mon Sep 17 00:00:00 2001 From: Samuel Fadel Date: Wed, 2 Mar 2016 15:47:24 -0300 Subject: Improvements related to ColorScale and screenshots. * ColorScale: now a pointer whenever needed. main() takes care of updating extents * New class DivergentColorScale: works specifically for divergent scales, always has 3 colors as input: negative values, 0, positive values * ManipulationHandler: ProjectionHistory no longer needed --- main.cpp | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'main.cpp') diff --git a/main.cpp b/main.cpp index 235f036..3417534 100644 --- a/main.cpp +++ b/main.cpp @@ -170,7 +170,7 @@ int main(int argc, char **argv) // Update projection as the cp are modified (either directly in the // manipulationHandler object or interactively in cpPlot - ManipulationHandler manipulationHandler(X, cpIndices, m->projectionHistory); + ManipulationHandler manipulationHandler(X, cpIndices); QObject::connect(m->cpPlot, &Scatterplot::xyInteractivelyChanged, &manipulationHandler, &ManipulationHandler::setCP); @@ -237,6 +237,33 @@ int main(int argc, char **argv) m->rpBarChart, &BarChart::brushItem); // Update visual components whenever values change + QObject::connect(m->projectionHistory, &ProjectionHistory::rpValuesChanged, + [m](const arma::vec &v, bool rescale) { + ColorScale *ptr = m->colorScaleRPs.get(); + if (!ptr || v.n_elem == 0) { + return; + } + + if (rescale) { + ptr->setExtents(v.min(), v.max()); + } else { + ptr->setExtents(std::min(ptr->min(), (float) v.min()), + std::max(ptr->max(), (float) v.max())); + } + + m->splat->setColorScale(ptr); + m->rpColormap->setColorScale(ptr); + }); + QObject::connect(m->projectionHistory, &ProjectionHistory::cpValuesChanged, + [m](const arma::vec &v) { + ColorScale *ptr = m->colorScaleCPs.get(); + if (!ptr || v.n_elem == 0) { + return; + } + + ptr->setExtents(v.min(), v.max()); + m->cpColormap->setColorScale(ptr); + }); QObject::connect(m->projectionHistory, &ProjectionHistory::cpValuesChanged, m->cpPlot, &Scatterplot::setColorData); QObject::connect(m->projectionHistory, &ProjectionHistory::rpValuesChanged, -- cgit v1.2.3