/// <summary> /// Find route from src to destination defined by IAstarTarget /// </summary> public static AStarResult Find(IAStarEnvironment environment, IntPoint3 src, DirectionSet srcPositioning, IAStarTarget target, int maxNodeCount = 200000, CancellationToken? cancellationToken = null) { var astar = new AStarImpl(environment, src, srcPositioning, target, maxNodeCount, cancellationToken); var status = astar.Find(); return new AStarResult(astar.Nodes, astar.LastNode, status); }
public static IEnumerable<AStarResult> FindMany(IAStarEnvironment environment, IntPoint3 src, DirectionSet srcPositioning, IAStarTarget target, int maxNodeCount = 200000, CancellationToken? cancellationToken = null) { var astar = new AStarImpl(environment, src, srcPositioning, target, maxNodeCount, cancellationToken); AStarStatus status; while ((status = astar.Find()) == AStarStatus.Found) yield return new AStarResult(astar.Nodes, astar.LastNode, status); }