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 69 70 71 72 73 74 75 76 77
|
//
// C++ Interface: ArrowGraphicsItem
//
// Description:
//
//
// Author: Thibaut GRIDEL <tgridel@free.fr>
//
// Copyright (c) 2011 Thibaut GRIDEL
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
//
#ifndef ARROW_H
#define ARROW_H
#include <QGraphicsItem>
#include <QObject>
#include <QColor>
class WindModel;
/**
\class ArrowGraphicsItem
\brief the QGraphicsItem for a wind Arrow
The class represents the Item according to the Graphics View Framework.
It inherits QGraphicsItem for Item framework and QObject for slot and
signal framework. It displays the representation of an arrow on a
SituationView.
\sa SituationView, SituationScene, SituationModel, WindModel
*/
class ArrowGraphicsItem : public QObject, public QGraphicsItem {
Q_OBJECT
Q_INTERFACES(QGraphicsItem)
public:
ArrowGraphicsItem(WindModel *wind = 0, QGraphicsItem *parent = 0);
~ArrowGraphicsItem();
virtual QRectF boundingRect() const;
virtual QPainterPath shape() const;
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
QWidget *widget);
virtual int type() const;
public slots:
void resetArrow();
void setHeading(qreal value);
void setPosition(QPointF position);
void deleteItem(bool visible);
private:
WindModel *m_wind;
/// \a m_angle holds the angle of the Arrow
qreal m_angle;
QPainterPath m_path;
};
#endif
|