18 #ifndef STROKEMANAGER_H
19 #define STROKEMANAGER_H
26 #include <QTabletEvent>
37 void tabletEvent(QTabletEvent* event);
38 void mousePressEvent(QMouseEvent* event);
39 void mouseMoveEvent(QMouseEvent* event);
40 void mouseReleaseEvent(QMouseEvent* event);
41 void setPressure(
float pressure);
42 void setInpolLevel(
int level);
44 float getPressure() {
return mTabletPressure; }
45 int getInpolLevel() {
return mInpolLevel; }
46 bool isTabletInUse() {
return mTabletInUse; }
49 void interpolatePoll();
50 QPointF interpolateStart(QPointF firstPoint);
51 void interpolatePollAndPaint();
52 void interpolateEnd();
53 void smoothMousePos(QPointF pos);
58 QPointF getLastPressPixel()
const {
return mLastPressPixel; }
59 QPointF getCurrentPixel()
const {
return mCurrentPixel; }
60 QPointF getLastPixel()
const {
return mLastPixel; }
61 QPointF getLastMeanPixel()
const {
return mLastInterpolated; }
62 QPointF getMousePos()
const {
return mousePos; }
66 static const int STROKE_QUEUE_LENGTH = 3;
70 QPointF getEventPosition(QMouseEvent *);
72 float pressure = 1.0f;
73 QQueue<QPointF> strokeQueue;
74 QQueue<qreal> pressureQueue;
78 QTime mSingleshotTime;
79 QPointF mLastPressPixel2 = { 0, 0 };
80 QPointF mLastPressPixel = { 0, 0 };
81 QPointF mCurrentPixel = { 0, 0 };
82 QPointF mLastPixel = { 0, 0 };
83 QPointF mLastInterpolated = { 0, 0 };
84 QPointF mousePos = { 0, 0 };
86 QPointF m_previousTangent;
87 bool hasTangent =
false;
90 bool mStrokeStarted =
false;
92 bool mTabletInUse =
false;
93 float mTabletPressure = 1.f;
95 QPointF mTabletPosition;
102 #endif // STROKEMANAGER_H