-
Notifications
You must be signed in to change notification settings - Fork 0
/
robot.cpp
48 lines (41 loc) · 1.09 KB
/
robot.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
#include "robot.h"
#include "Utils.h"
Robot::Robot(QGraphicsItem *parent)
: QGraphicsItem(parent)
{
}
QRectF Robot::boundingRect() const
{
return QRectF(ROBOT_WIDTH/2, ROBOT_HEIGHT/2, ROBOT_WIDTH, ROBOT_HEIGHT);
}
void Robot::paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget)
{
Q_UNUSED(option);
Q_UNUSED(widget);
if (pixmap.isNull()) {
painter->setBrush(Qt::transparent);
painter->setPen(Qt::black);
qreal x = this->pos().x() - ROBOT_WIDTH/2;
qreal y = this->pos().y() - ROBOT_HEIGHT/2;
qDebug() << "TOP LEFT:" << x << "," << y;
painter->drawRect(x, y, ROBOT_WIDTH, ROBOT_HEIGHT);
} else {
painter->scale(.2272, .2824);
painter->drawPixmap(QPointF(-15 * 4.4, -50 * 3.54), pixmap);
}
}
Sensor* Robot::getSensor(Robot::Side side)
{
if (side == LEFT)
return m_leftSensor;
else
return m_rightSensor;
}
Wheel* Robot::getWheel(Robot::Side side)
{
if (side == LEFT)
return m_leftWheel;
else
return m_rightWheel;
}