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