Plasma Engine  2.0
Loading...
Searching...
No Matches
plParticleEmitter Class Referenceabstract

Base class for stream spawners that are used by plParticleEmitter's. More...

#include <ParticleEmitter.h>

Inheritance diagram for plParticleEmitter:

Protected Member Functions

virtual bool IsContinuous () const
 
virtual void Process (plUInt64 uiNumElements) final override
 The actual method which processes the data, will be called with the number of elements to process.
 
virtual plUInt32 ComputeSpawnCount (const plTime &tDiff)=0
 Called once per update. Must return how many new particles are to be spawned.
 
virtual plParticleEmitterState IsFinished ()=0
 Called before ComputeSpawnCount(). Should return true, if the emitter will never spawn any more particles.
 
virtual void ProcessEventQueue (plParticleEventQueue queue)
 
- Protected Member Functions inherited from plParticleModule
virtual void OnReset ()
 Called by Reset()
 
void CreateStream (const char *szName, plProcessingStream::DataType Type, plProcessingStream **ppStream, bool bWillInitializeStream)
 
virtual plResult UpdateStreamBindings () final override
 Internal method which needs to be implemented, gets the concrete stream bindings. This is called every time the streams are resized. Implementations should check that their required streams exist and are of the correct data types.
 
plRandomGetRNG () const
 
- Protected Member Functions inherited from plProcessingStreamProcessor
virtual void InitializeElements (plUInt64 uiStartIndex, plUInt64 uiNumElements)=0
 This method needs to be implemented in order to initialize new elements to specific values.
 

Friends

class plParticleSystemInstance
 
class plParticleEmitterFactory
 

Additional Inherited Members

- Public Member Functions inherited from plParticleModule
virtual void CreateRequiredStreams ()=0
 
virtual void QueryOptionalStreams ()
 
void Reset (plParticleSystemInstance *pOwner)
 
virtual void OnFinalize ()
 Called after everything is set up.
 
plParticleSystemInstanceGetOwnerSystem ()
 
const plParticleSystemInstanceGetOwnerSystem () const
 
plParticleEffectInstanceGetOwnerEffect () const
 
virtual void RequestRequiredWorldModulesForCache (plParticleWorldModule *pParticleModule)
 Override this to cache world module pointers for later (through plParticleWorldModule::GetCachedWorldModule()).
 
- Public Member Functions inherited from plProcessingStreamProcessor
 plProcessingStreamProcessor ()
 Base constructor.
 
virtual ~plProcessingStreamProcessor ()
 Base destructor.
 
- Public Member Functions inherited from plReflectedClass
virtual const plRTTIGetDynamicRTTI () const
 
bool IsInstanceOf (const plRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
 
template<typename T >
PL_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
 
- Static Public Member Functions inherited from plNoBase
static const plRTTIGetStaticRTTI ()
 
- Public Attributes inherited from plProcessingStreamProcessor
float m_fPriority = 0.0f
 Used for sorting processors, to ensure a certain order. Lower priority == executed first.
 
- Protected Attributes inherited from plProcessingStreamProcessor
plProcessingStreamGroupm_pStreamGroup = nullptr
 Back pointer to the stream group - will be set to the owner stream group when adding the stream processor to the group. Can be used to get stream pointers in UpdateStreamBindings();.
 

Detailed Description

Base class for stream spawners that are used by plParticleEmitter's.

Member Function Documentation

◆ ComputeSpawnCount()

virtual plUInt32 plParticleEmitter::ComputeSpawnCount ( const plTime & tDiff)
protectedpure virtual

Called once per update. Must return how many new particles are to be spawned.

Implemented in plParticleEmitter_Burst, plParticleEmitter_Continuous, plParticleEmitter_Distance, and plParticleEmitter_OnEvent.

◆ IsFinished()

virtual plParticleEmitterState plParticleEmitter::IsFinished ( )
protectedpure virtual

Called before ComputeSpawnCount(). Should return true, if the emitter will never spawn any more particles.

Implemented in plParticleEmitter_Burst, plParticleEmitter_Continuous, plParticleEmitter_Distance, and plParticleEmitter_OnEvent.

◆ Process()

void plParticleEmitter::Process ( plUInt64 uiNumElements)
finaloverrideprotectedvirtual

The actual method which processes the data, will be called with the number of elements to process.

Implements plProcessingStreamProcessor.


The documentation for this class was generated from the following files: