File: sail.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 (85 lines) | stat: -rw-r--r-- 2,355 bytes parent folder | download | duplicates (4)
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
//
// C++ Interface: SailGraphicsItem
//
// Description:
//
//
// Author: Thibaut GRIDEL <tgridel@free.fr>
//
// Copyright (c) 2008-2010 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 SAIL_H
#define SAIL_H

#include <QGraphicsPathItem>
#include <QObject>

#include "boats.h"

class BoatModel;

/**
    \class SailGraphicsItem

    \brief the QGraphicsItem for a sail

    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 sail representation of a BoatModel on a
    SituationView.

    \sa SituationView, SituationScene, SituationModel, BoatModel

*/

class SailGraphicsItem : public QObject, public QGraphicsPathItem {
        Q_OBJECT
    public:
        SailGraphicsItem(BoatModel *boat, QGraphicsItem *parent = 0);
        virtual ~SailGraphicsItem();

        BoatModel* boat() const { return m_boat; }

        void setPosition(QPointF position);
        void setSailSize(qreal size);

    public slots:
        void setSailAngle(qreal value);

    protected:
        /// \a m_boat holds the BoatModel being represented
        BoatModel *m_boat;

        /// \a m_sailAngle holds the ideal sail trimming angle
        qreal m_sailAngle;

        /// \a m_sailSize holds the size of the foot
        qreal m_sailSize;

        /// \a m_sailPathPort holds the sail path when on port tack
        QPainterPath m_sailPathPort;

        /// \a m_sailPathStarboard holds the sail path when on starboard tack
        QPainterPath m_sailPathStarboard;

        /// \a m_sailPathStalled holds the sail path when head to wind
        QPainterPath m_sailPathStalled;

};

#endif // SAIL_H