UNPKG

soonspacejs

Version:
69 lines (68 loc) 3.48 kB
import DefaultManage from './DefaultManage'; import { Group, GroupInfo, Topology, Node, TopologyInfo } from '../Library'; import { TopologyInfoForGml, ShortestPathInfo, ShortestPathByMultipleStartPoints, ShortestPathByMultipleEndPoints, TopologyNodeInfo, TopologyInnerNodeInfo, Position, TopologyPassableInfo } from '../Interface'; import Viewport from '../Viewport'; import { Dijkstras } from '../Math/dijkstra'; import { DijkstraWorker } from '../Math/dijkstra/DijkstraWorker'; import { ObjectsCache } from '../Cache'; declare class TopologyManage extends DefaultManage { readonly viewport: Viewport; readonly cache: ObjectsCache; dijkstra: Dijkstras; dijkstraWorker: DijkstraWorker; constructor(viewport: Viewport, cache: ObjectsCache); createFromGml(topologyInfoForGml: TopologyInfoForGml): Promise<Topology>; create(topologyInfo: TopologyInfo): Topology; /** * 设置路径 passable */ setPassable(topology: Topology, info: TopologyPassableInfo[]): void; resetNodes(topology: Topology, nodes: TopologyNodeInfo[]): Topology; createToGroup(groupInfo: GroupInfo, topologyInfos: TopologyInfo[]): Group; addForGroup(group: Group | null, topologyInfos: TopologyInfo[]): Group | null; /** * 计算路径 * @param topology * @param info * @returns */ protected _getPath(topology: Topology, info: Pick<ShortestPathInfo, 'start' | 'end'>): Node[] | null; /** * @todo getPath 重复代码优化 */ protected _getPathAsync(topology: Topology, info: Pick<ShortestPathInfo, 'start' | 'end'>): Promise<Node[] | null>; protected _generateNodesInfo(nodes: Node[]): TopologyInnerNodeInfo[]; /** * 根据两点获取最短路径 * @param topology * @param info * @returns */ getShortestPath(topology: Topology, info: ShortestPathInfo): Topology | null; /** * @todo getShortestPathAsync 重复代码优化 */ getShortestPathAsync(topology: Topology, info: ShortestPathInfo): Promise<Topology | null>; /** * 多起点或多终点最短路径 * @param topology * @param info * @param points * @param point * @param pointsType * @returns */ protected _getShortestPathByMultiplePoints(topology: Topology, info: ShortestPathByMultipleStartPoints | ShortestPathByMultipleEndPoints, points: Position[], point: Position, pointsType: 'start' | 'end'): Topology | null; /** * @todo getShortestPathByMultiplePointsAsync 重复代码优化 */ protected _getShortestPathByMultiplePointsAsync(topology: Topology, info: ShortestPathByMultipleStartPoints | ShortestPathByMultipleEndPoints, points: Position[], point: Position, pointsType: 'start' | 'end'): Promise<Topology | null>; getShortestPathByMultipleStartPoints(topology: Topology, info: ShortestPathByMultipleStartPoints): Topology | null; getShortestPathByMultipleEndPoints(topology: Topology, info: ShortestPathByMultipleEndPoints): Topology | null; getShortestPathByMultipleStartPointsAsync(topology: Topology, info: ShortestPathByMultipleStartPoints): Promise<Topology | null>; getShortestPathByMultipleEndPointsAsync(topology: Topology, info: ShortestPathByMultipleEndPoints): Promise<Topology | null>; private setDijkstraGraph; private generateLineTopologyInfoNodeGraphs; dispose(): void; } export default TopologyManage;