/// <summary> /// Нахождение кратчайшего пути между двумя вершинами в графе по КООРДИНАТАМ в пространстве /// </summary> /// <param name="point">Координаты стартовой точки</param> /// <param name="xpoint">Координаты конечной точки</param> /// <returns>Возвращает список включающий себя список ребер из которых строится маршут из node_start к node_finish, при невозможности его построения - Null</returns> public ResultRoute MakeRouteResult_byNodesCoordinates(IPoint point, IPoint xpoint) { if (point == null) { throw new ArgumentNullException(nameof(point)); } if (xpoint == null) { throw new ArgumentNullException(nameof(xpoint)); } var start_mitm = SqrEdgesSearch.Find(point); var finish_mitm = SqrEdgesSearch.Find(xpoint); Path route = null; if (!start_mitm.Point_To.Equals(finish_mitm.Point_To)) { route = MakePath_byNodesCoordinates(start_mitm.StartPath, finish_mitm.FinishPath); return(new ResultRoute(route, start_mitm, finish_mitm)); } else { return(new ResultRoute(null, start_mitm, finish_mitm)); } }
/// <summary> /// Поиск ближайшего к Point ребра в графе /// </summary> /// <param name="point"></param> /// <returns></returns> public DropOnEdge FindNearEdge(IPoint point) { return(SqrEdgesSearch.Find(point)); }