AxisRenderingUtils.h
44 lines
| 1.4 KiB
| text/x-c
|
CLexer
Alexandre Leroux
|
r915 | #ifndef SCIQLOP_AXISRENDERINGUTILS_H | ||
#define SCIQLOP_AXISRENDERINGUTILS_H | ||||
#include <memory> | ||||
Alexandre Leroux
|
r928 | #include <QtCore/QLoggingCategory> | ||
Alexandre Leroux
|
r915 | #include <QtCore/QString> | ||
Alexandre Leroux
|
r928 | Q_DECLARE_LOGGING_CATEGORY(LOG_AxisRenderingUtils) | ||
Alexandre Leroux
|
r915 | class IDataSeries; | ||
class QCPAxis; | ||||
class QCustomPlot; | ||||
Alexandre Leroux
|
r1009 | class SqpColorScale; | ||
Alexandre Leroux
|
r1281 | class Variable; | ||
Alexandre Leroux
|
r915 | |||
Alexandre Leroux
|
r916 | /// Formats a data value according to the axis on which it is present | ||
QString formatValue(double value, const QCPAxis &axis); | ||||
Alexandre Leroux
|
r915 | /** | ||
* 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 | ||||
Alexandre Leroux
|
r1009 | virtual void setProperties(QCustomPlot &plot, SqpColorScale &colorScale) = 0; | ||
Alexandre Leroux
|
r1281 | |||
/// 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; | ||||
Alexandre Leroux
|
r915 | }; | ||
struct IAxisHelperFactory { | ||||
Alexandre Leroux
|
r1281 | /// Creates IPlottablesHelper according to the type of data series a variable holds | ||
static std::unique_ptr<IAxisHelper> create(const Variable &variable) noexcept; | ||||
Alexandre Leroux
|
r915 | }; | ||
#endif // SCIQLOP_AXISRENDERINGUTILS_H | ||||