Plasma Engine  2.0
Loading...
Searching...
No Matches
plParticleTypeTrail Class Referencefinal
Inheritance diagram for plParticleTypeTrail:

Classes

struct  TrailData
 

Public Member Functions

virtual void CreateRequiredStreams () override
 
virtual void ExtractTypeRenderData (plMsgExtractRenderData &ref_msg, const plTransform &instanceTransform) const override
 
virtual float GetMaxParticleRadius (float fParticleSize) const override
 
- Public Member Functions inherited from plParticleModule
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

static plUInt16 ComputeTrailPointBucketSize (plUInt16 uiMaxTrailPoints)
 
- Static Public Member Functions inherited from plNoBase
static const plRTTIGetStaticRTTI ()
 

Public Attributes

plEnum< plParticleTypeRenderModem_RenderMode
 
plUInt16 m_uiMaxPoints
 
plTime m_UpdateDiff
 
plTexture2DResourceHandle m_hTexture
 
plEnum< plParticleTextureAtlasTypem_TextureAtlasType
 
plUInt8 m_uiNumSpritesX = 1
 
plUInt8 m_uiNumSpritesY = 1
 
plTempHashedString m_sTintColorParameter
 
plTexture2DResourceHandle m_hDistortionTexture
 
float m_fDistortionStrength = 0
 
plEnum< plParticleLightingModem_LightingMode
 
float m_fNormalCurvature = 0.5f
 
float m_fLightDirectionality = 0.5f
 
- Public Attributes inherited from plProcessingStreamProcessor
float m_fPriority = 0.0f
 Used for sorting processors, to ensure a certain order. Lower priority == executed first.
 

Protected Member Functions

virtual void InitializeElements (plUInt64 uiStartIndex, plUInt64 uiNumElements) override
 This method needs to be implemented in order to initialize new elements to specific values.
 
virtual void Process (plUInt64 uiNumElements) override
 The actual method which processes the data, will be called with the number of elements to process.
 
void OnParticleDeath (const plStreamGroupElementRemovedEvent &e)
 
plUInt16 GetIndexForTrailPoints ()
 
const plVec4GetTrailPointsPositions (plUInt32 index) const
 
plVec4GetTrailPointsPositions (plUInt32 index)
 
- Protected Member Functions inherited from plParticleType
virtual void StepParticleSystem (const plTime &tDiff, plUInt32 uiNumNewParticles)
 
- 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 Attributes

plProcessingStreamm_pStreamLifeTime = nullptr
 
plProcessingStreamm_pStreamPosition = nullptr
 
plProcessingStreamm_pStreamSize = nullptr
 
plProcessingStreamm_pStreamColor = nullptr
 
plProcessingStreamm_pStreamTrailData = nullptr
 
plProcessingStreamm_pStreamVariation = nullptr
 
plTime m_LastSnapshot
 
plUInt8 m_uiCurFirstIndex = 0
 
float m_fSnapshotFraction
 
plArrayPtr< plBaseParticleShaderData > m_BaseParticleData
 
plArrayPtr< plTrailParticleShaderData > m_TrailParticleData
 
plArrayPtr< plVec4m_TrailPointsShared
 
plDynamicArray< plTrailParticlePointsData64, plAlignedAllocatorWrapperm_TrailPoints64
 
plDynamicArray< plUInt16 > m_FreeTrailData
 
- Protected Attributes inherited from plParticleType
plTime m_TimeDiff
 
plUInt64 m_uiLastExtractedFrame
 
- 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();.
 

Friends

class plParticleTypeTrailFactory
 

Additional Inherited Members

- Static Protected Member Functions inherited from plParticleType
static plUInt32 ComputeSortingKey (plParticleTypeRenderMode::Enum mode, plUInt32 uiTextureHash)
 

Member Function Documentation

◆ CreateRequiredStreams()

void plParticleTypeTrail::CreateRequiredStreams ( )
overridevirtual

Implements plParticleModule.

◆ ExtractTypeRenderData()

void plParticleTypeTrail::ExtractTypeRenderData ( plMsgExtractRenderData & ref_msg,
const plTransform & instanceTransform ) const
overridevirtual
Todo
This loop could be done without a condition

Implements plParticleType.

◆ GetMaxParticleRadius()

virtual float plParticleTypeTrail::GetMaxParticleRadius ( float fParticleSize) const
inlineoverridevirtual
Todo
This is a hacky guess, one would actually need to inspect the trail positions

Reimplemented from plParticleType.

◆ InitializeElements()

void plParticleTypeTrail::InitializeElements ( plUInt64 uiStartIndex,
plUInt64 uiNumElements )
overrideprotectedvirtual

This method needs to be implemented in order to initialize new elements to specific values.

Reimplemented from plParticleType.

◆ Process()

void plParticleTypeTrail::Process ( plUInt64 uiNumElements)
overrideprotectedvirtual

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

Implements plProcessingStreamProcessor.

Member Data Documentation

◆ m_TrailPoints64

plDynamicArray<plTrailParticlePointsData64, plAlignedAllocatorWrapper> plParticleTypeTrail::m_TrailPoints64
protected
Todo
Use a shared freelist across effects instead

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