/** * @private Steering Behaviors * */ import { type Poly } from "../math/polygon"; import { type Rect } from "../math/rect"; import { type Vec2 } from "../math/vec2"; import type { Agent, Boundary, Obstacle, Penetration, SteeringBehavior } from "./steer"; export declare class BoundaryAvoidance implements SteeringBehavior { bounds: Rect; margin: number; strength: number; weight: number; constructor(weight: number, bounds: Rect, margin: number, strength: number); compute(agent: Agent): Vec2; } export declare class SeparationBehavior implements SteeringBehavior { neighbors: () => Vec2[]; desiredSeparation: number; weight: number; constructor(neighbors: () => Vec2[], desiredSeparation: number, weight?: number); compute(body: Agent): Vec2; } export declare class ConvexPolygonBoundary implements Boundary { poly: Poly; constructor(poly: Poly); penetration(p: Vec2): Penetration; } export declare class ObstacleAvoidance implements SteeringBehavior { weight: number; obstacles: () => Obstacle[]; lookAhead: number; constructor(weight: number, obstacles: () => Obstacle[], lookAhead?: number); compute(agent: Agent): Vec2; } export type Path = Poly; export declare class PathFollow implements SteeringBehavior { weight: number; speedFactor: number; path: Path; lookAhead: number; arriveRadius: number; private segmentIndex; constructor(weight: number, speedFactor: number, path: Path, lookAhead?: number, arriveRadius?: number); compute(agent: Agent): Vec2; } export declare class CorridorFollow implements SteeringBehavior { path: Path; weight: number; corridorRadius: number; stiffness: number; private segmentIndex; constructor(weight: number, path: Path, corridorRadius?: number, stiffness?: number); compute(agent: Agent): Vec2; } //# sourceMappingURL=steer2.d.ts.map