2 * Copyright (c) 2007-2013, Czirkos Zoltan http://code.google.com/p/gdash/
4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files (the
6 * "Software"), to deal in the Software without restriction, including
7 * without limitation the rights to use, copy, modify, merge, publish,
8 * distribute, sublicense, and/or sell copies of the Software, and to
9 * permit persons to whom the Software is furnished to do so, subject to
10 * the following conditions:
12 * The above copyright notice and this permission notice shall be
13 * included in all copies or substantial portions of the Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
19 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
20 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 #include "cave/particle.hpp"
28 ParticleSet::ParticleSet(int count
, float size
, float opacity
, float p0x
, float p0y
, float dp0x
, float dp0y
, float v0x
, float v0y
, float dvx
, float dvy
, const GdColor
&color
)
35 for (size_t i
= 0; i
< particles
.size(); ++i
) {
36 Particle
&p
= particles
[i
];
37 p
.px
= p0x
+ g_random_double_range(-dp0x
, dp0x
);
38 p
.py
= p0y
+ g_random_double_range(-dp0y
, dp0y
);
39 p
.vx
= v0x
+ g_random_double_range(-dvx
, dvx
);
40 p
.vy
= v0y
+ g_random_double_range(-dvy
, dvy
);
45 void ParticleSet::move(int dt_ms
) {
46 float dt
= dt_ms
/ 1000.0;
48 for (size_t i
= 0; i
< particles
.size(); ++i
) {
49 Particle
&p
= particles
[i
];
58 void ParticleSet::normalize(double factor
) {
64 for (size_t i
= 0; i
< particles
.size(); ++i
) {
65 Particle
&p
= particles
[i
];