-
Notifications
You must be signed in to change notification settings - Fork 0
/
dijkstragraphicsnode.cpp
53 lines (41 loc) · 1.34 KB
/
dijkstragraphicsnode.cpp
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
#include "dijkstragraphicsnode.h"
DijkstraGraphicsNode *DijkstraGraphicsNode::searchStartNode = 0;
DijkstraGraphicsNode *DijkstraGraphicsNode::searchEndNode = 0;
int DijkstraGraphicsNode::selectCount = 0;
DijkstraGraphicsNode::DijkstraGraphicsNode()
: GraphicsNode(), FibNodeBase(), NodeBase(), routeNode(false)
{
}
DijkstraGraphicsNode::DijkstraGraphicsNode(int id, int key)
: GraphicsNode(), FibNodeBase(key), NodeBase(id), routeNode(false)
{
}
void DijkstraGraphicsNode::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
Q_UNUSED(option);
Q_UNUSED(widget);
painter->setBrush(QBrush(Qt::yellow));
painter->setPen(QPen(Qt::black, 0));
painter->drawEllipse(-10, -10, 20, 20);
QString num = QString::number(this->nodeId);
painter->drawText(-5*num.size(),5, num);
}
void DijkstraGraphicsNode::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
DijkstraGraphicsNode *oldNode = 0;
if(selectCount == 0)
{
oldNode = DijkstraGraphicsNode::searchStartNode;
DijkstraGraphicsNode::searchStartNode = this;
}
if(selectCount == 1)
{
oldNode = DijkstraGraphicsNode::searchEndNode;
DijkstraGraphicsNode::searchEndNode = this;
}
if(oldNode)
oldNode->update();
selectCount++;
update();
QGraphicsItem::mousePressEvent(event);
}