#ifndef SCIQLOP_AXISRENDERINGUTILS_H #define SCIQLOP_AXISRENDERINGUTILS_H #include #include #include Q_DECLARE_LOGGING_CATEGORY(LOG_AxisRenderingUtils) class IDataSeries; class QCPAxis; class QCustomPlot; class SqpColorScale; class Variable; /// Formats a data value according to the axis on which it is present QString formatValue(double value, const QCPAxis &axis); /** * Helper used to handle axes rendering */ struct IAxisHelper { virtual ~IAxisHelper() noexcept = default; /// Set properties of the plot's axes and the color scale associated to plot passed as /// parameters /// @param plot the plot for which to set axe properties /// @param colorScale the color scale for which to set properties virtual void setProperties(QCustomPlot &plot, SqpColorScale &colorScale) = 0; /// Set the units of the plot's axes and the color scale associated to plot passed as /// parameters /// @param plot the plot for which to set axe units /// @param colorScale the color scale for which to set unit virtual void setUnits(QCustomPlot &plot, SqpColorScale &colorScale) = 0; }; struct IAxisHelperFactory { /// Creates IPlottablesHelper according to the type of data series a variable holds static std::unique_ptr create(const Variable &variable) noexcept; }; #endif // SCIQLOP_AXISRENDERINGUTILS_H