Geometrize  1.0
An application for geometrizing images into geometric primitives
customtabletevent.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QGraphicsSceneEvent>
4 #include <QString>
5 
6 class QWidget;
7 
8 namespace geometrize
9 {
10 
11 namespace scene
12 {
13 
17 enum class TabletEventType
18 {
19  Move,
20  Press,
21  Release,
22  EnterProximity, // Wacom tablets/pens don't have to touch the screen to send motion, just be within proximity
23  LeaveProximity,
24  Unknown
25 };
26 
32 QString tabletEventTypeToString(const TabletEventType& type);
33 
38 {
39  UnknownPointer,
40  Pen,
41  Cursor,
42  Eraser
43 };
44 
51 
56 {
57 public:
58  TabletEventData() = default;
59  ~TabletEventData() = default;
61  TabletEventData(const TabletEventData&) = default;
62 
64  TabletEventPointerType pointerType{TabletEventPointerType::UnknownPointer};
65  float xViewPos{0.0f};
66  float yViewPos{0.0f};
67  float xScenePos{0.0f};
68  float yScenePos{0.0f};
69  float pressure{0.0f};
70  float tangentialPressure{0.0f};
71  float rotation{0.0f};
72  float xTilt{0.0f};
73  float yTilt{0.0f};
74 };
75 
81 QString tabletEventDataToString(const TabletEventData& data);
82 
87 class CustomTabletEvent : public QGraphicsSceneEvent
88 {
89 public:
93  static const int customEventId;
94 
100  CustomTabletEvent(const TabletEventData& data, QWidget* sourceWidget);
101  ~CustomTabletEvent() = default;
102 
103  const TabletEventData& getData() const;
104 
105 private:
107 };
108 
109 }
110 
111 }
geometrize::scene::CustomTabletEvent::~CustomTabletEvent
~CustomTabletEvent()=default
geometrize::scene::TabletEventData::TabletEventData
TabletEventData()=default
geometrize::scene::TabletEventPointerType
TabletEventPointerType
The TabletEventPointerType enum represents the type of pointer generating the tablet event.
Definition: customtabletevent.h:38
geometrize::scene::TabletEventData
The TabletEventData class represents data produced from a Wacom pen/tablet event (in the context of a...
Definition: customtabletevent.h:56
geometrize::scene::TabletEventData::yViewPos
float yViewPos
Definition: customtabletevent.h:66
geometrize::scene::CustomTabletEvent::getData
const TabletEventData & getData() const
Definition: customtabletevent.cpp:64
geometrize::scene::TabletEventData::tangentialPressure
float tangentialPressure
Definition: customtabletevent.h:70
geometrize::scene::TabletEventData::yScenePos
float yScenePos
Definition: customtabletevent.h:68
geometrize::scene::TabletEventData::yTilt
float yTilt
Definition: customtabletevent.h:73
geometrize::scene::TabletEventData::xTilt
float xTilt
Definition: customtabletevent.h:72
geometrize::scene::TabletEventType
TabletEventType
The TabletEventType enum represents the ids of tablet events the Wacom pen/tablet generates.
Definition: customtabletevent.h:18
geometrize::scene::CustomTabletEvent::customEventId
static const int customEventId
CustomTabletEventTypeId is the id for the corresponding custom tablet event type.
Definition: customtabletevent.h:93
geometrize::scene::TabletEventData::operator=
TabletEventData & operator=(const TabletEventData &)=default
geometrize::scene::CustomTabletEvent
The CustomTabletEvent class represents a tablet event (specifically from a Wacom Pro pen) that can be...
Definition: customtabletevent.h:88
geometrize::scene::TabletEventData::xViewPos
float xViewPos
Definition: customtabletevent.h:65
geometrize::scene::tabletEventDataToString
QString tabletEventDataToString(const TabletEventData &data)
tabletEventDataToString Helper function to convert a structure of tablet event data to a string
Definition: customtabletevent.cpp:44
geometrize::scene::tabletEventTypeToString
QString tabletEventTypeToString(const TabletEventType &type)
tabletEventTypeToString Helper function to convert a tablet event type enum value to a string
Definition: customtabletevent.cpp:12
geometrize
Definition: commandlineparser.cpp:73
geometrize::scene::TabletEventData::~TabletEventData
~TabletEventData()=default
geometrize::scene::TabletEventPointerType::UnknownPointer
@ UnknownPointer
geometrize::scene::TabletEventType::Move
@ Move
geometrize::scene::TabletEventData::TabletEventData
TabletEventData(const TabletEventData &)=default
geometrize::scene::tabletEventPointerTypeToString
QString tabletEventPointerTypeToString(const TabletEventPointerType &type)
tabletEventPointerTypeToString Helper function to convert a tablet event pointer type enum value to a...
Definition: customtabletevent.cpp:30
customtabletevent.h
geometrize::scene::TabletEventData::pointerType
TabletEventPointerType pointerType
Definition: customtabletevent.h:64
geometrize::scene::TabletEventData::pressure
float pressure
Definition: customtabletevent.h:69
geometrize::scene::TabletEventData::xScenePos
float xScenePos
Definition: customtabletevent.h:67
geometrize::scene::TabletEventData::eventType
TabletEventType eventType
Definition: customtabletevent.h:63
geometrize::scene::CustomTabletEvent::m_data
const TabletEventData m_data
Definition: customtabletevent.h:106
geometrize::scene::TabletEventData::rotation
float rotation
Definition: customtabletevent.h:71
geometrize::scene::CustomTabletEvent::CustomTabletEvent
CustomTabletEvent(const TabletEventData &data, QWidget *sourceWidget)
CustomTabletEvent Creates a custom tablet event.
Definition: customtabletevent.cpp:59