ParticleSystem.h 927 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef PARTICLE_SYSTEM_H
  2. #define PARTICLE_SYSTEM_H
  3. #include <OgreMovableObject.h>
  4. #include "ParticleTechnique.h"
  5. class ParticleSystem : public Ogre::MovableObject
  6. {
  7. public:
  8. ParticleSystem(const Ogre::String& name);
  9. virtual ~ParticleSystem();
  10. void CopyAttributesTo(ParticleSystem* ps);
  11. // realization of Ogre::MovableObject
  12. const Ogre::String& getMovableType() const;
  13. const Ogre::AxisAlignedBox& getBoundingBox() const;
  14. Ogre::Real getBoundingRadius() const;
  15. void _updateRenderQueue(Ogre::RenderQueue* queue);
  16. void visitRenderables(Ogre::Renderable::Visitor* visitor, bool debugRenderables = false) {};
  17. void Update(Ogre::Real time_elapsed);
  18. // technique
  19. ParticleTechnique* CreateTechnique();
  20. void AddTechnique(ParticleTechnique* technique);
  21. void DestroyAllTechniques();
  22. private:
  23. std::vector<ParticleTechnique*> m_Techniques;
  24. };
  25. #endif // PARTICLE_SYSTEM_H