File: laylines.h

package info (click to toggle)
boats 201307-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,424 kB
  • ctags: 1,486
  • sloc: cpp: 10,139; makefile: 13; xml: 10
file content (88 lines) | stat: -rw-r--r-- 2,352 bytes parent folder | download | duplicates (2)
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
78
79
80
81
82
83
84
85
86
87
88
//
// C++ Interface: LaylinesGraphicsItem
//
// 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 LAYLINES_H
#define LAYLINES_H

#include <QGraphicsItem>
#include <QObject>

#include "boats.h"

class PositionModel;

/**
    \class LaylinesGraphicsItem

    \brief the QGraphicsItem for laylines

    The class represents the Item according to the Graphics View Framework.

    It inherits QGraphicsPathItem for Item framework and QObject for slot and
    signal framework. It displays the laylines of a PositionModel on a
    SituationView.

    \sa SituationView, SituationScene, SituationModel, PositionModel

*/

class LaylinesGraphicsItem : public QObject, public QGraphicsPathItem {
        Q_OBJECT
        Q_INTERFACES(QGraphicsItem)

    public:
        LaylinesGraphicsItem(PositionModel *model, QGraphicsItem *parent = 0);
        virtual ~LaylinesGraphicsItem();

        void updatePath();

    public slots:
        void setLength(int length);
        void setSeries(int value);
        void setLaylineAngle(int value);
        void setHeading(qreal value);
        void setWind(qreal value);
        void setVisible(bool visible);

    protected:
        /// \a m_model holds the PositionModel being represented
        PositionModel *m_model;

        /// \a m_length holds the number of boat lengths for zone
        int m_length;

        /// \a m_boatLength holds the size in scene coordinates for main series
        int m_boatLength;

        /// \a m_laylineAngle holds the layline angle
        int m_laylineAngle;

        qreal m_heading;

        qreal m_wind;

        bool m_visible;
};

#endif // LAYLINES_H