/** * ParticleForces.ts * * Force field system for particles: gravity, wind, turbulence, * point attractors, vortex fields, and drag. * * @module particles */ import type { Particle, IVector3 } from './ParticleEmitter'; export type ForceType = 'gravity' | 'wind' | 'turbulence' | 'attractor' | 'vortex' | 'drag'; export interface ForceFieldConfig { id: string; type: ForceType; strength: number; position?: IVector3; direction?: IVector3; radius?: number; falloff?: 'linear' | 'quadratic' | 'none'; frequency?: number; dragCoefficient?: number; } export interface ForceField { config: ForceFieldConfig; enabled: boolean; } export declare class ParticleForceSystem { private fields; private time; addForce(config: ForceFieldConfig): void; removeForce(id: string): void; setEnabled(id: string, enabled: boolean): void; getForce(id: string): ForceField | undefined; getForceCount(): number; /** * Apply all force fields to a set of particles. */ apply(particles: Particle[], dt: number): void; private applyForce; private applyGravity; private applyWind; private applyTurbulence; private applyAttractor; private applyVortex; private applyDrag; private getPositionalFalloff; } //# sourceMappingURL=ParticleForces.d.ts.map