Pencil2D  ff90c0872e88be3bf81c548cd60f01983012ec49
Pencil2D is an animation software for both bitmap and vector graphics. It is free, multi-platform, and open source.
 All Classes Functions
stroketool.h
1 /*
2 
3 Pencil - Traditional Animation Software
4 Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
5 Copyright (C) 2012-2017 Matthew Chiawen Chang
6 
7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License
9 as published by the Free Software Foundation; version 2 of the License.
10 
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15 
16 */
17 
18 #ifndef STROKETOOL_H
19 #define STROKETOOL_H
20 
21 #include "basetool.h"
22 
23 #include <QList>
24 #include <QPointF>
25 #include <QPair>
26 
27 typedef QPair<QPointF, QPointF> QSegment;
28 
29 class StrokeTool : public BaseTool
30 {
31  Q_OBJECT
32 
33 public:
34  explicit StrokeTool(QObject* parent = 0);
35 
36  void startStroke();
37  void drawStroke();
38  void endStroke();
39 
40  bool keyPressEvent(QKeyEvent* event) override;
41  bool keyReleaseEvent(QKeyEvent* event) override;
42 
43 protected:
44  bool mFirstDraw = false;
45 
46  QList<QPointF> mStrokePoints;
47  QList<qreal> mStrokePressures;
48 
49  qreal mCurrentWidth = 0.0;
50  qreal mCurrentPressure = 0.5;
51 
52 private:
53  QPointF mLastPixel = { 0, 0 };
54 };
55 
56 #endif // STROKETOOL_H