| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #ifndef PARTICLE_H
- #define PARTICLE_H
- #include <OgrePrerequisites.h>
- #include <Ogre.h>
- #include "ParticleAdditionalData.h"
- class ParticleEmitter;
- class Particle
- {
- public:
- enum ParticleType
- {
- PT_VISUAL,
- PT_EMITTER
- };
- Particle();
- virtual ~Particle() = 0;
- virtual void InitForEmission() {};
- virtual void InitForExpiration() {};
- virtual void Update(Ogre::Real time_elapsed);
- virtual void CopyAttributesTo(Particle* particle);
- ParticleType GetParticleType() const {return m_ParticleType;};
- void SetParentEmitter(ParticleEmitter* parent_emitter) {m_ParentEmitter = parent_emitter;};
- ParticleEmitter* GetParentEmitter() const {return m_ParentEmitter;};
- void SetEnabled(bool enabled) {m_Enabled = enabled;};
- bool IsEnabled() const {return m_Enabled;};
- void SetEmittable(bool emittable) {m_Emittable = emittable;};
- bool IsEmittable() const {return m_Emittable;};
- ParticleAdditionalData* additional_data;
- Ogre::Vector3 position;
- Ogre::Vector3 direction;
- float time_to_live;
- float total_time_to_live;
- protected:
- ParticleEmitter* m_ParentEmitter;
- ParticleType m_ParticleType;
- bool m_Enabled;
- bool m_Emittable;
- };
- #endif // PARTICLE_H
|