Added BSD license headers to all files...
[qt-labs:qml-presentation-system.git] / examples / animatedbackground / BackgroundSwirls.qml
1 /***************************************************************************
2 **
3 ** This file is part of QML Presentation System **
4 **
5 ** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).*
6 **
7 ** All rights reserved.
8 ** Contact:  Nokia Corporation (qt-info@nokia.com)
9 **
10 ** You may use this file under the terms of the BSD license as follows:
11 **
12 ** "Redistribution and use in source and binary forms, with or without
13 ** modification, are permitted provided that the following conditions are met:
14 **
15 **  * Redistributions of source code must retain the above copyright notice,
16 **    this list of conditions and the following disclaimer.
17 **  * Redistributions in binary form must reproduce the above copyright notice,
18 **    this list of conditions and the following disclaimer in the documentation
19 **    and/or other materials provided with ** the distribution.
20 **  * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor the
21 **    names of its contributors may be used to endorse or promote products
22 **    derived from this software without specific ** prior written permission.
23 **
24 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
28 ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 ** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30 ** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
32 ** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
34 **
35 **************************************************************************/
36
37 import QtQuick 2.0
38 import Qt.labs.particles 2.0
39
40 Item {
41     anchors.fill: parent
42
43     Rectangle {
44         anchors.fill: parent
45         gradient: Gradient {
46             GradientStop { position: 0; color: "lightsteelblue" }
47             GradientStop { position: 1; color: "black" }
48         }
49     }
50
51     Rectangle {
52         id: colorTableItem
53         width: 16
54         height: 16
55         anchors.fill: parent
56
57         property color color1: Qt.rgba(0.8, 0.8, 1, 0.3)
58         property color color2: Qt.rgba(0.8, 0.8, 1, 0.3)
59
60         gradient: Gradient {
61             GradientStop { position: 0; color: colorTableItem.color1 }
62             GradientStop { position: 0.3; color: "transparent" }
63             GradientStop { position: 0.7; color: "transparent" }
64             GradientStop { position: 1; color: colorTableItem.color2 }
65         }
66
67         visible: false
68     }
69
70     ShaderEffectSource {
71         id: colorTableSource
72         sourceItem: colorTableItem
73         smooth: true
74     }
75
76     Repeater {
77         model: 4
78         Swirl {
79
80             width: parent.width
81             anchors.bottom: parent.bottom
82             height: parent.height / (2 + index)
83             opacity: 0.3
84             speed: (index + 1) / 5
85             colorTable: colorTableSource
86         }
87     }
88
89     ParticleSystem{
90         id: particles
91     }
92     ColoredParticle{
93         anchors.fill: parent
94         system: particles
95         image: "particle.png"
96         alpha: 0
97         colorVariation: 0.3
98     }
99     TrailEmitter{
100         anchors.fill: parent
101         system: particles
102         particlesPerSecond: Math.sqrt(parent.width * parent.height) / 30
103         particleDuration: 2000
104         emitting: true
105         particleSize: 4
106         particleSizeVariation: 2
107
108         acceleration: AngleVector{ angle: 90; angleVariation: 360; magnitude: 20; }
109         speed: AngleVector{ angle: -90; angleVariation: 360; magnitude: 10; }
110
111     }
112
113 }