File: windmodel.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,339 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: windmodel
//
// 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 WINDMODEL_H
#define WINDMODEL_H

#include "positionmodel.h"

/**
    \class PointModel

    \brief The Model for Wind directions

    The class represents  the Model for Wind, according to an
    Observer Pattern.

    WindModel inherits PositionModel and contains data which represents
    the directions of the wind of the scenario

    \sa SituationModel

*/

class WindModel : public PositionModel {
        Q_OBJECT

        Q_PROPERTY(qreal direction READ direction WRITE setDirection)

    public:
        WindModel(SituationModel* situation, QObject *parent = 0);
        ~WindModel();

        // Setters and Getters for Model Data
        bool visible() const { return m_visible; };
        void setVisible(bool visible);

        void addWind(const qreal direction, int order = -1);
        void deleteWind(int order = -1);
        void clearWind();

        int size() const { return m_directions.size(); };
        qreal windAt(int order = -1) const;
        void setWindAt(qreal direction, int order);

        // Setters and Getters for Non model Data
        qreal direction() const { return m_direction; }
        void setDirection(qreal direction);

    signals:
        void windVisibleChanged(bool visible);
        void windReset();
        void directionChanged(qreal);

    private:
        // Model Data
        bool m_visible;
        QList<qreal> m_directions;

        // Non model Data
        /// m_direction holds the current wind, signalling animation
        qreal m_direction;
};

#endif // WINDMODEL_H