-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathscene.h
More file actions
68 lines (61 loc) · 1.83 KB
/
scene.h
File metadata and controls
68 lines (61 loc) · 1.83 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 SCENE_H
#define SCENE_H
#include <QObject>
#include <QGraphicsScene>
#include <QGraphicsSceneMouseEvent>
#include <QGraphicsLineItem>
#include <QGraphicsEllipseItem>
#include <QAction>
#include <QGraphicsView>
#include <QKeyEvent>
#include <cmath>
#include <QDebug>
#include "cursor.h"
//#include "circle.h"
#include "exoradiuscircle.h"
#include "circle.h"
#include "circle.h"
class Scene : public QGraphicsScene
{
//Q_OBJECT
public:
enum Mode {NoMode, SelectObject, DrawLine, DrawRect, Draw3PointsRect, DrawEllipse, DrawRadiusCircle, DrawDiameterCircle, Draw3PointsCircle};
Scene(QObject* parent = nullptr);
Scene(const QRectF & sceneRect, QObject * parent = nullptr);
void setMode(Mode mode);
void setCursor();
int getGridSize() const {return this->gridSize;}
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
void keyPressEvent(QKeyEvent *event);
void drawBackground (QPainter* painter, const QRectF &rect);
private:
Mode sceneMode;
QPointF origPoint;
QPointF origCircle;
QPointF D1;
QPointF P1,P2;
QGraphicsLineItem* lineToDraw;
QGraphicsRectItem* rectToDraw;
QGraphicsRectItem* rectForEllipse;
QGraphicsLineItem* DiameterLine;
QGraphicsLineItem* RadiusLine;
QGraphicsLineItem* ABLine;
QGraphicsLineItem* BCLine;
QGraphicsLineItem* ACLine;
QLineF PerpAB;
QLineF PerpAC;
QGraphicsEllipseItem* circleToDraw;
QGraphicsEllipseItem* ellipseToDraw;
EXORadiusCircle* mycircle;
void makeItemsControllable(bool areControllable);
Cursor* Cruceta;
bool primerpunto;
bool segundopunto;
bool tercerpunto;
bool cuartopunto;
int gridSize;
};
#endif // SCENE_H