Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_painting_information_builder.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2011 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __KIS_PAINTING_INFORMATION_BUILDER_H
8#define __KIS_PAINTING_INFORMATION_BUILDER_H
9
10#include <QObject>
11#include <QVector>
12
13#include "kis_types.h"
14#include "kritaui_export.h"
16
17class KoPointerEvent;
18class KisToolFreehand;
22
23class KRITAUI_EXPORT KisPaintingInformationBuilder : public QObject
24{
25 Q_OBJECT
26
27public:
30
31 KisPaintInformation startStroke(KoPointerEvent *event, int timeElapsed, const KoCanvasResourceProvider *manager);
32
33 KisPaintInformation continueStroke(KoPointerEvent *event,
34 int timeElapsed);
35
36 KisPaintInformation hover(const QPointF &imagePoint,
37 const KoPointerEvent *event,
38 bool isStrokeStarted);
39
40 qreal pressureToCurve(qreal pressure);
41
42 void reset();
43
44protected Q_SLOTS:
45 void updateSettings();
46
47protected:
48 virtual QPointF adjustDocumentPoint(const QPointF &point, const QPointF &startPoint);
49 virtual QPointF documentToImage(const QPointF &point);
50 virtual QPointF imageToDocument(const QPointF &point);
51 virtual QPointF imageToView(const QPointF &point);
52 virtual qreal calculatePerspective(const QPointF &documentPoint);
53
54 virtual qreal canvasRotation() const;
55 virtual bool canvasMirroredX() const;
56 virtual bool canvasMirroredY() const;
57
58private:
59
60 KisPaintInformation createPaintingInformation(KoPointerEvent *event,
61 int timeElapsed);
62
68
69private:
71 QPointF m_startPoint;
72 QScopedPointer<KisSpeedSmoother> m_speedSmoother;
74 int m_maxAllowedSpeedValue = 30;
75 qreal m_tiltDirectionOffset = 0; // [0, 360) degrees
76};
77
79{
80 Q_OBJECT
81
82public:
84
85protected:
86 QPointF documentToImage(const QPointF &point) override;
87 QPointF imageToDocument(const QPointF &point) override;
88 QPointF imageToView(const QPointF &point) override;
89
90 qreal canvasRotation() const override;
91 bool canvasMirroredX() const override;
92 bool canvasMirroredY() const override;
93
94private:
96};
97
99{
100 Q_OBJECT
101
102public:
104
105protected:
106 QPointF documentToImage(const QPointF &point) override;
107 QPointF imageToDocument(const QPointF &point) override;
108 QPointF imageToView(const QPointF &point) override;
109 QPointF adjustDocumentPoint(const QPointF &point, const QPointF &startPoint) override;
110 qreal calculatePerspective(const QPointF &documentPoint) override;
111
112 qreal canvasRotation() const override;
113 bool canvasMirroredX() const override;
114 bool canvasMirroredY() const override;
115
116private:
118};
119
120#endif /* __KIS_PAINTING_INFORMATION_BUILDER_H */
QScopedPointer< KisSpeedSmoother > m_speedSmoother