@visactor/vrender-animate
Version:
This module provides a graph-based animation system for VRender.
50 lines (49 loc) • 1.48 kB
TypeScript
import type { EasingType } from '@visactor/vrender-core';
import { HybridEffectBase } from './base/CustomEffectBase';
export interface ParticleConfig {
effectType?: 'explode' | 'vortex' | 'gravity';
count?: number;
size?: number;
strength?: number;
useWebGL: boolean;
}
export interface ParticleData {
x: number;
y: number;
originX: number;
originY: number;
vx: number;
vy: number;
r: number;
g: number;
b: number;
a: number;
life: number;
size: number;
}
export declare class Particle extends HybridEffectBase {
private particles;
private positionBuffer;
private colorBuffer;
private particleConfig;
constructor(from: null, to: null, duration: number, easing: EasingType, params: any);
protected getShaderSources(): {
vertex: string;
fragment: string;
} | null;
protected applyWebGLEffect(canvas: HTMLCanvasElement): HTMLCanvasElement | null;
protected applyCanvas2DEffect(canvas: HTMLCanvasElement): HTMLCanvasElement | null;
private extractParticles;
private updateParticles;
private applyParticleForces;
private applyGravityEffect;
private applyVortexEffect;
private updateParticleProperties;
private prepareAndDrawParticles;
private updateParticleBuffers;
private setParticleUniforms;
private cleanupTempBuffers;
private applyCanvas2DExplode;
private applyCanvas2DGravity;
private applyCanvas2DVortex;
}