import type { Vector3 } from '@holoscript/core'; /** * LSystemGenerator.ts * * Lindenmayer system (L-system) for procedural vegetation. * Supports stochastic rules, branching, and 3D turtle graphics. * * @module procedural */ export type IVector3 = Vector3; export interface LSystemRule { symbol: string; replacement: string; probability?: number; } export interface LSystemConfig { axiom: string; rules: LSystemRule[]; angle: number; length: number; lengthScale: number; iterations: number; } export interface TurtleState { position: IVector3; direction: IVector3; up: IVector3; length: number; depth: number; } export interface LSystemSegment { start: IVector3; end: IVector3; depth: number; radius: number; } export interface LSystemLeaf { position: IVector3; normal: IVector3; size: number; } export interface LSystemResult { segments: LSystemSegment[]; leaves: LSystemLeaf[]; boundingBox: { min: IVector3; max: IVector3; }; } export declare const TREE_SIMPLE: LSystemConfig; export declare const TREE_BINARY: LSystemConfig; export declare const BUSH: LSystemConfig; export declare const FERN: LSystemConfig; export declare class LSystemGenerator { private seed; private rng; constructor(seed?: number); /** * Apply production rules to expand the axiom. */ expand(config: LSystemConfig): string; /** * Interpret the L-system string using 3D turtle graphics. */ interpret(lString: string, config: LSystemConfig): LSystemResult; /** * Generate a complete L-system tree/plant. */ generate(config: LSystemConfig): LSystemResult; private rotateY; private rotateX; private updateBounds; private createRng; } //# sourceMappingURL=LSystemGenerator.d.ts.map