import { ShaderRegisterCache } from '@awayjs/stage'; import { ShaderBase, AnimationRegisterData, AnimationNodeBase } from '@awayjs/renderer'; import { ParticleProperties } from '../data/ParticleProperties'; import { ParticleAnimationSet } from '../ParticleAnimationSet'; /** * Provides an abstract base class for particle animation nodes. */ export declare class ParticleNodeBase extends AnimationNodeBase { private _priority; _pMode: number; _pDataLength: number; _pOneData: Array; _iDataOffset: number; private static GLOBAL; private static LOCAL_STATIC; private static LOCAL_DYNAMIC; private static MODES; /** * Returns the property mode of the particle animation node. Typically set in the node constructor * * @see away.animators.ParticlePropertiesMode */ get mode(): number; /** * Returns the priority of the particle animation node, used to order the agal generated in a particle animation set. Set automatically on instantiation. * * @see away.animators.ParticleAnimationSet * @see #getAGALVertexCode */ get priority(): number; /** * Returns the length of the data used by the node when in LOCAL_STATIC mode. Used to generate the local static data of the particle animation set. * * @see away.animators.ParticleAnimationSet * @see #getAGALVertexCode */ get dataLength(): number; /** * Returns the generated data vector of the node after one particle pass during the generation of all local static data of the particle animation set. * * @see away.animators.ParticleAnimationSet * @see #generatePropertyOfOneParticle */ get oneData(): Array; /** * Creates a new ParticleNodeBase object. * * @param name Defines the generic name of the particle animation node. * @param mode Defines whether the mode of operation acts on local properties of a particle or global properties of the node. * @param dataLength Defines the length of the data used by the node when in LOCAL_STATIC mode. * @param [optional] priority the priority of the particle animation node, used to order the agal generated in a particle animation set. Defaults to 1. */ constructor(name: string, mode: number, dataLength: number, priority?: number); /** * Returns the AGAL code of the particle animation node for use in the vertex shader. */ getAGALVertexCode(shader: ShaderBase, animationSet: ParticleAnimationSet, registerCache: ShaderRegisterCache, animationRegisterData: AnimationRegisterData): string; /** * Returns the AGAL code of the particle animation node for use in the fragment shader. */ getAGALFragmentCode(shader: ShaderBase, animationSet: ParticleAnimationSet, registerCache: ShaderRegisterCache, animationRegisterData: AnimationRegisterData): string; /** * Returns the AGAL code of the particle animation node for use in the fragment shader when UV coordinates are required. */ getAGALUVCode(shader: ShaderBase, animationSet: ParticleAnimationSet, registerCache: ShaderRegisterCache, animationRegisterData: AnimationRegisterData): string; /** * Called internally by the particle animation set when assigning the set of static properties originally defined by the initParticleFunc of the set. * * @see away.animators.ParticleAnimationSet#initParticleFunc */ _iGeneratePropertyOfOneParticle(param: ParticleProperties): void; /** * Called internally by the particle animation set when determining the requirements of the particle animation node AGAL. */ _iProcessAnimationSetting(particleAnimationSet: ParticleAnimationSet): void; } //# sourceMappingURL=ParticleNodeBase.d.ts.map