/** * SteeringBehaviors.ts * * Autonomous agent movement: seek, flee, arrive, wander, * flocking (separation/alignment/cohesion), and obstacle avoidance. * * @module navigation */ type NavigationVector = [number, number, number]; export interface SteeringAgent { position: NavigationVector; velocity: NavigationVector; maxSpeed: number; maxForce: number; mass: number; } export interface SteeringConfig { separationRadius: number; separationWeight: number; alignmentRadius: number; alignmentWeight: number; cohesionRadius: number; cohesionWeight: number; wanderRadius: number; wanderDistance: number; wanderJitter: number; arriveSlowRadius: number; avoidanceDistance: number; } export interface SteeringObstacle { position: NavigationVector; radius: number; } export declare class SteeringBehaviors { private config; private wanderAngle; constructor(config?: Partial); seek(agent: SteeringAgent, target: NavigationVector): NavigationVector; flee(agent: SteeringAgent, target: NavigationVector): NavigationVector; arrive(agent: SteeringAgent, target: NavigationVector): NavigationVector; wander(agent: SteeringAgent): NavigationVector; separation(agent: SteeringAgent, neighbors: SteeringAgent[]): NavigationVector; alignment(agent: SteeringAgent, neighbors: SteeringAgent[]): NavigationVector; cohesion(agent: SteeringAgent, neighbors: SteeringAgent[]): NavigationVector; flock(agent: SteeringAgent, neighbors: SteeringAgent[]): NavigationVector; avoidObstacles(agent: SteeringAgent, obstacles: SteeringObstacle[]): NavigationVector; applyForce(agent: SteeringAgent, force: NavigationVector, dt: number): void; private sub; private add; private scale; private mag; private dist; private normalize; private truncate; getConfig(): SteeringConfig; setConfig(config: Partial): void; } export {}; //# sourceMappingURL=SteeringBehaviors.d.ts.map