35 lines
772 B
C++
35 lines
772 B
C++
#ifndef SKETCHTOOL_H
|
|
#define SKETCHTOOL_H
|
|
|
|
#include <QObject>
|
|
|
|
class QMouseEvent;
|
|
class QKeyEvent;
|
|
class ViewportWidget;
|
|
class QOpenGLShaderProgram;
|
|
class QPainter;
|
|
class QMatrix4x4;
|
|
|
|
class SketchTool : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit SketchTool(ViewportWidget* viewport);
|
|
virtual ~SketchTool() = default;
|
|
|
|
virtual void mousePressEvent(QMouseEvent *event) = 0;
|
|
virtual void mouseMoveEvent(QMouseEvent *event) = 0;
|
|
virtual void keyPressEvent(QKeyEvent *event) = 0;
|
|
|
|
virtual void paintGL() = 0;
|
|
virtual void paint2D(QPainter& painter, const QMatrix4x4& modelView, const QMatrix4x4& projection) = 0;
|
|
|
|
virtual void activate();
|
|
virtual void deactivate();
|
|
|
|
protected:
|
|
ViewportWidget* m_viewport;
|
|
};
|
|
|
|
#endif // SKETCHTOOL_H
|