1 /** Aesalon, a tool to visualize program behaviour in real time.
2 Copyright (C) 2009-2011, Aesalon development team.
4 Aesalon is distributed under the terms of the GNU GPLv3. See
5 the included file LICENSE for more information.
7 @file src/artisan/gviewport/RectObject.cpp
13 #include "artisan/gviewport/RectObject.h"
15 #include "util/MessageSystem.h"
20 RectObject::RectObject(double layer
, double x
, double y
, double w
, double h
) {
21 m_bound
.setRange(TreeType::Range(layer
, layer
), 0);
22 m_bound
.setRange(TreeType::Range(x
, x
+w
), 1);
23 m_bound
.setRange(TreeType::Range(y
, y
+h
), 2);
26 RectObject::~RectObject() {
30 void RectObject::render(RenderedImage
&image
) {
31 Message(Debug
, "Rendering RectObject . . .");
33 Message(Debug
, "m_bound.range(1).start(): " << m_bound
.range(1).start());
34 Message(Debug
, "m_bound.range(2).start(): " << m_bound
.range(2).start());
35 Message(Debug
, "m_bound.range(1).end(): " << m_bound
.range(1).end());
36 Message(Debug
, "m_bound.range(2).end(): " << m_bound
.range(2).end());
39 image
.mapper().map(m_bound
.range(1).start(), m_bound
.range(2).start(), &x1
, &y1
);
41 image
.mapper().map(m_bound
.range(1).end(), m_bound
.range(2).end(), &x2
, &y2
);
43 QPainter
*painter
= image
.painter();
45 painter
->setPen(qRgb(0, 0, 0));
46 painter
->setBrush(Qt::cyan
);
48 Message(Debug
, "x2-x1: " << x2
- x1
);
49 Message(Debug
, "y2-y1: " << y2
- y1
);
51 QRectF rf
= QRectF(QPointF(x1
* painter
->device()->width(), y1
* painter
->device()->height()),
52 QPointF((x2
-x1
) * painter
->device()->width(), painter
->device()->height() * (y2
-y1
)));
54 painter
->drawRect(rf
);
57 } // namespace GViewport
58 } // namespace Artisan