pathfinding3d.finder.finder module
- exception pathfinding3d.finder.finder.ExecutionTimeException(message)[source]
Bases:
Exception
- args
- with_traceback()
Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.
- exception pathfinding3d.finder.finder.ExecutionRunsException(message)[source]
Bases:
Exception
- args
- with_traceback()
Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.
- class pathfinding3d.finder.finder.Finder(heuristic=None, weight=1, diagonal_movement=DiagonalMovement.never, weighted=True, time_limit=TIME_LIMIT, max_runs=MAX_RUNS)[source]
Bases:
object
- Parameters:
- __init__(heuristic=None, weight=1, diagonal_movement=DiagonalMovement.never, weighted=True, time_limit=TIME_LIMIT, max_runs=MAX_RUNS)[source]
Find shortest path
- Parameters:
heuristic (Callable) – heuristic used to calculate distance of 2 points
weight (int) – weight for the edges
diagonal_movement (int) – if diagonal movement is allowed (see enum in diagonal_movement)
weighted (the algorithm supports weighted nodes) – (should be True for A* and Dijkstra)
time_limit (float) – max. runtime in seconds
max_runs (int) – max. amount of tries until we abort the search (optional, only if we enter huge grids and have time constrains) <=0 means there are no constrains and the code might run on any large map.
- find_neighbors(grid, node, diagonal_movement=None)[source]
Find neighbor, same for Djikstra, A*, Bi-A*, IDA*
- keep_running()[source]
Check, if we run into time or iteration constrains.
- Raises:
ExecutionTimeException – if we run into a time constrain
ExecutionRunsException – if we run into a iteration constrain
- process_node(grid, node, parent, end, open_list, open_value=1)[source]
We check if the given node is part of the path by calculating its cost and add or remove it from our path
- Parameters:
grid (Grid) – grid that stores all possible steps/tiles as 3D-list
node (GridNode) – the node we like to test (the neighbor in A* or jump-node in JumpPointSearch)
parent (GridNode) – the parent node (of the current node we like to test)
end (GridNode) – the end point to calculate the cost of the path
open_list (List) – the list that keeps track of our current path
open_value (bool) – needed if we like to set the open list to something else than True (used for bi-directional algorithms)
- check_neighbors(start, end, grid, open_list, open_value=1, backtrace_by=None)[source]
find next path segment based on given node (or return path if we found the end)