28 #ifndef __ParticleSystem_H__
29 #define __ParticleSystem_H__
75 String doGet(
const void* target)
const;
76 void doSet(
void* target,
const String& val);
82 String doGet(
const void* target)
const;
83 void doSet(
void* target,
const String& val);
89 String doGet(
const void* target)
const;
90 void doSet(
void* target,
const String& val);
96 String doGet(
const void* target)
const;
97 void doSet(
void* target,
const String& val);
103 String doGet(
const void* target)
const;
104 void doSet(
void* target,
const String& val);
110 String doGet(
const void* target)
const;
111 void doSet(
void* target,
const String& val);
117 String doGet(
const void* target)
const;
118 void doSet(
void* target,
const String& val);
124 String doGet(
const void* target)
const;
125 void doSet(
void* target,
const String& val);
131 String doGet(
const void* target)
const;
132 void doSet(
void* target,
const String& val);
138 String doGet(
const void* target)
const;
139 void doSet(
void* target,
const String& val);
145 String doGet(
const void* target)
const;
146 void doSet(
void* target,
const String& val);
169 void setRenderer(
const String& typeName);
174 const String& getRendererName(
void)
const;
199 unsigned short getNumEmitters(
void)
const;
209 void removeEmitter(
unsigned short index);
212 void removeAllEmitters(
void);
238 unsigned short getNumAffectors(
void)
const;
248 void removeAffector(
unsigned short index);
251 void removeAllAffectors(
void);
264 size_t getNumParticles(
void)
const;
296 Particle* getParticle(
size_t index);
302 size_t getParticleQuota(
void)
const;
315 void setParticleQuota(
size_t quota);
321 size_t getEmittedEmitterQuota(
void)
const;
328 void setEmittedEmitterQuota(
size_t quota);
343 void _update(
Real timeElapsed);
362 virtual const String& getMaterialName(
void)
const;
368 virtual void _notifyCurrentCamera(
Camera* cam);
374 void _notifyAttached(
Node* parent,
bool isTagPoint =
false);
392 virtual void _updateRenderQueue(
RenderQueue* queue);
396 bool debugRenderables =
false);
410 void fastForward(
Real time,
Real interval = 0.1);
441 void setIterationInterval(
Real iterationInterval);
469 void setNonVisibleUpdateTimeout(
Real timeout);
478 { msDefaultNonvisibleTimeout = timeout; }
485 const String& getMovableType(
void)
const;
489 virtual void _notifyParticleResized(
void);
493 virtual void _notifyParticleRotated(
void);
505 virtual void setDefaultDimensions(
Real width,
Real height);
508 virtual void setDefaultWidth(
Real width);
510 virtual Real getDefaultWidth(
void)
const;
512 virtual void setDefaultHeight(
Real height);
514 virtual Real getDefaultHeight(
void)
const;
516 virtual bool getCullIndividually(
void)
const;
537 virtual void setCullIndividually(
bool cullIndividual);
551 void setRenderQueueGroup(
uint8 queueID);
553 void setRenderQueueGroupAndPriority(
uint8 queueID,
ushort priority);
592 void setBoundsAutoUpdated(
bool autoUpdate,
Real stopIn = 0.0f);
603 void setKeepParticlesInLocalSpace(
bool keepLocal);
623 void _updateBounds(
void);
634 void setEmitting(
bool v);
641 bool getEmitting()
const;
644 uint32 getTypeFlags(
void)
const;
718 float operator()(
Particle* p)
const;
728 float operator()(
Particle* p)
const;
822 void _expire(
Real timeElapsed);
825 void _triggerEmitters(
Real timeElapsed);
829 void _executeTriggerEmitters(
ParticleEmitter* emitter,
unsigned requested,
Real timeElapsed);
832 void _applyMotion(
Real timeElapsed);
835 void _triggerAffectors(
Real timeElapsed);
838 void _sortParticles(
Camera* cam);
841 void increasePool(
size_t size);
850 void increaseEmittedEmitterPool(
size_t size);
853 void initParameters(
void);
856 void configureRenderer(
void);
859 void createVisualParticles(
size_t poolstart,
size_t poolend);
861 void destroyVisualParticles(
size_t poolstart,
size_t poolend);
868 void initialiseEmittedEmitters(
void);
873 void initialiseEmittedEmitterPool(
void);
876 void addFreeEmittedEmitters(
void);
879 void removeAllEmittedEmitters(
void);
897 void addActiveEmittedEmittersToFreeList (
void);
907 void _notifyReorganiseEmittedEmitterData (
void);