/** * Wind Animator * * Animates trees, grass, and ground vegetation with realistic wind effects. * Uses layered sine waves and noise for organic movement: * - Primary sway (slow, large motion) * - Secondary sway (faster, smaller) * - Gusts (occasional stronger bursts) * - Height-based scaling (trunk still, tips move most) */ export interface WindConfig { enabled: boolean; strength: number; direction: number; frequency: number; secondaryStrength: number; secondaryFrequency: number; gustEnabled: boolean; gustStrength: number; gustFrequency: number; gustDuration: number; heightExponent: number; trunkStiffness: number; spatialVariation: number; temporalVariation: number; } export interface WindState { time: number; currentStrength: number; gustActive: boolean; gustIntensity: number; gustTimeRemaining: number; } export interface WindDisplacement { x: number; y: number; rotation: number; } export declare class WindAnimator { private config; private noise; private state; constructor(config?: Partial, seed?: number); /** * Update wind state * @param deltaTime Time since last update in seconds */ update(deltaTime: number): void; private updateGusts; /** * Calculate displacement for a point at given position and height * @param worldX World X position * @param worldY World Y position * @param heightRatio 0-1, 0 = ground, 1 = top of element * @param scale Size multiplier for the element */ getDisplacement(worldX: number, worldY: number, heightRatio: number, scale?: number): WindDisplacement; /** * Calculate displacement for grass blade * Grass is more responsive to wind */ getGrassDisplacement(worldX: number, heightRatio: number): WindDisplacement; /** * Get current wind state for UI display */ getState(): WindState; /** * Get effective wind strength at current moment */ getCurrentStrength(): number; /** * Check if a gust is currently active */ isGustActive(): boolean; /** * Manually trigger a gust */ triggerGust(): void; /** * Set wind configuration */ setConfig(config: Partial): void; getConfig(): WindConfig; /** * Reset animation state */ reset(): void; } /** * Wind presets for different moods */ export declare const WIND_PRESETS: Record>; //# sourceMappingURL=WindAnimator.d.ts.map