Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        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);
        }