1 // Copyright (C) 2010-2012 Nikolaus Gebhardt
2 // This file is part of the "Irrlicht Engine".
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
4 
5 #ifndef C_PARTICLE_SCALE_AFFECTOR_H
6 #define C_PARTICLE_SCALE_AFFECTOR_H
7 
8 #include <IParticleAffector.h>
9 
10 namespace irr
11 {
12 	namespace scene
13 	{
14 		class CParticleScaleAffector : public IParticleAffector
15 		{
16 		public:
17 			CParticleScaleAffector(const core::dimension2df& scaleTo = core::dimension2df(1.0f, 1.0f));
18 
19 			virtual void affect(u32 now, SParticle *particlearray, u32 count);
20 
21 			//! Writes attributes of the object.
22 			//! Implement this to expose the attributes of your scene node animator for
23 			//! scripting languages, editors, debuggers or xml serialization purposes.
24 			virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const;
25 
26 			//! Reads attributes of the object.
27 			//! Implement this to set the attributes of your scene node animator for
28 			//! scripting languages, editors, debuggers or xml deserialization purposes.
29 			//! \param startIndex: start index where to start reading attributes.
30 			//! \return: returns last index of an attribute read by this affector
31 			virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options);
32 
33 			//! Get emitter type
34 			virtual E_PARTICLE_AFFECTOR_TYPE getType() const;
35 
36 		protected:
37 			core::dimension2df ScaleTo;
38 		};
39 	}
40 }
41 
42 
43 #endif // C_PARTICLE_SCALE_AFFECTOR_H
44 
45