/** * FoliageSystem.ts * * Instance-based foliage: scattering, density maps, * wind sway animation, LOD, and culling. * * @module environment */ export interface FoliageType { id: string; meshId: string; density: number; minScale: number; maxScale: number; alignToNormal: boolean; windResponse: number; castsShadow: boolean; lodDistances: number[]; } export interface FoliageInstance { typeId: string; position: [number, number, number]; scale: number; rotation: number; windPhase: number; lodLevel: number; visible: boolean; } export interface FoliagePatch { id: string; bounds: { x: number; z: number; w: number; h: number; }; instances: FoliageInstance[]; density: number; } export declare class FoliageSystem { private types; private patches; private windDir; private windStrength; private time; registerType(type: FoliageType): void; getType(id: string): FoliageType | undefined; getTypeCount(): number; setWind(dirX: number, dirZ: number, strength: number): void; getWind(): { dirX: number; dirZ: number; strength: number; }; scatter(patchId: string, typeId: string, bounds: FoliagePatch['bounds'], count: number, seed?: number): FoliagePatch; update(dt: number, cameraPos: { x: number; z: number; }): void; getWindOffset(inst: FoliageInstance): [number, number, number]; getPatch(id: string): FoliagePatch | undefined; getPatchCount(): number; getVisibleCount(): number; getTotalInstanceCount(): number; removePatch(id: string): boolean; } //# sourceMappingURL=FoliageSystem.d.ts.map