navmesh
Version:
A library for fast pathfinding using navigation meshes in JS
51 lines (43 loc) • 1.17 kB
TypeScript
// Modified DefinitelyTyped definitions for javascript-astar. The original ones did not play nicely
// with importing it as a module.
declare module "javascript-astar" {
interface GridNode {
x: number;
y: number;
weight: number;
toString(): string;
getCost(node: GridNode): number;
isWall(): boolean;
}
interface PointLike {
x: number;
y: number;
}
interface Heuristic {
(pos0: any, pos1: any): number;
}
export class Graph<NodeType extends GridNode> {
grid: Array<Array<NodeType>>;
constructor(grid: Array<Array<number>>, options?: { diagonal?: boolean });
init(): void;
cleanDirty(): void;
markDirty(): void;
neighbors(node: NodeType): NodeType[];
toString(): string;
}
export namespace astar {
function search<NodeType>(
graph: Graph<NodeType>,
start: { x: number; y: number },
end: { x: number; y: number },
options?: {
closest?: boolean;
heuristic?: Heuristic;
}
): Array<NodeType>;
var heuristics: {
manhattan: Heuristic;
diagonal: Heuristic;
};
}
}