28#ifndef __ParticleSystemRenderer_H__
29#define __ParticleSystemRenderer_H__
128 bool debugRenderables =
false) = 0;
A viewpoint from which the scene will be rendered.
Class representing a general-purpose node an articulated scene graph.
Abstract class definition of a factory object for ParticleSystemRenderer.
virtual void _notifyParticleQuota(size_t quota)=0
Tells the renderer that the particle quota has changed.
virtual void _notifyParticleRotated(void)
Optional callback notified when particles are rotated.
ParticleSystemRenderer()
Constructor.
virtual void _updateRenderQueue(RenderQueue *queue, list< Particle * >::type ¤tParticles, bool cullIndividually)=0
Delegated to by ParticleSystem::_updateRenderQueue.
virtual SortMode _getSortMode(void) const =0
Gets the desired particles sort mode of this renderer.
virtual void _notifyDefaultDimensions(Real width, Real height)=0
Tells the renderer that the particle default size has changed.
virtual void _notifyCurrentCamera(Camera *cam)=0
Delegated to by ParticleSystem::_notifyCurrentCamera.
virtual void _notifyParticleExpired(Particle *particle)
Optional callback notified when particle expired.
virtual void _notifyParticleResized(void)
Optional callback notified when particles are resized individually.
virtual void _notifyParticleMoved(list< Particle * >::type ¤tParticles)
Optional callback notified when particles moved.
virtual void setKeepParticlesInLocalSpace(bool keepLocal)=0
Setting carried over from ParticleSystem.
virtual void _notifyParticleCleared(list< Particle * >::type ¤tParticles)
Optional callback notified when particles cleared.
virtual void _notifyAttached(Node *parent, bool isTagPoint=false)=0
Delegated to by ParticleSystem::_notifyAttached.
virtual ParticleVisualData * _createVisualData(void)
Create a new ParticleVisualData instance for attachment to a particle.
virtual void setRenderQueueGroup(uint8 queueID)=0
Sets which render queue group this renderer should target with it's output.
virtual const String & getType(void) const =0
Gets the type of this renderer - must be implemented by subclasses.
virtual ~ParticleSystemRenderer()
Destructor.
virtual void _setMaterial(MaterialPtr &mat)=0
Sets the material this renderer must use; called by ParticleSystem.
virtual void setRenderQueueGroupAndPriority(uint8 queueID, ushort priority)=0
Sets which render queue group and priority this renderer should target with it's output.
virtual void _destroyVisualData(ParticleVisualData *vis)
Destroy a ParticleVisualData instance.
virtual void _notifyParticleEmitted(Particle *particle)
Optional callback notified when particle emitted.
virtual void visitRenderables(Renderable::Visitor *visitor, bool debugRenderables=false)=0
Required method to allow the renderer to communicate the Renderables it will be using to render the s...
Abstract class containing any additional data required to be associated with a particle to perform th...
Class representing a single particle instance.
Class to manage the scene object rendering queue.
Visitor object that can be used to iterate over a collection of Renderable instances abstractly.
SortMode
Sort mode for billboard-set and particle-system.
SharedPtr< Material > MaterialPtr
float Real
Software floating point type.
SceneObjAllocatedObject FXAlloc