Files
qwt/examples/polardemo/Plot.h
2023-10-31 09:22:42 +01:00

61 lines
1.2 KiB
C++

/*****************************************************************************
* Qwt Polar Examples - Copyright (C) 2008 Uwe Rathmann
* This file may be used under the terms of the 3-clause BSD License
*****************************************************************************/
#pragma once
#include <QwtPolarPlot>
class QwtPolarGrid;
class QwtPolarCurve;
class PlotSettings
{
public:
enum Curve
{
Spiral,
Rose,
NumCurves
};
enum Flag
{
MajorGridBegin,
MinorGridBegin = MajorGridBegin + QwtPolar::ScaleCount,
AxisBegin = MinorGridBegin + QwtPolar::ScaleCount,
AutoScaling = AxisBegin + QwtPolar::AxesCount,
Inverted,
Logarithmic,
Antialiasing,
CurveBegin,
NumFlags = CurveBegin + NumCurves
};
bool flags[NumFlags];
};
class Plot : public QwtPolarPlot
{
Q_OBJECT
public:
Plot( QWidget* = NULL );
PlotSettings settings() const;
public Q_SLOTS:
void applySettings( const PlotSettings& );
private:
QwtPolarCurve* createCurve( int id ) const;
QwtPolarGrid* m_grid;
QwtPolarCurve* m_curve[PlotSettings::NumCurves];
};