UNPKG

@babylonjs/core

Version:

Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.

150 lines (149 loc) 4.4 kB
import { type Nullable } from "../../../types.js"; import { type AbstractMesh } from "../../../Meshes/abstractMesh.js"; import { type ParticleSystem } from "../../particleSystem.js"; import { type NodeParticleConnectionPoint } from "../nodeParticleBlockConnectionPoint.js"; import { type NodeParticleBuildState } from "../nodeParticleBuildState.js"; import { Vector3 } from "../../../Maths/math.vector.js"; import { NodeParticleBlock } from "../nodeParticleBlock.js"; type CustomShader = { shaderPath: { fragmentElement: string; }; shaderOptions: { uniforms: string[]; samplers: string[]; defines: string[]; }; }; /** * Block used to get a system of particles */ export declare class SystemBlock extends NodeParticleBlock { private static _IdCounter; /** * Gets or sets the blend mode for the particle system */ blendMode: number; /** * Gets or sets the epsilon value used for comparison */ capacity: number; /** * Gets or sets the manual emit count */ manualEmitCount: number; /** * Gets or sets the target stop duration for the particle system */ startDelay: number; /** * Gets or sets the target stop duration for the particle system */ updateSpeed: number; /** * Gets or sets the number of pre-warm cycles before rendering the particle system */ preWarmCycles: number; /** * Gets or sets the time step multiplier used for pre-warm */ preWarmStepOffset: number; /** * Gets or sets a boolean indicating if the system is billboard based */ isBillboardBased: boolean; /** * Gets or sets the billboard mode for the particle system */ billBoardMode: number; /** * Gets or sets a boolean indicating if the system coordinate space is local or global */ isLocal: boolean; /** * Gets or sets a boolean indicating if the system should be disposed when stopped */ disposeOnStop: boolean; /** * Gets or sets a boolean indicating if the system should not start automatically */ doNoStart: boolean; /** * Gets or sets the rendering group id for the particle system (0 by default) */ renderingGroupId: number; /** @internal */ _internalId: number; /** * Gets or sets the custom shader configuration used to render the particles. * This can be used to set your own shader to render the particle system. */ customShader: Nullable<CustomShader>; /** * Gets or sets the emitter for the particle system. */ emitter: Nullable<AbstractMesh | Vector3>; /** * Create a new SystemBlock * @param name defines the block name */ constructor(name: string); /** * Gets the current class name * @returns the class name */ getClassName(): string; /** * Gets the particle input component */ get particle(): NodeParticleConnectionPoint; /** * Gets the emitRate input component */ get emitRate(): NodeParticleConnectionPoint; /** * Gets the texture input component */ get texture(): NodeParticleConnectionPoint; /** * Gets the translationPivot input component */ get translationPivot(): NodeParticleConnectionPoint; /** * Gets the textureMask input component */ get textureMask(): NodeParticleConnectionPoint; /** * Gets the targetStopDuration input component */ get targetStopDuration(): NodeParticleConnectionPoint; /** * Gets the onStart input component */ get onStart(): NodeParticleConnectionPoint; /** * Gets the onEnd input component */ get onEnd(): NodeParticleConnectionPoint; /** * Gets the system output component */ get system(): NodeParticleConnectionPoint; /** * Builds the block and return a functional particle system * @param state defines the building state * @returns the built particle system */ createSystem(state: NodeParticleBuildState): ParticleSystem; /** * Serializes the system block * @returns The serialized object */ serialize(): any; /** * Deserializes the system block * @param serializationObject The serialized system */ _deserialize(serializationObject: any): void; } export {};