Commit f0622847 authored by lm's avatar lm

Cleaned up MAV icon, made it easier to spot non-selected MAVs on map

parent 68dcf5be
...@@ -15,31 +15,24 @@ MAV2DIcon::MAV2DIcon(mapcontrol::MapGraphicItem* map,mapcontrol::OPMapWidget* pa ...@@ -15,31 +15,24 @@ MAV2DIcon::MAV2DIcon(mapcontrol::MapGraphicItem* map,mapcontrol::OPMapWidget* pa
selected(uas->getSelected()), selected(uas->getSelected()),
uasid(uas->getUASID()) uasid(uas->getUASID())
{ {
//connect
size = QSize(radius, radius); size = QSize(radius, radius);
mypen = new QPen(uas->getColor()); pic = QPixmap(size);
drawIcon(mypen); drawIcon();
} }
MAV2DIcon::MAV2DIcon(mapcontrol::MapGraphicItem* map, mapcontrol::OPMapWidget* parent, qreal lat, qreal lon, qreal alt, QPen* pen) MAV2DIcon::MAV2DIcon(mapcontrol::MapGraphicItem* map, mapcontrol::OPMapWidget* parent, qreal lat, qreal lon, qreal alt, QColor color)
: UAVItem(map,parent), : UAVItem(map,parent),
radius(20), radius(20),
type(0), type(0),
airframe(0), airframe(0),
iconColor(Qt::yellow), iconColor(color),
selected(false), selected(false),
uasid(0) uasid(0)
{ {
if (pen == NULL)
{
mypen = new QPen(Qt::red);
drawIcon(mypen);
}
else
{
drawIcon(pen);
}
size = QSize(radius, radius); size = QSize(radius, radius);
pic = QPixmap(size);
drawIcon();
SetUAVPos(internals::PointLatLng(lat, lon), alt, color);
} }
MAV2DIcon::~MAV2DIcon() MAV2DIcon::~MAV2DIcon()
...@@ -47,19 +40,10 @@ MAV2DIcon::~MAV2DIcon() ...@@ -47,19 +40,10 @@ MAV2DIcon::~MAV2DIcon()
//delete pic; //delete pic;
} }
void MAV2DIcon::setPen(QPen* pen)
{
if (pen != NULL)
{
mypen = pen;
drawIcon(pen);
}
}
void MAV2DIcon::setSelectedUAS(bool selected) void MAV2DIcon::setSelectedUAS(bool selected)
{ {
this->selected = selected; this->selected = selected;
drawIcon(mypen); drawIcon();
} }
/** /**
...@@ -77,14 +61,13 @@ void MAV2DIcon::setYaw(float yaw) ...@@ -77,14 +61,13 @@ void MAV2DIcon::setYaw(float yaw)
if (diff > 0.1f) { if (diff > 0.1f) {
this->yaw = yaw; this->yaw = yaw;
drawIcon(mypen); drawIcon();
// FIXME // FIXME
} }
} }
void MAV2DIcon::drawIcon(QPen* pen) void MAV2DIcon::drawIcon()
{ {
Q_UNUSED(pen);
pic.fill(Qt::transparent); pic.fill(Qt::transparent);
QPainter painter(&pic); QPainter painter(&pic);
painter.setRenderHint(QPainter::TextAntialiasing); painter.setRenderHint(QPainter::TextAntialiasing);
...@@ -97,21 +80,19 @@ void MAV2DIcon::drawIcon(QPen* pen) ...@@ -97,21 +80,19 @@ void MAV2DIcon::drawIcon(QPen* pen)
painter.translate(radius/2, radius/2); painter.translate(radius/2, radius/2);
// Draw selected indicator // Draw selected indicator
painter.setBrush(Qt::NoBrush);
if (selected) { if (selected) {
// qDebug() << "SYSTEM IS NOW SELECTED";
// QColor color(Qt::yellow);
// color.setAlpha(0.3f);
painter.setBrush(Qt::NoBrush);
// QPen selPen(color);
// int width = 5;
// selPen.setWidth(width);
QPen pen(Qt::yellow); QPen pen(Qt::yellow);
pen.setWidth(2); pen.setWidth(2);
painter.setPen(pen); painter.setPen(pen);
painter.drawEllipse(QPoint(0, 0), radius/2-1, radius/2-1);
//qDebug() << "Painting ellipse" << radius/2-width << width;
//selPen->deleteLater();
} }
else
{
QPen pen(Qt::white);
pen.setWidth(1);
painter.setPen(pen);
}
painter.drawEllipse(QPoint(0, 0), radius/2-1, radius/2-1);
drawAirframePolygon(airframe, painter, radius, iconColor, yaw); drawAirframePolygon(airframe, painter, radius, iconColor, yaw);
} }
......
...@@ -27,7 +27,7 @@ public: ...@@ -27,7 +27,7 @@ public:
* @param alignment alignment (Middle or TopLeft) * @param alignment alignment (Middle or TopLeft)
* @param pen QPen for drawing * @param pen QPen for drawing
*/ */
MAV2DIcon(mapcontrol::MapGraphicItem* map,mapcontrol::OPMapWidget* parent, UASInterface* uas, int radius = 10, int type=0); MAV2DIcon(mapcontrol::MapGraphicItem* map,mapcontrol::OPMapWidget* parent, UASInterface* uas, int radius = 40, int type=0);
/*! /*!
* *
...@@ -37,18 +37,10 @@ public: ...@@ -37,18 +37,10 @@ public:
* @param alignment alignment (Middle or TopLeft) * @param alignment alignment (Middle or TopLeft)
* @param pen QPen for drawing * @param pen QPen for drawing
*/ */
MAV2DIcon(mapcontrol::MapGraphicItem* map,mapcontrol::OPMapWidget* parent, qreal lat=0, qreal lon=0, qreal alt=0, QPen* pen=0); MAV2DIcon(mapcontrol::MapGraphicItem* map,mapcontrol::OPMapWidget* parent, qreal lat=0, qreal lon=0, qreal alt=0, QColor color=QColor());
virtual ~MAV2DIcon(); virtual ~MAV2DIcon();
//! sets the QPen which is used for drawing the circle
/*!
* A QPen can be used to modify the look of the drawn circle
* @param pen the QPen which should be used for drawing
* @see http://doc.trolltech.com/4.3/qpen.html
*/
virtual void setPen(QPen* pen);
/** @brief Mark this system as selected */ /** @brief Mark this system as selected */
void setSelectedUAS(bool selected); void setSelectedUAS(bool selected);
void setYaw(float yaw); void setYaw(float yaw);
...@@ -62,10 +54,7 @@ public: ...@@ -62,10 +54,7 @@ public:
return uasid; return uasid;
} }
void drawIcon(QPen* pen); void drawIcon();
void drawIcon() {
drawIcon(mypen);
}
static void drawAirframePolygon(int airframe, QPainter& painter, int radius, QColor& iconColor, float yaw); static void drawAirframePolygon(int airframe, QPainter& painter, int radius, QColor& iconColor, float yaw);
protected: protected:
...@@ -76,7 +65,6 @@ protected: ...@@ -76,7 +65,6 @@ protected:
QColor iconColor; ///< Color to be used for the icon QColor iconColor; ///< Color to be used for the icon
bool selected; ///< Wether this is the system currently in focus bool selected; ///< Wether this is the system currently in focus
int uasid; ///< ID of tracked system int uasid; ///< ID of tracked system
QPen* mypen;
QSize size; QSize size;
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment