forked from openalpr/plate_tagger
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathselection.h
92 lines (74 loc) · 1.36 KB
/
selection.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#ifndef SELECTION_H
#define SELECTION_H
#include <QRect>
class QPainter;
/*
* Rectangular selection painter
*/
class Selection
{
public:
Selection();
/*
* Actual selection rectangle
*/
QRect selection() const;
/*
* In selection mode
*/
bool hasSelection() const;
/*
* Has selection and it's enought large
*/
bool selectionIsFine() const;
/*
* Reset to inital state
*/
void reset();
/*
* Relative rectangle
*/
void setReferenceRect(const QRect &rect);
/*
* Start painting a selection rectangle from the given position
*/
void start(const QPoint &pos);
/*
* Move the selection rectangle
*/
void move(const QPoint &pos);
/*
* Stop painting selection
*/
void stop();
/*
* Paint selection using the specified painter
*/
void draw(QPainter *painter);
private:
QRect m_referenceRect;
QRect m_selection;
bool m_hasSelection;
};
inline
QRect Selection::selection() const
{
return m_selection;
}
inline
bool Selection::hasSelection() const
{
return m_hasSelection;
}
inline
void Selection::setReferenceRect(const QRect &rect)
{
m_referenceRect = rect;
}
inline
void Selection::stop()
{
m_hasSelection = false;
m_selection = m_selection.normalized();
}
#endif // SELECTION_H