UNPKG

@esengine/pathfinding

Version:

寻路系统 | Pathfinding System - A*, Grid, NavMesh

54 lines (50 loc) 2.48 kB
import { m as IObstacleVertex, b as IObstacle } from './CollisionResolver-CSgWsegP.js'; export { C as CollisionResolver, j as DEFAULT_AGENT_PARAMS, k as DEFAULT_COLLISION_CONFIG, D as DEFAULT_ORCA_CONFIG, E as EMPTY_COLLISION, a as IAvoidanceAgent, i as ICollisionResolverConfig, h as ICollisionResult, f as INeighborResult, I as IORCALine, d as IORCAResult, e as IORCASolver, c as IORCASolverConfig, g as ISpatialIndex, l as createCollisionResolver } from './CollisionResolver-CSgWsegP.js'; export { K as KDTree, O as ORCASolver, a as createKDTree, c as createORCASolver, l as linearProgram2, b as linearProgram3, s as solveORCALinearProgram } from './KDTree-BRpn7O8K.js'; import { IVector2 } from '@esengine/ecs-framework-math'; export { IVector2 } from '@esengine/ecs-framework-math'; /** * @zh 障碍物构建器 * @en Obstacle Builder */ /** * @zh 从顶点数组创建障碍物链表 * @en Create obstacle linked list from vertex array * * @param vertices - @zh 顶点数组(CCW 顺序)@en Vertex array (CCW order) * @param startId - @zh 起始顶点 ID @en Starting vertex ID */ declare function createObstacleVertices(vertices: readonly IVector2[], startId?: number): IObstacleVertex[]; /** * @zh 构建障碍物顶点的选项 * @en Options for building obstacle vertices */ interface IBuildObstacleOptions { /** * @zh 是否使用 Y 轴向下的坐标系(如 Canvas/屏幕坐标) * @en Whether using Y-axis down coordinate system (like Canvas/screen coords) * * @zh 这会影响障碍物顶点顺序的判断 * @en This affects obstacle vertex order detection * * @default false */ yAxisDown?: boolean; } /** * @zh 从障碍物数组创建所有障碍物顶点 * @en Create all obstacle vertices from obstacle array * * @zh 自动检测并纠正顶点顺序为 CCW(逆时针) * @en Automatically detects and corrects vertex order to CCW (counter-clockwise) * * @param obstacles - @zh 障碍物数组 @en Array of obstacles * @param options - @zh 构建选项 @en Build options */ declare function buildObstacleVertices(obstacles: readonly IObstacle[], options?: IBuildObstacleOptions): IObstacleVertex[]; /** * @zh 确保顶点按逆时针顺序排列 * @en Ensure vertices are in counter-clockwise order */ declare function ensureCCW(vertices: IVector2[], yAxisDown?: boolean): IVector2[]; export { IObstacle, IObstacleVertex, buildObstacleVertices, createObstacleVertices, ensureCCW };