@awayjs/graphics
Version:
AwayJS graphics classes
77 lines • 3.91 kB
TypeScript
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<number>;
_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 <code>LOCAL_STATIC</code> 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<number>;
/**
* Creates a new <code>ParticleNodeBase</code> 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 <code>LOCAL_STATIC</code> 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