diff options
author | Samuel Fadel <samuelfadel@gmail.com> | 2016-04-07 17:01:14 -0300 |
---|---|---|
committer | Samuel Fadel <samuelfadel@gmail.com> | 2016-04-07 17:01:14 -0300 |
commit | cf0a22d22a402f230d834853416a074833fe08bf (patch) | |
tree | f7a53773ec7cde56a3928fb75dd1be01be8aa665 /lineplot.cpp | |
parent | 83b2d9518c6ff575606ea56c32f11105a14ee252 (diff) |
LinePlot: working relaxation.
Diffstat (limited to 'lineplot.cpp')
-rw-r--r-- | lineplot.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/lineplot.cpp b/lineplot.cpp index 83f6e12..0e9e001 100644 --- a/lineplot.cpp +++ b/lineplot.cpp @@ -58,6 +58,15 @@ void LinePlot::setColorScale(const ColorScale *scale) update(); } +void LinePlot::relax() +{ + m_gdFinalPtr.reset(new GraphDrawing); + *m_gdFinalPtr.get() = *m_gdBundlePtr.get(); + m_gdFinalPtr.get()->interpolate(*m_gdPtr.get(), m_relaxation); + + setLinesChanged(true); +} + void LinePlot::bundle() { m_gdBundlePtr.reset(new GraphDrawing); @@ -78,7 +87,6 @@ void LinePlot::bundle() bundling.spl = m_edgeSampling; bundling.eps = m_advectionSpeed; - // TODO: use m_relaxation as lerp param towards original (without bundling) if (m_bundleGPU) { bundling.bundleGPU(); @@ -86,7 +94,7 @@ void LinePlot::bundle() bundling.bundleCPU(); } - setLinesChanged(true); + relax(); } void LinePlot::setLines(const arma::uvec &indices, const arma::mat &Y) @@ -288,7 +296,7 @@ void LinePlot::setRelaxation(float relaxation) m_relaxation = relaxation; emit relaxationChanged(m_relaxation); - bundle(); + relax(); update(); } @@ -545,7 +553,7 @@ void LinePlotRenderer::synchronize(QQuickFramebufferObject *item) m_colormapChanged = plot->colorScaleChanged(); if (m_pointsChanged) { - copyPolylines(plot->bundleGraphDrawing()); + copyPolylines(plot->graphDrawing()); } m_values = &(plot->values()); m_cmap = &(plot->colorScale()); |