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
|