File: winter.h

package info (click to toggle)
vym 2.6.11-3
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye, buster, sid, trixie
  • size: 12,628 kB
  • sloc: cpp: 34,052; ruby: 846; xml: 278; sh: 187; makefile: 28
file content (57 lines) | stat: -rw-r--r-- 1,065 bytes parent folder | download | duplicates (3)
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
#ifndef WINTER_H
#define WINTER_H

#include <QObject>
#include <QGraphicsItem>
#include <QTimer>
#include <QRectF>

class QGraphicsView;
class QGraphicsScene;

class SnowFlake:public QGraphicsItem
{
public:
    SnowFlake(QGraphicsScene *scene);
    ~SnowFlake();
    QRectF boundingRect() const;
    void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*);
    void animate();
    void blow(const QPointF &v);
private:
    int size;
    QList <QGraphicsLineItem*> lines;
    QPointF dv;
    QPointF dblow;
    qreal da;
};

class Winter:public QObject {
    Q_OBJECT
public:
    Winter(QGraphicsView *view);
    ~Winter();
    void updateView();
    void setObstacles(QList <QRectF> obslist);

public slots:
    void animate();
    void makeSnow();

private:
    QGraphicsView *view;
    QList <SnowFlake*> fallingSnow;
    QList <SnowFlake*> frozenSnow;
    int maxFlakes;
    QTimer *animTimer;
    QTimer *snowTimer;
    QList <QRectF> obstacles;

    int maxFalling;
    int maxUnfreeze;
    //QGraphicsLineItem *test;

    QRectF viewRect;
};

#endif