Search Results for

    Show / Hide Table of Contents

    Class EmitterSimulator

    A class that manages a single particle emitter simulator.

    Inheritance
    object
    EmitterSimulator
    CPUEmitterSimulator
    ComputeEmitterSimulator
    Namespace: Evergine.Framework.Particles
    Assembly: Evergine.Framework.dll
    Syntax
    public abstract class EmitterSimulator

    Constructors

    EmitterSimulator(ParticlesComponent, ParticlesEmitter)

    Initializes a new instance of the EmitterSimulator class.

    Declaration
    public EmitterSimulator(ParticlesComponent component, ParticlesEmitter emitter)
    Parameters
    Type Name Description
    ParticlesComponent component

    The particle system component.

    ParticlesEmitter emitter

    The particle emitter.

    Fields

    assets

    The asset scene manager.

    Declaration
    protected AssetSceneManager assets
    Field Value
    Type Description
    AssetSceneManager

    clock

    The application clock.

    Declaration
    protected Clock clock
    Field Value
    Type Description
    Clock

    deadParticles

    The number of dead particles in this frame.

    Declaration
    protected uint deadParticles
    Field Value
    Type Description
    uint

    description

    Describes the particle system.

    Declaration
    protected ParticleEmitterDescription description
    Field Value
    Type Description
    ParticleEmitterDescription

    emitter

    The emitter from the asset.

    Declaration
    protected ParticlesEmitter emitter
    Field Value
    Type Description
    ParticlesEmitter

    forceComputeDictionary

    The dictionary of computed forces.

    Declaration
    protected Dictionary<BaseForce, ComputeTaskDecorator> forceComputeDictionary
    Field Value
    Type Description
    Dictionary<BaseForce, ComputeTaskDecorator>

    forceMask

    The force mask.

    Declaration
    protected List<uint> forceMask
    Field Value
    Type Description
    List<uint>

    forcesDirty

    Indicates whether the force values are outdated.

    Declaration
    protected bool forcesDirty
    Field Value
    Type Description
    bool

    forcesList

    The list of forces.

    Declaration
    protected List<BaseForce> forcesList
    Field Value
    Type Description
    List<BaseForce>

    graphicsContext

    The graphical content.

    Declaration
    protected GraphicsContext graphicsContext
    Field Value
    Type Description
    GraphicsContext

    initColorLineal

    The initial color value.

    Declaration
    protected Vector4 initColorLineal
    Field Value
    Type Description
    Vector4

    initColorLineal2

    The initial color value.

    Declaration
    protected Vector4 initColorLineal2
    Field Value
    Type Description
    Vector4

    invNoiseSize

    The inverse of the noise size.

    Declaration
    protected float invNoiseSize
    Field Value
    Type Description
    float

    isRefreshingResources

    Indicates if the particle system is refreshing resources.

    Declaration
    protected bool isRefreshingResources
    Field Value
    Type Description
    bool

    isSizeDirty

    Indicates if the particle size is dirty.

    Declaration
    protected bool isSizeDirty
    Field Value
    Type Description
    bool

    lifeFactor

    The life factor.

    Declaration
    protected float lifeFactor
    Field Value
    Type Description
    float

    materialDirectivesDirty

    Determines if we need to update the material directives.

    Declaration
    protected bool materialDirectivesDirty
    Field Value
    Type Description
    bool

    maxParticles

    The maximum number of particles.

    Declaration
    protected uint maxParticles
    Field Value
    Type Description
    uint

    mesh

    The particle system's mesh.

    Declaration
    protected Mesh mesh
    Field Value
    Type Description
    Mesh

    mustResetData

    Whether the data must be reset.

    Declaration
    protected bool mustResetData
    Field Value
    Type Description
    bool

    newParticles

    The number of new particles to be emitted in this frame.

    Declaration
    protected uint newParticles
    Field Value
    Type Description
    uint

    particleBufferA

    The particle buffer.

    Declaration
    protected Buffer particleBufferA
    Field Value
    Type Description
    Buffer

    particleBufferQuad

    The quad buffer for the particles.

    Declaration
    protected Buffer particleBufferQuad
    Field Value
    Type Description
    Buffer

    particlesComponent

    The particle system component.

    Declaration
    protected ParticlesComponent particlesComponent
    Field Value
    Type Description
    ParticlesComponent

    particlesManager

    The particle manager.

    Declaration
    protected ParticlesManager particlesManager
    Field Value
    Type Description
    ParticlesManager

    propertiesDirty

    Indicates if the properties of the emitter have changed.

    Declaration
    protected bool propertiesDirty
    Field Value
    Type Description
    bool

    renderManager

    The Render Manager.

    Declaration
    protected RenderManager renderManager
    Field Value
    Type Description
    RenderManager

    timeFactor

    The time factor.

    Declaration
    protected float timeFactor
    Field Value
    Type Description
    float

    Properties

    Component

    Gets the particle component.

    Declaration
    public ParticlesComponent Component { get; }
    Property Value
    Type Description
    ParticlesComponent

    ComputeResolved

    Gets a value indicating whether the emitter is using a compute shader.

    Declaration
    public abstract bool ComputeResolved { get; }
    Property Value
    Type Description
    bool

    Info

    Gets the particle system emitter.

    Declaration
    public ParticlesEmitter Info { get; }
    Property Value
    Type Description
    ParticlesEmitter

    IsEmitting

    Gets a value indicating whether the particle system is emitting.

    Declaration
    public bool IsEmitting { get; }
    Property Value
    Type Description
    bool

    IsInitialized

    Gets a value indicating whether the emitter has been initialized.

    Declaration
    public bool IsInitialized { get; }
    Property Value
    Type Description
    bool

    IsSimulating

    Gets a value indicating whether the particle system is emitting particles this frame or has some alive particles.

    Declaration
    public bool IsSimulating { get; }
    Property Value
    Type Description
    bool

    Material

    Gets the particle material.

    Declaration
    public ParticlesEffect Material { get; }
    Property Value
    Type Description
    ParticlesEffect

    Mesh

    Gets or sets the particle mesh.

    Declaration
    public Mesh Mesh { get; protected set; }
    Property Value
    Type Description
    Mesh

    Methods

    BaseUnitialize()

    Uninitializes the emitter.

    Declaration
    public void BaseUnitialize()

    ClearResources()

    Clears the emitter's resources.

    Declaration
    protected abstract void ClearResources()

    CreateResources()

    Creates the emitter's resources.

    Declaration
    protected abstract void CreateResources()

    Initialize(ParticlesManager, RenderManager, AssetSceneManager)

    Initializes the emitter.

    Declaration
    public void Initialize(ParticlesManager particlesManager, RenderManager renderManager, AssetSceneManager assets)
    Parameters
    Type Name Description
    ParticlesManager particlesManager

    The particles manager.

    RenderManager renderManager

    The render manager.

    AssetSceneManager assets

    The assets manager.

    RefreshCounters()

    Refreshes all the counters that the emitter may have.

    Declaration
    protected abstract void RefreshCounters()

    RefreshParticles()

    Refreshes the particles.

    Declaration
    protected virtual void RefreshParticles()

    RefreshProperties()

    Refreshes the particles' properties.

    Declaration
    protected virtual void RefreshProperties()

    RefreshResources()

    Refreshes the emitter's resources.

    Declaration
    protected void RefreshResources()

    Reset()

    Resets the state of the particle system.

    Declaration
    public void Reset()

    ResetData(CommandBuffer)

    Resets the emitter data.

    Declaration
    protected abstract void ResetData(CommandBuffer commandBuffer)
    Parameters
    Type Name Description
    CommandBuffer commandBuffer

    The command buffer.

    StartEmitting()

    Starts the particle emission.

    Declaration
    public void StartEmitting()

    StopEmitting()

    Stops the particle emissions.

    Declaration
    public void StopEmitting()

    Unitialize()

    Uninitializes the emitter.

    Declaration
    protected abstract void Unitialize()

    UpdateParticlesMethod(CommandBuffer, TimeSpan)

    The method that updates the particle system.

    Declaration
    protected abstract void UpdateParticlesMethod(CommandBuffer commandBuffer, TimeSpan elapsedTime)
    Parameters
    Type Name Description
    CommandBuffer commandBuffer

    The command buffer.

    TimeSpan elapsedTime

    The elapsed time.

    Events

    MeshChanged

    Event raised when the mesh changes.

    Declaration
    public event EventHandler<Mesh> MeshChanged
    Event Type
    Type Description
    EventHandler<Mesh>

    Extension Methods

    ReflectionHelper.GetMemberAssembly(object)
    ReflectionHelper.GetTypeName(object)
    In this article
    Back to top
    Generated by DocFX