/** * ParticleCollision.ts * * Particle collision: plane/sphere bounce, friction, * lifetime reduction on impact, and sub-emitter spawning. * * @module particles */ export interface CollisionPlane { id: string; nx: number; ny: number; nz: number; d: number; bounce: number; friction: number; lifetimeLoss: number; } export interface CollisionSphere { id: string; cx: number; cy: number; cz: number; radius: number; bounce: number; friction: number; } export interface CollidableParticle { x: number; y: number; z: number; vx: number; vy: number; vz: number; lifetime: number; alive: boolean; [index: number]: number | boolean; } export type SubEmitCallback = (x: number, y: number, z: number, count: number) => void; export declare class ParticleCollisionSystem { private syncParticleCompat; private planes; private spheres; private subEmitCallback; private subEmitCount; private collisionCount; addPlane(plane: CollisionPlane): void; addSphere(sphere: CollisionSphere): void; onSubEmit(callback: SubEmitCallback, count?: number): void; resolve(particles: CollidableParticle[]): void; getCollisionCount(): number; } //# sourceMappingURL=ParticleCollision.d.ts.map