~baltix/+junk/irrlicht-test

« back to all changes in this revision

Viewing changes to source/Irrlicht/CParticleScaleAffector.cpp

  • Committer: Mantas Kriaučiūnas
  • Date: 2011-07-18 13:06:25 UTC
  • Revision ID: mantas@akl.lt-20110718130625-c5pvifp61e7kj1ol
Included whole irrlicht SVN libraries to work around launchpad recipe issue with quilt, see https://answers.launchpad.net/launchpad/+question/165193

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "CParticleScaleAffector.h"
 
2
#include "IAttributes.h"
 
3
 
 
4
namespace irr
 
5
{
 
6
        namespace scene
 
7
        {
 
8
                CParticleScaleAffector::CParticleScaleAffector(const core::dimension2df& scaleTo)
 
9
                        : ScaleTo(scaleTo)
 
10
                {
 
11
                        #ifdef _DEBUG
 
12
                        setDebugName("CParticleScaleAffector");
 
13
                        #endif
 
14
                }
 
15
 
 
16
 
 
17
                void CParticleScaleAffector::affect (u32 now, SParticle *particlearray, u32 count)
 
18
                {
 
19
                        for(u32 i=0;i<count;i++)
 
20
                        {
 
21
                                const u32 maxdiff = particlearray[i].endTime - particlearray[i].startTime;
 
22
                                const u32 curdiff = now - particlearray[i].startTime;
 
23
                                const f32 newscale = (f32)curdiff/maxdiff;
 
24
                                particlearray[i].size = particlearray[i].startSize+ScaleTo*newscale;
 
25
                        }
 
26
                }
 
27
 
 
28
 
 
29
                void CParticleScaleAffector::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const
 
30
                {
 
31
                        out->addFloat("ScaleToWidth", ScaleTo.Width);
 
32
                        out->addFloat("ScaleToHeight", ScaleTo.Height);
 
33
                }
 
34
 
 
35
 
 
36
                void CParticleScaleAffector::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options)
 
37
                {
 
38
                        ScaleTo.Width = in->getAttributeAsFloat("ScaleToWidth");
 
39
                        ScaleTo.Height = in->getAttributeAsFloat("ScaleToHeight");
 
40
                }
 
41
 
 
42
 
 
43
                E_PARTICLE_AFFECTOR_TYPE CParticleScaleAffector::getType() const
 
44
                {
 
45
                        return scene::EPAT_SCALE;
 
46
                }
 
47
        }
 
48
}
 
49