diff --git a/gui/include/Visualization/VisualizationGraphRenderingDelegate.h b/gui/include/Visualization/VisualizationGraphRenderingDelegate.h index bb9a95d..b17a1ec 100644 --- a/gui/include/Visualization/VisualizationGraphRenderingDelegate.h +++ b/gui/include/Visualization/VisualizationGraphRenderingDelegate.h @@ -23,6 +23,10 @@ public: /// Sets properties of the plot's axes from the data series passed as parameter void setAxesProperties(std::shared_ptr dataSeries) noexcept; + /// Sets rendering properties of the plottables passed as parameter, from the data series that + /// generated these + void setPlottablesProperties(std::shared_ptr dataSeries, + PlottablesMap &plottables) noexcept; /// Shows or hides graph overlay (name, close button, etc.) void showGraphOverlay(bool show) noexcept; diff --git a/gui/src/Visualization/VisualizationGraphRenderingDelegate.cpp b/gui/src/Visualization/VisualizationGraphRenderingDelegate.cpp index de7921c..b33c137 100644 --- a/gui/src/Visualization/VisualizationGraphRenderingDelegate.cpp +++ b/gui/src/Visualization/VisualizationGraphRenderingDelegate.cpp @@ -1,5 +1,6 @@ #include "Visualization/VisualizationGraphRenderingDelegate.h" #include "Visualization/AxisRenderingUtils.h" +#include "Visualization/PlottablesRenderingUtils.h" #include "Visualization/VisualizationGraphWidget.h" #include "Visualization/qcustomplot.h" @@ -227,6 +228,13 @@ void VisualizationGraphRenderingDelegate::setAxesProperties( impl->m_Plot.layer(AXES_LAYER)->replot(); } +void VisualizationGraphRenderingDelegate::setPlottablesProperties( + std::shared_ptr dataSeries, PlottablesMap &plottables) noexcept +{ + auto plottablesHelper = IPlottablesHelperFactory::create(dataSeries); + plottablesHelper->setProperties(plottables); +} + void VisualizationGraphRenderingDelegate::showGraphOverlay(bool show) noexcept { auto overlay = impl->m_Plot.layer(OVERLAY_LAYER); diff --git a/gui/src/Visualization/VisualizationGraphWidget.cpp b/gui/src/Visualization/VisualizationGraphWidget.cpp index 0317796..b2e770c 100644 --- a/gui/src/Visualization/VisualizationGraphWidget.cpp +++ b/gui/src/Visualization/VisualizationGraphWidget.cpp @@ -118,6 +118,11 @@ void VisualizationGraphWidget::addVariable(std::shared_ptr variable, S if (auto dataSeries = variable->dataSeries()) { // Set axes properties according to the units of the data series impl->m_RenderingDelegate->setAxesProperties(dataSeries); + + // Sets rendering properties for the new plottables + // Warning: this method must be called after setAxesProperties(), as it can access to some + // axes properties that have to be initialized + impl->m_RenderingDelegate->setPlottablesProperties(dataSeries, createdPlottables); } impl->m_VariableToPlotMultiMap.insert({variable, std::move(createdPlottables)});