forked from OlivierDelbeke/MapGraphics
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPolygonObject.h
More file actions
68 lines (47 loc) · 1.69 KB
/
Copy pathPolygonObject.h
File metadata and controls
68 lines (47 loc) · 1.69 KB
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
#ifndef POLYGONOBJECT_H
#define POLYGONOBJECT_H
#include <QPolygonF>
#include <QList>
#include "MapGraphicsObject.h"
#include "MapGraphics_global.h"
class CircleObject;
class MAPGRAPHICSSHARED_EXPORT PolygonObject : public MapGraphicsObject
{
Q_OBJECT
public:
explicit PolygonObject(QPolygonF geoPoly, QColor fillColor = QColor(200,200,200,200), QObject *parent = 0);
virtual ~PolygonObject();
//pure-virtual from MapGraphicsObject
QRectF boundingRect() const;
//virtual from MapGraphicsObject
bool contains(const QPointF &geoPos) const;
//pure-virtual from MapGraphicsObject
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
//virtual from MapGraphicsObject
virtual void setPos(const QPointF &);
QPolygonF geoPoly() const;
virtual void setGeoPoly(const QPolygonF& newPoly);
void setFillColor(const QColor& color);
signals:
void polygonChanged(const QPolygonF& poly);
public slots:
protected:
//virtual from MapGraphicsObject
virtual void mousePressEvent(QGraphicsSceneMouseEvent * event);
virtual void keyReleaseEvent(QKeyEvent *event);
private slots:
void handleEditCirclePosChanged();
void handleAddVertexCircleSelected();
void handleEditCircleDestroyed();
private:
void fixAddVertexCirclePos();
CircleObject * constructEditCircle();
void destroyEditCircle(MapGraphicsObject * obj);
CircleObject * constructAddVertexCircle();
void destroyAddVertexCircle(MapGraphicsObject * obj);
QPolygonF _geoPoly;
QColor _fillColor;
QList<MapGraphicsObject *> _editCircles;
QList<MapGraphicsObject *> _addVertexCircles;
};
#endif // POLYGONOBJECT_H