ParticleRenderer.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef PARTICLE_RENDERER_H
  2. #define PARTICLE_RENDERER_H
  3. #include <OgreString.h>
  4. #include <OgreStringInterface.h>
  5. #include "ParticlePool.h"
  6. class ParticleTechnique;
  7. class VisualParticle;
  8. class ParticleRenderer : public Ogre::StringInterface
  9. {
  10. public:
  11. ParticleRenderer();
  12. virtual ~ParticleRenderer();
  13. virtual void CopyAttributesTo(ParticleRenderer* renderer);
  14. void SetRendererInitialised(bool renderer_initialised);
  15. bool IsRendererInitialised() const;
  16. void SetRendererType(Ogre::String renderer_type);
  17. const Ogre::String& GetRendererType() const;
  18. void SetParentTechnique(ParticleTechnique* parent_technique);
  19. const ParticleTechnique* GetParentTechnique() const;
  20. virtual void SetVisible(bool visible = true) = 0;
  21. virtual void Initialize() = 0;
  22. virtual void UpdateRenderQueue(Ogre::RenderQueue* queue, ParticlePool<VisualParticle>& pool) = 0;
  23. protected:
  24. bool m_RendererInitialised;
  25. Ogre::String m_RendererType;
  26. ParticleTechnique* m_ParentTechnique;
  27. };
  28. #endif // PARTICLE_RENDERER_H