/** * Ground Layer System * * Generates procedural ground vegetation: * - Bushes and shrubs * - Grass tufts * - Ferns and undergrowth * - Ground texture variation * * Creates the forest floor that grounds the tree silhouettes. */ export type GroundElementType = "bush" | "grass" | "fern" | "rock" | "stump"; export interface GroundElement { id: string; type: GroundElementType; x: number; y: number; width: number; height: number; depth: number; silhouettePoints: Array<{ x: number; y: number; }>; opacity: number; } export interface GrassBlade { baseX: number; baseY: number; tipX: number; tipY: number; controlX: number; controlY: number; thickness: number; hueShift: number; brightness: number; tipGlow: boolean; layer: "carpet" | "mid" | "accent"; } export interface GrassTuft { id: string; x: number; y: number; depth: number; blades: GrassBlade[]; width: number; height: number; } export interface GroundLayerConfig { width: number; height: number; groundLineY: number; bushCount: number; bushMinSize: number; bushMaxSize: number; bushNoiseScale: number; bushNoiseAmplitude: number; grassTuftCount: number; bladesPerTuft: number; grassMinHeight: number; grassMaxHeight: number; grassCurvature: number; fernCount: number; fernMinSize: number; fernMaxSize: number; frondCount: number; clusteringStrength: number; depthLayers: number; } export declare class GroundLayerSystem { private config; private noise; private elements; private grassTufts; private idCounter; constructor(config?: Partial, seed?: number); /** * Generate all ground elements */ generate(): void; private generateLayerElements; private generateBush; private generateBushSilhouette; private generateGrassTuft; private generateFern; private generateFernSilhouette; /** * Get all ground elements for rendering */ getElements(): GroundElement[]; /** * Get all grass tufts for rendering */ getGrassTufts(): GrassTuft[]; /** * Get elements by type */ getElementsByType(type: GroundElementType): GroundElement[]; /** * Get elements at a specific depth layer */ getElementsAtDepth(depth: number, tolerance?: number): GroundElement[]; /** * Resize and regenerate */ resize(width: number, height: number): void; getConfig(): GroundLayerConfig; getStats(): { totalElements: number; bushes: number; grassTufts: number; ferns: number; totalBlades: number; }; } //# sourceMappingURL=GroundLayerSystem.d.ts.map