@esengine/pathfinding
Version:
寻路系统 | Pathfinding System - A*, Grid, NavMesh
54 lines (50 loc) • 2.48 kB
TypeScript
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 };