diff --git a/.buildinfo b/.buildinfo index e486315..f3fadba 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 05ccd148a58c33ac0e0a5411ba9a6286 +config: 710cf036416f692d6f7dc18c81dcb327 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle index 54dde40..7d8d068 100644 Binary files a/.doctrees/environment.pickle and b/.doctrees/environment.pickle differ diff --git a/.doctrees/pathfinding3d.core.doctree b/.doctrees/pathfinding3d.core.doctree index b577908..5bdf88f 100644 Binary files a/.doctrees/pathfinding3d.core.doctree and b/.doctrees/pathfinding3d.core.doctree differ diff --git a/.doctrees/pathfinding3d.finder.doctree b/.doctrees/pathfinding3d.finder.doctree index a0ebf4c..4311c78 100644 Binary files a/.doctrees/pathfinding3d.finder.doctree and b/.doctrees/pathfinding3d.finder.doctree differ diff --git a/404.html b/404.html index 32285fa..5628055 100644 --- a/404.html +++ b/404.html @@ -3,7 +3,7 @@ - Page not found — pathfinding3d 0.2 documentation + Page not found — pathfinding3d 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -37,7 +37,7 @@ pathfinding3d
- 0.2 + 0.3
diff --git a/_modules/index.html b/_modules/index.html index 56adea2..7fd3620 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -3,7 +3,7 @@ - Overview: module code — pathfinding3d 0.2 documentation + Overview: module code — pathfinding3d 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -37,7 +37,7 @@ pathfinding3d
- 0.2 + 0.3
diff --git a/_modules/pathfinding3d/core/diagonal_movement.html b/_modules/pathfinding3d/core/diagonal_movement.html index a839a4c..810efbd 100644 --- a/_modules/pathfinding3d/core/diagonal_movement.html +++ b/_modules/pathfinding3d/core/diagonal_movement.html @@ -3,7 +3,7 @@ - pathfinding3d.core.diagonal_movement — pathfinding3d 0.2 documentation + pathfinding3d.core.diagonal_movement — pathfinding3d 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -37,7 +37,7 @@ pathfinding3d
- 0.2 + 0.3
diff --git a/_modules/pathfinding3d/core/grid.html b/_modules/pathfinding3d/core/grid.html index fd6a6d3..ca349a8 100644 --- a/_modules/pathfinding3d/core/grid.html +++ b/_modules/pathfinding3d/core/grid.html @@ -3,7 +3,7 @@ - pathfinding3d.core.grid — pathfinding3d 0.2 documentation + pathfinding3d.core.grid — pathfinding3d 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -37,7 +37,7 @@ pathfinding3d
- 0.2 + 0.3
@@ -89,7 +89,7 @@

Source code for pathfinding3d.core.grid

 import math
-from typing import List
+from typing import List, Optional
 
 from .diagonal_movement import DiagonalMovement
 from .node import GridNode
@@ -103,7 +103,12 @@ 

Source code for pathfinding3d.core.grid

 
 
 
[docs]def build_nodes( - width: int, height: int, depth: int, matrix: List = None, inverse: bool = False, grid_id: int = None + width: int, + height: int, + depth: int, + matrix: Optional[List] = None, + inverse: bool = False, + grid_id: Optional[int] = None, ) -> List[List[List[GridNode]]]: """ Create nodes according to grid size. If a matrix is given it @@ -132,7 +137,7 @@

Source code for pathfinding3d.core.grid

     list
         A list of list of lists containing the nodes in the grid.
     """
-    nodes = []
+    nodes: List = []
     use_matrix = (isinstance(matrix, (tuple, list))) or (
         USE_NUMPY and isinstance(matrix, np.ndarray) and matrix.size > 0
     )
@@ -151,7 +156,11 @@ 

Source code for pathfinding3d.core.grid

                 weight = int(matrix[x][y][z]) if use_matrix else 1
                 walkable = weight <= 0 if inverse else weight >= 1
 
-                nodes[x][y].append(GridNode(x=x, y=y, z=z, walkable=walkable, weight=weight, grid_id=grid_id))
+                nodes[x][y].append(
+                    GridNode(
+                        x=x, y=y, z=z, walkable=walkable, weight=weight, grid_id=grid_id
+                    )
+                )
     return nodes
@@ -161,8 +170,8 @@

Source code for pathfinding3d.core.grid

         width: int = 0,
         height: int = 0,
         depth: int = 0,
-        matrix: List = None,
-        grid_id: int = None,
+        matrix: Optional[List] = None,
+        grid_id: Optional[int] = None,
         inverse: bool = False,
     ):
         """
@@ -187,16 +196,20 @@ 

Source code for pathfinding3d.core.grid

         self.width = width
         self.height = height
         self.depth = depth
-        if isinstance(matrix, (tuple, list)) or (USE_NUMPY and isinstance(matrix, np.ndarray) and (matrix.size > 0)):
+        if isinstance(matrix, (tuple, list)) or (
+            USE_NUMPY and isinstance(matrix, np.ndarray) and (matrix.size > 0)
+        ):
             self.width = len(matrix)
             self.height = len(matrix[0]) if self.width > 0 else 0
             self.depth = len(matrix[0][0]) if self.height > 0 else 0
         if self.width > 0 and self.height > 0 and self.depth > 0:
-            self.nodes = build_nodes(self.width, self.height, self.depth, matrix, inverse, grid_id)
+            self.nodes = build_nodes(
+                self.width, self.height, self.depth, matrix, inverse, grid_id
+            )
         else:
             self.nodes = [[[]]]
-
[docs] def node(self, x: int, y: int, z: int) -> GridNode: +
[docs] def node(self, x: int, y: int, z: int) -> Optional[GridNode]: """ Get node at position @@ -256,7 +269,9 @@

Source code for pathfinding3d.core.grid

         """
         return self.inside(x, y, z) and self.nodes[x][y][z].walkable
-
[docs] def calc_cost(self, node_a: GridNode, node_b: GridNode, weighted: bool = False) -> float: +
[docs] def calc_cost( + self, node_a: GridNode, node_b: GridNode, weighted: bool = False + ) -> float: """ Get the distance between current node and the neighbor (cost) @@ -287,7 +302,11 @@

Source code for pathfinding3d.core.grid

 
         return node_a.g + ng
-
[docs] def neighbors(self, node: GridNode, diagonal_movement: DiagonalMovement = DiagonalMovement.never) -> List[GridNode]: +
[docs] def neighbors( + self, + node: GridNode, + diagonal_movement: int = DiagonalMovement.never, + ) -> List[GridNode]: """ Get all neighbors of one node @@ -295,6 +314,9 @@

Source code for pathfinding3d.core.grid

         ----------
         node : GridNode
             node to get neighbors from
+        diagonal_movement : int, optional
+            if diagonal movement is allowed
+            (see enum in diagonal_movement), by default DiagonalMovement.never
 
         Returns
         -------
diff --git a/_modules/pathfinding3d/core/heuristic.html b/_modules/pathfinding3d/core/heuristic.html
index 57492b9..d3edd26 100644
--- a/_modules/pathfinding3d/core/heuristic.html
+++ b/_modules/pathfinding3d/core/heuristic.html
@@ -3,7 +3,7 @@
 
   
   
-  pathfinding3d.core.heuristic — pathfinding3d 0.2 documentation
+  pathfinding3d.core.heuristic — pathfinding3d 0.3 documentation
       
       
       
@@ -14,7 +14,7 @@
   
         
         
-        
+        
         
         
         
@@ -37,7 +37,7 @@
             pathfinding3d
           
               
- 0.2 + 0.3
@@ -118,7 +118,9 @@

Source code for pathfinding3d.core.heuristic

return 0.0
-
[docs]def manhattan(dx: Union[int, float], dy: Union[int, float], dz: Union[int, float]) -> float: +
[docs]def manhattan( + dx: Union[int, float], dy: Union[int, float], dz: Union[int, float] +) -> float: """Manhattan heuristics Parameters @@ -138,7 +140,9 @@

Source code for pathfinding3d.core.heuristic

return dx + dy + dz
-
[docs]def euclidean(dx: Union[int, float], dy: Union[int, float], dz: Union[int, float]) -> float: +
[docs]def euclidean( + dx: Union[int, float], dy: Union[int, float], dz: Union[int, float] +) -> float: """Euclidean distance heuristics Parameters @@ -158,7 +162,9 @@

Source code for pathfinding3d.core.heuristic

return math.sqrt(dx * dx + dy * dy + dz * dz)
-
[docs]def chebyshev(dx: Union[int, float], dy: Union[int, float], dz: Union[int, float]) -> float: +
[docs]def chebyshev( + dx: Union[int, float], dy: Union[int, float], dz: Union[int, float] +) -> float: """Chebyshev distance. Parameters @@ -178,7 +184,9 @@

Source code for pathfinding3d.core.heuristic

return max(dx, dy, dz)
-
[docs]def octile(dx: Union[int, float], dy: Union[int, float], dz: Union[int, float]) -> float: +
[docs]def octile( + dx: Union[int, float], dy: Union[int, float], dz: Union[int, float] +) -> float: """Octile distance. Parameters diff --git a/_modules/pathfinding3d/core/node.html b/_modules/pathfinding3d/core/node.html index 78ff35f..b4c8ee2 100644 --- a/_modules/pathfinding3d/core/node.html +++ b/_modules/pathfinding3d/core/node.html @@ -3,7 +3,7 @@ - pathfinding3d.core.node — pathfinding3d 0.2 documentation + pathfinding3d.core.node — pathfinding3d 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -37,7 +37,7 @@ pathfinding3d
- 0.2 + 0.3
@@ -89,6 +89,7 @@

Source code for pathfinding3d.core.node

 import dataclasses
+from typing import List, Optional
 
 
 
[docs]@dataclasses.dataclass @@ -148,9 +149,9 @@

Source code for pathfinding3d.core.node

     # normally we just count our grids by number
     # but you can also use a string here.
     # Set it to None if you only have one grid.
-    grid_id: int = None
+    grid_id: Optional[int] = None
 
-    connections: list = None
+    connections: Optional[List] = None
 
     def __iter__(self):
         yield self.x
diff --git a/_modules/pathfinding3d/core/util.html b/_modules/pathfinding3d/core/util.html
index f8cf744..a6d5702 100644
--- a/_modules/pathfinding3d/core/util.html
+++ b/_modules/pathfinding3d/core/util.html
@@ -3,7 +3,7 @@
 
   
   
-  pathfinding3d.core.util — pathfinding3d 0.2 documentation
+  pathfinding3d.core.util — pathfinding3d 0.3 documentation
       
       
       
@@ -14,7 +14,7 @@
   
         
         
-        
+        
         
         
         
@@ -37,7 +37,7 @@
             pathfinding3d
           
               
- 0.2 + 0.3
@@ -93,7 +93,7 @@

Source code for pathfinding3d.core.util

 from typing import List, Tuple
 
 from .grid import Grid
-from .node import Node
+from .node import GridNode
 
 # square root of 2 for diagonal distance
 SQRT2 = math.sqrt(2)
@@ -103,19 +103,19 @@ 

Source code for pathfinding3d.core.util

 Coords = Tuple[float, float, float]
 
 
-
[docs]def backtrace(node: Node) -> List[Node]: +
[docs]def backtrace(node: GridNode) -> List[GridNode]: """ Backtrace according to the parent records and return the path. (including both start and end nodes) Parameters ---------- - node : Node + node : GridNode node to backtrace from Returns ------- - List[Node] + List[GridNode] path """ path = [node] @@ -126,21 +126,21 @@

Source code for pathfinding3d.core.util

     return path
-
[docs]def bi_backtrace(node_a: Node, node_b: Node) -> List[Node]: +
[docs]def bi_backtrace(node_a: GridNode, node_b: GridNode) -> List[GridNode]: """ Backtrace from start and end node, returns the path for bi-directional A* (including both start and end nodes) Parameters ---------- - node_a : Node + node_a : GridNode start node - node_b : Node + node_b : GridNode end node Returns ------- - List[Node] + List[GridNode] path """ path_a = backtrace(node_a) @@ -149,7 +149,7 @@

Source code for pathfinding3d.core.util

     return path_a + path_b
-
[docs]def raytrace(coords_a: Coords, coords_b: Coords) -> List[Coords]: +
[docs]def raytrace(coords_a: Coords, coords_b: Coords) -> List[List[float]]: """ Given the start and end coordinates, return all the coordinates lying on the line formed by these coordinates, based on ray tracing. @@ -163,7 +163,7 @@

Source code for pathfinding3d.core.util

 
     Returns
     -------
-    List[Coords]
+    List[List[float]]
         list of coordinates
     """
     line = []
@@ -195,9 +195,15 @@ 

Source code for pathfinding3d.core.util

     while t <= 1.0:
         line.append(copy.copy(grid_pos))
         index = None
-        if t_for_next_border[0] <= t_for_next_border[1] and t_for_next_border[0] <= t_for_next_border[2]:
+        if (
+            t_for_next_border[0] <= t_for_next_border[1]
+            and t_for_next_border[0] <= t_for_next_border[2]
+        ):
             index = 0
-        elif t_for_next_border[1] <= t_for_next_border[2] and t_for_next_border[1] <= t_for_next_border[0]:
+        elif (
+            t_for_next_border[1] <= t_for_next_border[2]
+            and t_for_next_border[1] <= t_for_next_border[0]
+        ):
             index = 1
         else:
             index = 2
@@ -208,7 +214,7 @@ 

Source code for pathfinding3d.core.util

     return line
-
[docs]def bresenham(coords_a: Coords, coords_b: Coords) -> List[Coords]: +
[docs]def bresenham(coords_a: Coords, coords_b: Coords) -> List[List[float]]: """ Given the start and end coordinates, return all the coordinates lying on the line formed by these coordinates, based on Bresenham's algorithm. @@ -222,7 +228,7 @@

Source code for pathfinding3d.core.util

 
     Returns
     -------
-    List[Coords]
+    List[List[float]]
         list of coordinates
     """
     line = []
@@ -301,7 +307,7 @@ 

Source code for pathfinding3d.core.util

     List[Coords]
         expanded path
     """
-    expanded = []
+    expanded: List[Coords] = []
     if len(path) < 2:
         return expanded
     for i in range(len(path) - 1):
@@ -310,7 +316,9 @@ 

Source code for pathfinding3d.core.util

     return expanded
-
[docs]def smoothen_path(grid: Grid, path: List[Coords], use_raytrace: bool = False) -> List[Coords]: +
[docs]def smoothen_path( + grid: Grid, path: List[Coords], use_raytrace: bool = False +) -> List[List[float]]: """ Given an uncompressed path, return a new path that has less turnings and looks more natural. @@ -326,7 +334,7 @@

Source code for pathfinding3d.core.util

 
     Returns
     -------
-    List[Coords]
+    List[List[float]]
         smoothened path
     """
     sx, sy, sz = path[0]
@@ -338,7 +346,9 @@ 

Source code for pathfinding3d.core.util

         line = interpolate((sx, sy, sz), coord)
         blocked = False
         for test_coord in line[1:]:
-            if not grid.walkable(test_coord[0], test_coord[1], test_coord[2]):
+            if not grid.walkable(
+                int(test_coord[0]), int(test_coord[1]), int(test_coord[2])
+            ):
                 blocked = True
                 break
         if not blocked:
diff --git a/_modules/pathfinding3d/core/world.html b/_modules/pathfinding3d/core/world.html
index 5eb9a8a..bdd12a8 100644
--- a/_modules/pathfinding3d/core/world.html
+++ b/_modules/pathfinding3d/core/world.html
@@ -3,7 +3,7 @@
 
   
   
-  pathfinding3d.core.world — pathfinding3d 0.2 documentation
+  pathfinding3d.core.world — pathfinding3d 0.3 documentation
       
       
       
@@ -14,7 +14,7 @@
   
         
         
-        
+        
         
         
         
@@ -37,7 +37,7 @@
             pathfinding3d
           
               
- 0.2 + 0.3
@@ -90,9 +90,8 @@

Source code for pathfinding3d.core.world

 from typing import Dict, List
 
-from .diagonal_movement import DiagonalMovement
 from .grid import Grid
-from .node import Node
+from .node import GridNode
 
 
 # a world connects grids but can have multiple grids.
@@ -100,32 +99,39 @@ 

Source code for pathfinding3d.core.world

 
[docs] def __init__(self, grids: Dict[int, Grid]): self.grids = grids
-
[docs] def neighbors(self, node: Node, diagonal_movement: DiagonalMovement) -> List[Node]: +
[docs] def neighbors(self, node: GridNode, diagonal_movement: int) -> List[GridNode]: """ Get neighbors of the given node. Parameters ---------- - node : Node + node : GridNode node to get neighbors from + diagonal_movement : int + if diagonal movement is allowed + (see enum in diagonal_movement) Returns ------- - List[Node] + List[GridNode] neighbors of the given node """ - return self.grids[node.grid_id].neighbors(node, diagonal_movement=diagonal_movement)
+ return self.grids[node.grid_id].neighbors( + node, diagonal_movement=diagonal_movement + )
-
[docs] def calc_cost(self, node_a: Node, node_b: Node, weighted: bool = False) -> float: +
[docs] def calc_cost( + self, node_a: GridNode, node_b: GridNode, weighted: bool = False + ) -> float: """ Calculate the cost between two nodes. Parameters ---------- - node_a : Node + node_a : GridNode first node - node_b : Node + node_b : GridNode second node weighted : bool wether to use weights or not diff --git a/_modules/pathfinding3d/finder/a_star.html b/_modules/pathfinding3d/finder/a_star.html index 90649de..8f5d7bd 100644 --- a/_modules/pathfinding3d/finder/a_star.html +++ b/_modules/pathfinding3d/finder/a_star.html @@ -3,7 +3,7 @@ - pathfinding3d.finder.a_star — pathfinding3d 0.2 documentation + pathfinding3d.finder.a_star — pathfinding3d 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -37,7 +37,7 @@ pathfinding3d
- 0.2 + 0.3
@@ -89,12 +89,12 @@

Source code for pathfinding3d.finder.a_star

 import heapq  # used for the so colled "open list" that stores known nodes
-from typing import Callable, List, Optional, Union
+from typing import Callable, List, Optional, Tuple, Union
 
 from ..core.diagonal_movement import DiagonalMovement
 from ..core.grid import Grid
 from ..core.heuristic import manhattan, octile
-from ..core.node import Node
+from ..core.node import GridNode
 from ..core.util import backtrace, bi_backtrace
 from .finder import BY_END, MAX_RUNS, TIME_LIMIT, Finder
 
@@ -104,9 +104,9 @@ 

Source code for pathfinding3d.finder.a_star

         self,
         heuristic: Optional[Callable] = None,
         weight: int = 1,
-        diagonal_movement: DiagonalMovement = DiagonalMovement.never,
+        diagonal_movement: int = DiagonalMovement.never,
         time_limit: float = TIME_LIMIT,
-        max_runs: int = MAX_RUNS,
+        max_runs: Union[int, float] = MAX_RUNS,
     ):
         """
         Find shortest path using A* algorithm
@@ -117,7 +117,7 @@ 

Source code for pathfinding3d.finder.a_star

             heuristic used to calculate distance of 2 points
         weight : int
             weight for the edges
-        diagonal_movement : DiagonalMovement
+        diagonal_movement : int
             if diagonal movement is allowed
             (see enum in diagonal_movement)
         time_limit : float
@@ -146,17 +146,23 @@ 

Source code for pathfinding3d.finder.a_star

                 self.heuristic = octile
[docs] def check_neighbors( - self, start: Node, end: Node, grid: Grid, open_list: List, open_value: bool = True, backtrace_by=None - ) -> Optional[List[Node]]: + self, + start: GridNode, + end: GridNode, + grid: Grid, + open_list: List, + open_value: int = 1, + backtrace_by=None, + ) -> Optional[List[GridNode]]: """ Find next path segment based on given node (or return path if we found the end) Parameters ---------- - start : Node + start : GridNode start node - end : Node + end : GridNode end node grid : Grid grid that stores all possible steps/tiles as 3D-list @@ -165,7 +171,7 @@

Source code for pathfinding3d.finder.a_star

 
         Returns
         -------
-        Optional[List[Node]]
+        Optional[List[GridNode]]
             path
         """
 
@@ -200,22 +206,22 @@ 

Source code for pathfinding3d.finder.a_star

         # the end has not been reached (yet) keep the find_path loop running
         return None
-
[docs] def find_path(self, start: Node, end: Node, grid: Grid) -> Optional[Union[List[Node], int]]: +
[docs] def find_path(self, start: GridNode, end: GridNode, grid: Grid) -> Tuple[List, int]: """ Find a path from start to end node on grid using the A* algorithm Parameters ---------- - start : Node + start : GridNode start node - end : Node + end : GridNode end node grid : Grid grid that stores all possible steps/tiles as 3D-list Returns ------- - Optional[Union[List[Node], int]] + Tuple[List, int] path, number of iterations """ diff --git a/_modules/pathfinding3d/finder/best_first.html b/_modules/pathfinding3d/finder/best_first.html index b91f015..44fd724 100644 --- a/_modules/pathfinding3d/finder/best_first.html +++ b/_modules/pathfinding3d/finder/best_first.html @@ -3,7 +3,7 @@ - pathfinding3d.finder.best_first — pathfinding3d 0.2 documentation + pathfinding3d.finder.best_first — pathfinding3d 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -37,7 +37,7 @@ pathfinding3d
- 0.2 + 0.3
@@ -88,10 +88,10 @@

Source code for pathfinding3d.finder.best_first

-from typing import Callable, Optional
+from typing import Callable, Optional, Union
 
 from ..core.diagonal_movement import DiagonalMovement
-from ..core.node import Node
+from ..core.node import GridNode
 from .a_star import MAX_RUNS, TIME_LIMIT, AStarFinder
 
 
@@ -104,9 +104,9 @@ 

Source code for pathfinding3d.finder.best_first

< self, heuristic: Optional[Callable] = None, weight: int = 1, - diagonal_movement: DiagonalMovement = DiagonalMovement.never, + diagonal_movement: int = DiagonalMovement.never, time_limit: float = TIME_LIMIT, - max_runs: int = MAX_RUNS, + max_runs: Union[int, float] = MAX_RUNS, ): """ Find shortest path using BestFirst algorithm @@ -117,7 +117,7 @@

Source code for pathfinding3d.finder.best_first

< heuristic used to calculate distance of 2 points weight : int weight for the edges - diagonal_movement : DiagonalMovement + diagonal_movement : int if diagonal movement is allowed (see enum in diagonal_movement) time_limit : float @@ -138,15 +138,17 @@

Source code for pathfinding3d.finder.best_first

< self.weighted = False
-
[docs] def apply_heuristic(self, node_a: Node, node_b: Node, heuristic: Optional[Callable] = None) -> float: +
[docs] def apply_heuristic( + self, node_a: GridNode, node_b: GridNode, heuristic: Optional[Callable] = None + ) -> float: """ Helper function to apply heuristic Parameters ---------- - node_a : Node + node_a : GridNode first node - node_b : Node + node_b : GridNode second node heuristic : Callable heuristic used to calculate distance of 2 points diff --git a/_modules/pathfinding3d/finder/bi_a_star.html b/_modules/pathfinding3d/finder/bi_a_star.html index c44b6e3..6273088 100644 --- a/_modules/pathfinding3d/finder/bi_a_star.html +++ b/_modules/pathfinding3d/finder/bi_a_star.html @@ -3,7 +3,7 @@ - pathfinding3d.finder.bi_a_star — pathfinding3d 0.2 documentation + pathfinding3d.finder.bi_a_star — pathfinding3d 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -37,7 +37,7 @@ pathfinding3d
- 0.2 + 0.3
@@ -89,11 +89,11 @@

Source code for pathfinding3d.finder.bi_a_star

 import time
-from typing import Callable, List, Optional, Union
+from typing import Callable, List, Optional, Tuple, Union
 
 from ..core.diagonal_movement import DiagonalMovement
 from ..core.grid import Grid
-from ..core.node import Node
+from ..core.node import GridNode
 from .a_star import AStarFinder
 from .finder import BY_END, BY_START, MAX_RUNS, TIME_LIMIT
 
@@ -107,9 +107,9 @@ 

Source code for pathfinding3d.finder.bi_a_star

self, heuristic: Optional[Callable] = None, weight: int = 1, - diagonal_movement: DiagonalMovement = DiagonalMovement.never, + diagonal_movement: int = DiagonalMovement.never, time_limit: float = TIME_LIMIT, - max_runs: int = MAX_RUNS, + max_runs: Union[int, float] = MAX_RUNS, ): """ Find shortest path using Bi-A* algorithm @@ -120,7 +120,7 @@

Source code for pathfinding3d.finder.bi_a_star

heuristic used to calculate distance of 2 points weight : int weight for the edges - diagonal_movement : DiagonalMovement + diagonal_movement : int if diagonal movement is allowed (see enum in diagonal_movement) time_limit : float @@ -141,15 +141,15 @@

Source code for pathfinding3d.finder.bi_a_star

self.weighted = False

-
[docs] def find_path(self, start: Node, end: Node, grid: Grid) -> Optional[Union[List[Node], int]]: +
[docs] def find_path(self, start: GridNode, end: GridNode, grid: Grid) -> Tuple[List, int]: """ Find a path from start to end node on grid using the A* algorithm Parameters ---------- - start : Node + start : GridNode start node - end : Node + end : GridNode end node grid : Grid grid that stores all possible steps/tiles as 3D-list @@ -157,7 +157,7 @@

Source code for pathfinding3d.finder.bi_a_star

Returns ------- - Optional[Union[List[Node], int]] + Tuple[List, int] path, number of iterations """ self.start_time = time.time() # execution time limitation @@ -176,13 +176,27 @@

Source code for pathfinding3d.finder.bi_a_star

while len(start_open_list) > 0 and len(end_open_list) > 0: self.runs += 1 self.keep_running() - path = self.check_neighbors(start, end, grid, start_open_list, open_value=BY_START, backtrace_by=BY_END) + path = self.check_neighbors( + start, + end, + grid, + start_open_list, + open_value=BY_START, + backtrace_by=BY_END, + ) if path: return path, self.runs self.runs += 1 self.keep_running() - path = self.check_neighbors(end, start, grid, end_open_list, open_value=BY_END, backtrace_by=BY_START) + path = self.check_neighbors( + end, + start, + grid, + end_open_list, + open_value=BY_END, + backtrace_by=BY_START, + ) if path: return path, self.runs diff --git a/_modules/pathfinding3d/finder/breadth_first.html b/_modules/pathfinding3d/finder/breadth_first.html index e3af1a1..3961814 100644 --- a/_modules/pathfinding3d/finder/breadth_first.html +++ b/_modules/pathfinding3d/finder/breadth_first.html @@ -3,7 +3,7 @@ - pathfinding3d.finder.breadth_first — pathfinding3d 0.2 documentation + pathfinding3d.finder.breadth_first — pathfinding3d 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -37,7 +37,7 @@ pathfinding3d

- 0.2 + 0.3
@@ -88,11 +88,11 @@

Source code for pathfinding3d.finder.breadth_first

-from typing import Callable, List, Optional
+from typing import Callable, List, Optional, Union
 
 from ..core.diagonal_movement import DiagonalMovement
 from ..core.grid import Grid
-from ..core.node import Node
+from ..core.node import GridNode
 from ..core.util import backtrace
 from .finder import MAX_RUNS, TIME_LIMIT, Finder
 
@@ -102,9 +102,9 @@ 

Source code for pathfinding3d.finder.breadth_first

self, heuristic: Optional[Callable] = None, weight: int = 1, - diagonal_movement: DiagonalMovement = DiagonalMovement.never, + diagonal_movement: int = DiagonalMovement.never, time_limit: float = TIME_LIMIT, - max_runs: int = MAX_RUNS, + max_runs: Union[int, float] = MAX_RUNS, ): """ Find shortest path using Breadth First algorithm @@ -115,7 +115,7 @@

Source code for pathfinding3d.finder.breadth_first

heuristic used to calculate distance of 2 points weight : int weight for the edges - diagonal_movement : DiagonalMovement + diagonal_movement : int if diagonal movement is allowed (see enum in diagonal_movement) time_limit : float @@ -139,20 +139,20 @@

Source code for pathfinding3d.finder.breadth_first

[docs] def check_neighbors( self, - start: Node, - end: Node, + start: GridNode, + end: GridNode, grid: Grid, open_list: List, - ) -> Optional[List[Node]]: + ) -> List[GridNode]: """ Find next path segment based on given node (or return path if we found the end) Parameters ---------- - start : Node + start : GridNode start node - end : Node + end : GridNode end node grid : Grid grid that stores all possible steps/tiles as 3D-list @@ -161,7 +161,7 @@

Source code for pathfinding3d.finder.breadth_first

Returns ------- - Optional[List[Node]] + List[GridNode] path """ node = open_list.pop(0) diff --git a/_modules/pathfinding3d/finder/dijkstra.html b/_modules/pathfinding3d/finder/dijkstra.html index 377ce70..d1b752b 100644 --- a/_modules/pathfinding3d/finder/dijkstra.html +++ b/_modules/pathfinding3d/finder/dijkstra.html @@ -3,7 +3,7 @@ - pathfinding3d.finder.dijkstra — pathfinding3d 0.2 documentation + pathfinding3d.finder.dijkstra — pathfinding3d 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -37,7 +37,7 @@ pathfinding3d
- 0.2 + 0.3
@@ -88,7 +88,7 @@

Source code for pathfinding3d.finder.dijkstra

-from typing import Callable, Optional
+from typing import Callable, Optional, Union
 
 from ..core.diagonal_movement import DiagonalMovement
 from ..core.heuristic import null
@@ -100,9 +100,9 @@ 

Source code for pathfinding3d.finder.dijkstra

[docs] def __init__( self, weight: int = 1, - diagonal_movement: DiagonalMovement = DiagonalMovement.never, + diagonal_movement: int = DiagonalMovement.never, time_limit: float = TIME_LIMIT, - max_runs: int = MAX_RUNS, + max_runs: Union[int, float] = MAX_RUNS, ): """ Find shortest path using Dijkstra algorithm @@ -111,7 +111,7 @@

Source code for pathfinding3d.finder.dijkstra

---------- weight : int weight for the edges - diagonal_movement : DiagonalMovement + diagonal_movement : int if diagonal movement is allowed (see enum in diagonal_movement) time_limit : float @@ -123,10 +123,16 @@

Source code for pathfinding3d.finder.dijkstra

large map. """ super().__init__( - heuristic=null, weight=weight, diagonal_movement=diagonal_movement, time_limit=time_limit, max_runs=max_runs + heuristic=null, + weight=weight, + diagonal_movement=diagonal_movement, + time_limit=time_limit, + max_runs=max_runs, )
-
[docs] def apply_heuristic(self, node_a: Node, node_b: Node, heuristic: Optional[Callable] = None) -> float: +
[docs] def apply_heuristic( + self, node_a: Node, node_b: Node, heuristic: Optional[Callable] = None + ) -> float: """ Helper function to apply heuristic diff --git a/_modules/pathfinding3d/finder/finder.html b/_modules/pathfinding3d/finder/finder.html index 710a7ed..0d3fa29 100644 --- a/_modules/pathfinding3d/finder/finder.html +++ b/_modules/pathfinding3d/finder/finder.html @@ -3,7 +3,7 @@ - pathfinding3d.finder.finder — pathfinding3d 0.2 documentation + pathfinding3d.finder.finder — pathfinding3d 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -37,7 +37,7 @@ pathfinding3d
- 0.2 + 0.3
@@ -90,11 +90,11 @@

Source code for pathfinding3d.finder.finder

 import heapq  # used for the so colled "open list" that stores known nodes
 import time  # for time limitation
-from typing import Callable, List, Optional, Union
+from typing import Callable, List, Optional, Tuple, Union
 
 from ..core.diagonal_movement import DiagonalMovement
 from ..core.grid import Grid
-from ..core.node import Node
+from ..core.node import GridNode
 
 # max. amount of tries we iterate until we abort the search
 MAX_RUNS = float("inf")
@@ -121,10 +121,10 @@ 

Source code for pathfinding3d.finder.finder

         self,
         heuristic: Optional[Callable] = None,
         weight: int = 1,
-        diagonal_movement: DiagonalMovement = DiagonalMovement.never,
+        diagonal_movement: int = DiagonalMovement.never,
         weighted: bool = True,
         time_limit: float = TIME_LIMIT,
-        max_runs: int = MAX_RUNS,
+        max_runs: Union[int, float] = MAX_RUNS,
     ):
         """
         Find shortest path
@@ -135,7 +135,7 @@ 

Source code for pathfinding3d.finder.finder

             heuristic used to calculate distance of 2 points
         weight : int
             weight for the edges
-        diagonal_movement : DiagonalMovement
+        diagonal_movement : int
             if diagonal movement is allowed
             (see enum in diagonal_movement)
         weighted: the algorithm supports weighted nodes
@@ -159,15 +159,17 @@ 

Source code for pathfinding3d.finder.finder

         self.start_time: float
         self.runs: int
-
[docs] def apply_heuristic(self, node_a: Node, node_b: Node, heuristic: Optional[Callable] = None) -> float: +
[docs] def apply_heuristic( + self, node_a: GridNode, node_b: GridNode, heuristic: Optional[Callable] = None + ) -> float: """ Helper function to apply heuristic Parameters ---------- - node_a : Node + node_a : GridNode first node - node_b : Node + node_b : GridNode second node heuristic : Callable heuristic used to calculate distance of 2 points @@ -186,8 +188,11 @@

Source code for pathfinding3d.finder.finder

         )
[docs] def find_neighbors( - self, grid: Grid, node: Node, diagonal_movement: Optional[DiagonalMovement] = None - ) -> List[Node]: + self, + grid: Grid, + node: GridNode, + diagonal_movement: Optional[int] = None, + ) -> List[GridNode]: """ Find neighbor, same for Djikstra, A*, Bi-A*, IDA* @@ -195,30 +200,25 @@

Source code for pathfinding3d.finder.finder

         ----------
         grid : Grid
             grid that stores all possible steps/tiles as 3D-list
-        node : Node
+        node : GridNode
             node to find neighbors for
-        diagonal_movement : DiagonalMovement
+        diagonal_movement : int
             if diagonal movement is allowed
             (see enum in diagonal_movement)
 
         Returns
         -------
-        List[Node]
+        List[GridNode]
             list of neighbors
         """
         if not diagonal_movement:
             diagonal_movement = self.diagonal_movement
         return grid.neighbors(node, diagonal_movement=diagonal_movement)
-
[docs] def keep_running(self) -> bool: +
[docs] def keep_running(self): """ Check, if we run into time or iteration constrains. - Returns - ------- - bool - True if we keep running and False if we run into a constraint - Raises ------ ExecutionTimeException @@ -237,7 +237,15 @@

Source code for pathfinding3d.finder.finder

                 f"{self.__class__.__name__} took longer than {self.time_limit} seconds, aborting!"
             )
-
[docs] def process_node(self, grid: Grid, node: Node, parent: Node, end: Node, open_list: List, open_value: bool = True): +
[docs] def process_node( + self, + grid: Grid, + node: GridNode, + parent: GridNode, + end: GridNode, + open_list: List, + open_value: int = 1, + ): """ We check if the given node is part of the path by calculating its cost and add or remove it from our path @@ -246,12 +254,12 @@

Source code for pathfinding3d.finder.finder

         ----------
         grid : Grid
             grid that stores all possible steps/tiles as 3D-list
-        node : Node
+        node : GridNode
             the node we like to test
             (the neighbor in A* or jump-node in JumpPointSearch)
-        parent : Node
+        parent : GridNode
             the parent node (the current node we like to test)
-        end : Node
+        end : GridNode
             the end point to calculate the cost of the path
         open_list : List
             the list that keeps track of our current path
@@ -281,17 +289,23 @@ 

Source code for pathfinding3d.finder.finder

                 heapq.heappush(open_list, node)
[docs] def check_neighbors( - self, start: Node, end: Node, grid: Grid, open_list: List, open_value: bool = True, backtrace_by=None - ) -> Optional[List[Node]]: + self, + start: GridNode, + end: GridNode, + grid: Grid, + open_list: List, + open_value: int = 1, + backtrace_by=None, + ) -> Optional[List[GridNode]]: """ find next path segment based on given node (or return path if we found the end) Parameters ---------- - start : Node + start : GridNode start node - end : Node + end : GridNode end node grid : Grid grid that stores all possible steps/tiles as 3D-list @@ -300,21 +314,21 @@

Source code for pathfinding3d.finder.finder

 
         Returns
         -------
-        Optional[List[Node]]
+        Optional[List[GridNode]]
             path
         """
         raise NotImplementedError("Please implement check_neighbors in your finder")
-
[docs] def find_path(self, start: Node, end: Node, grid: Grid) -> Optional[Union[List[Node], int]]: +
[docs] def find_path(self, start: GridNode, end: GridNode, grid: Grid) -> Tuple[List, int]: """ Find a path from start to end node on grid by iterating over all neighbors of a node (see check_neighbors) Parameters ---------- - start : Node + start : GridNode start node - end : Node + end : GridNode end node grid : Grid grid that stores all possible steps/tiles as 3D-list @@ -322,7 +336,7 @@

Source code for pathfinding3d.finder.finder

 
         Returns
         -------
-        Optional[Union[List[Node], int]]
+        Tuple[List, int]
             path, number of iterations
         """
         self.start_time = time.time()  # execution time limitation
@@ -346,7 +360,10 @@ 

Source code for pathfinding3d.finder.finder

         """
         Return a human readable representation
         """
-        return f"<{self.__class__.__name__}" f"diagonal_movement={self.diagonal_movement} >"
+ return ( + f"<{self.__class__.__name__}" + f"diagonal_movement={self.diagonal_movement} >" + )
diff --git a/_modules/pathfinding3d/finder/ida_star.html b/_modules/pathfinding3d/finder/ida_star.html index 938af51..eeb0341 100644 --- a/_modules/pathfinding3d/finder/ida_star.html +++ b/_modules/pathfinding3d/finder/ida_star.html @@ -3,7 +3,7 @@ - pathfinding3d.finder.ida_star — pathfinding3d 0.2 documentation + pathfinding3d.finder.ida_star — pathfinding3d 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -37,7 +37,7 @@ pathfinding3d
- 0.2 + 0.3
@@ -89,12 +89,12 @@

Source code for pathfinding3d.finder.ida_star

 import time
-from typing import Callable, List, Optional, Union
+from typing import Callable, List, Optional, Tuple, Union
 
 from ..core.diagonal_movement import DiagonalMovement
 from ..core.grid import Grid
 from ..core.heuristic import manhattan, octile
-from ..core.node import Node
+from ..core.node import GridNode
 from .finder import MAX_RUNS, TIME_LIMIT, Finder
 
 
@@ -119,9 +119,9 @@ 

Source code for pathfinding3d.finder.ida_star

self, heuristic: Optional[Callable] = None, weight: int = 1, - diagonal_movement: DiagonalMovement = DiagonalMovement.never, + diagonal_movement: int = DiagonalMovement.never, time_limit: float = TIME_LIMIT, - max_runs: int = MAX_RUNS, + max_runs: Union[int, float] = MAX_RUNS, track_recursion: bool = True, ): """ @@ -133,7 +133,7 @@

Source code for pathfinding3d.finder.ida_star

heuristic used to calculate distance of 2 points weight : int weight for the edges - diagonal_movement : DiagonalMovement + diagonal_movement : int if diagonal movement is allowed (see enum in diagonal_movement) time_limit : float @@ -167,38 +167,38 @@

Source code for pathfinding3d.finder.ida_star

[docs] def search( self, - node: Node, + node: GridNode, g: float, cutoff: float, - path: List[Node], + path: List[GridNode], depth: int, - end: Node, + end: GridNode, grid: Grid, - ) -> float: + ) -> Union[float, GridNode]: """ Recursive IDA* search implementation Parameters ---------- - node : Node + node : GridNode current node g : float cost from start to current node cutoff : float cutoff cost - path : List[Node] + path : List[GridNode] path depth : int current depth - end : Node + end : GridNode end node grid : Grid grid that stores all possible steps/tiles as 3D-list Returns ------- - float - cutoff cost + Union[float, GridNode] + cutoff cost or end node """ self.runs += 1 self.keep_running() @@ -234,9 +234,17 @@

Source code for pathfinding3d.finder.ida_star

neighbor.retain_count += 1 neighbor.tested = True - t = self.search(neighbor, g + grid.calc_cost(node, neighbor), cutoff, path, depth + 1, end, grid) - - if isinstance(t, Node): + t = self.search( + neighbor, + g + grid.calc_cost(node, neighbor), + cutoff, + path, + depth + 1, + end, + grid, + ) + + if isinstance(t, GridNode): if len(path) < depth: path += [None] * (depth - len(path) + 1) path[depth] = node @@ -253,22 +261,22 @@

Source code for pathfinding3d.finder.ida_star

return min_t
-
[docs] def find_path(self, start: Node, end: Node, grid: Grid) -> Optional[Union[List[Node], int]]: +
[docs] def find_path(self, start: GridNode, end: GridNode, grid: Grid) -> Tuple[List, int]: """ Find a path from start to end node on grid using the IDA* algorithm Parameters ---------- - start : Node + start : GridNode start node - end : Node + end : GridNode end node grid : Grid grid that stores all possible steps/tiles as 3D-list Returns ------- - Optional[Union[List[Node], int]] + Tuple[List, int] path, number of iterations """ self.start_time = time.time() # execution time limitation @@ -292,8 +300,11 @@

Source code for pathfinding3d.finder.ida_star

# If t is a node, it's also the end node. Route is now # populated with a valid path to the end node. - if isinstance(t, Node): - return ([(node.x, node.y, node.z, node.grid_id) for node in path], self.runs) + if isinstance(t, GridNode): + return ( + [(node.x, node.y, node.z, node.grid_id) for node in path], + self.runs, + ) # Try again, this time with a deeper cut-off. The t score # is the closest we got to the end node. diff --git a/_modules/pathfinding3d/finder/msp.html b/_modules/pathfinding3d/finder/msp.html index 736e440..428fa39 100644 --- a/_modules/pathfinding3d/finder/msp.html +++ b/_modules/pathfinding3d/finder/msp.html @@ -3,7 +3,7 @@ - pathfinding3d.finder.msp — pathfinding3d 0.2 documentation + pathfinding3d.finder.msp — pathfinding3d 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -37,7 +37,7 @@ pathfinding3d
- 0.2 + 0.3
@@ -91,11 +91,11 @@

Source code for pathfinding3d.finder.msp

 import heapq
 import time
 from collections import deque, namedtuple
-from typing import List, Optional, Union
+from typing import List, Tuple
 
 from ..core import heuristic
 from ..core.grid import Grid
-from ..core.node import Node
+from ..core.node import GridNode
 from ..finder.finder import Finder
 
 
@@ -112,7 +112,7 @@ 

Source code for pathfinding3d.finder.msp

         super().__init__(*args, **kwargs)
         self.heuristic = heuristic.null
-
[docs] def tree(self, grid: Grid, start: Node) -> List: +
[docs] def tree(self, grid: Grid, start: GridNode) -> List: """ Returns a list of nodes that are part of the minimum spanning tree of the grid. @@ -121,7 +121,7 @@

Source code for pathfinding3d.finder.msp

         ----------
         grid : Grid
             grid that stores all possible steps/tiles as 3D-list
-        start : Node
+        start : GridNode
             start node
 
         Returns
@@ -131,7 +131,7 @@ 

Source code for pathfinding3d.finder.msp

 
         return list(self.itertree(grid, start))
-
[docs] def itertree(self, grid: Grid, start: Node): +
[docs] def itertree(self, grid: Grid, start: GridNode): """ Returns a generator that yields nodes that are part of the minimum spanning tree of the grid. @@ -140,7 +140,7 @@

Source code for pathfinding3d.finder.msp

         ----------
         grid : Grid
             grid that stores all possible steps/tiles as 3D-list
-        start : Node
+        start : GridNode
             start node
         """
         # Finder.process_node requires an end node, which we don't have.
@@ -166,25 +166,27 @@ 

Source code for pathfinding3d.finder.msp

             neighbors = self.find_neighbors(grid, node)
             for neighbor in neighbors:
                 if not neighbor.closed:
-                    self.process_node(grid, neighbor, node, end, open_list, open_value=True)
+ self.process_node( + grid, neighbor, node, end, open_list, open_value=True + )
-
[docs] def find_path(self, start: Node, end: Node, grid: Grid) -> Optional[Union[List[Node], int]]: +
[docs] def find_path(self, start: GridNode, end: GridNode, grid: Grid) -> Tuple[List, int]: """ Find a path from start to end node on grid using the Minimum Spanning Tree algorithm Parameters ---------- - start : Node + start : GridNode start node - end : Node + end : GridNode end node grid : Grid grid that stores all possible steps/tiles as 3D-list Returns ------- - Optional[Union[List[Node], int]] + Tuple[List, int] path, number of iterations """ self.start_time = time.time() # execution time limitation diff --git a/_static/documentation_options.js b/_static/documentation_options.js index 4c7b1ee..7ec93ea 100644 --- a/_static/documentation_options.js +++ b/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.2', + VERSION: '0.3', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/genindex.html b/genindex.html index d9c6711..bc28560 100644 --- a/genindex.html +++ b/genindex.html @@ -3,7 +3,7 @@ - Index — pathfinding3d 0.2 documentation + Index — pathfinding3d 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -37,7 +37,7 @@ pathfinding3d
- 0.2 + 0.3
diff --git a/index.html b/index.html index 1e98445..c808c49 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ - Welcome to pathfinding3d’s documentation! — pathfinding3d 0.2 documentation + Welcome to pathfinding3d’s documentation! — pathfinding3d 0.3 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@ pathfinding3d
- 0.2 + 0.3
diff --git a/modules.html b/modules.html index 9128f2d..f48c94f 100644 --- a/modules.html +++ b/modules.html @@ -4,7 +4,7 @@ - pathfinding3d — pathfinding3d 0.2 documentation + pathfinding3d — pathfinding3d 0.3 documentation @@ -15,7 +15,7 @@ - + @@ -40,7 +40,7 @@ pathfinding3d
- 0.2 + 0.3
diff --git a/objects.inv b/objects.inv index cb68e37..dc035d5 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/pathfinding3d.core.html b/pathfinding3d.core.html index fe61551..7063f70 100644 --- a/pathfinding3d.core.html +++ b/pathfinding3d.core.html @@ -4,7 +4,7 @@ - pathfinding3d.core package — pathfinding3d 0.2 documentation + pathfinding3d.core package — pathfinding3d 0.3 documentation @@ -15,7 +15,7 @@ - + @@ -40,7 +40,7 @@ pathfinding3d
- 0.2 + 0.3
@@ -169,8 +169,8 @@

Submodules
Return type:
-

GridNode

+

Optional[GridNode]

Parameters:
@@ -594,19 +595,19 @@

Submodules
Return type:
-

List[Node]

+

List[GridNode]

Parameters:
    -
  • node_a (Node) – start node

  • -
  • node_b (Node) – end node

  • +
  • node_a (GridNode) – start node

  • +
  • node_b (GridNode) – end node

Returns:

path

Return type:
-

List[Node]

+

List[GridNode]

@@ -618,7 +619,7 @@

Submodules
Return type:
-

List[Tuple[float, float, float]]

+

List[List[float]]

Parameters:
Return type:
-

List[Coords]

+

List[List[float]]

@@ -642,7 +643,7 @@

Submodules
Return type:
-

List[Tuple[float, float, float]]

+

List[List[float]]

Parameters:
Return type:
-

List[Coords]

+

List[List[float]]

@@ -687,7 +688,7 @@

Submodules
Return type:
-

List[Tuple[float, float, float]]

+

List[List[float]]

Parameters:
Return type:
-

List[Coords]

+

List[List[float]]

@@ -733,19 +734,20 @@

Submodules
Return type:
-

List[Node]

+

List[GridNode]

Parameters:
    -
  • node (Node) – node to get neighbors from

  • -
  • diagonal_movement (DiagonalMovement) –

  • +
  • node (GridNode) – node to get neighbors from

  • +
  • diagonal_movement (int) – if diagonal movement is allowed +(see enum in diagonal_movement)

Returns:

neighbors of the given node

Return type:
-

List[Node]

+

List[GridNode]

@@ -760,8 +762,8 @@

SubmodulesParameters:
    -
  • node_a (Node) – first node

  • -
  • node_b (Node) – second node

  • +
  • node_a (GridNode) – first node

  • +
  • node_b (GridNode) – second node

  • weighted (bool) – wether to use weights or not

diff --git a/pathfinding3d.finder.html b/pathfinding3d.finder.html index 2dd7b99..7ae08c4 100644 --- a/pathfinding3d.finder.html +++ b/pathfinding3d.finder.html @@ -4,7 +4,7 @@ - pathfinding3d.finder package — pathfinding3d 0.2 documentation + pathfinding3d.finder package — pathfinding3d 0.3 documentation @@ -15,7 +15,7 @@ - + @@ -39,7 +39,7 @@ pathfinding3d
- 0.2 + 0.3
@@ -107,9 +107,9 @@

Submodules @@ -122,7 +122,7 @@

Submodules
  • heuristic (Callable) – heuristic used to calculate distance of 2 points

  • weight (int) – weight for the edges

  • -
  • diagonal_movement (DiagonalMovement) – if diagonal movement is allowed +

  • diagonal_movement (int) – if diagonal movement is allowed (see enum in diagonal_movement)

  • time_limit (float) – max. runtime in seconds

  • max_runs (int) – max. amount of tries until we abort the search @@ -136,27 +136,27 @@

    Submodules
    -check_neighbors(start, end, grid, open_list, open_value=True, backtrace_by=None)[source]
    +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)

    Return type:
    -

    Optional[List[Node]]

    +

    Optional[List[GridNode]]

    Parameters:
      -
    • start (Node) – start node

    • -
    • end (Node) – end node

    • +
    • start (GridNode) – start node

    • +
    • end (GridNode) – end node

    • grid (Grid) – grid that stores all possible steps/tiles as 3D-list

    • open_list (List) – stores nodes that will be processed next

    • -
    • open_value (bool) –

    • +
    • open_value (int) –

    Returns:

    path

    Return type:
    -

    Optional[List[Node]]

    +

    Optional[List[GridNode]]

    @@ -167,12 +167,12 @@

    Submodules
    Return type:
    -

    Union[List[Node], int, None]

    +

    Tuple[List, int]

    Parameters:
      -
    • start (Node) – start node

    • -
    • end (Node) – end node

    • +
    • start (GridNode) – start node

    • +
    • end (GridNode) – end node

    • grid (Grid) – grid that stores all possible steps/tiles as 3D-list

    @@ -180,7 +180,7 @@

    Submodules

    path, number of iterations

    Return type:
    -

    Optional[Union[List[Node], int]]

    +

    Tuple[List, int]

    @@ -200,9 +200,9 @@

    Submodules @@ -215,7 +215,7 @@

    Submodules
    • heuristic (Callable) – heuristic used to calculate distance of 2 points

    • weight (int) – weight for the edges

    • -
    • diagonal_movement (DiagonalMovement) – if diagonal movement is allowed +

    • diagonal_movement (int) – if diagonal movement is allowed (see enum in diagonal_movement)

    • time_limit (float) – max. runtime in seconds

    • max_runs (int) – max. amount of tries until we abort the search @@ -237,8 +237,8 @@

      SubmodulesParameters:
        -
      • node_a (Node) – first node

      • -
      • node_b (Node) – second node

      • +
      • node_a (GridNode) – first node

      • +
      • node_b (GridNode) – second node

      • heuristic (Callable) – heuristic used to calculate distance of 2 points

      @@ -266,9 +266,9 @@

      Submodules @@ -281,7 +281,7 @@

      Submodules
      • heuristic (Callable) – heuristic used to calculate distance of 2 points

      • weight (int) – weight for the edges

      • -
      • diagonal_movement (DiagonalMovement) – if diagonal movement is allowed +

      • diagonal_movement (int) – if diagonal movement is allowed (see enum in diagonal_movement)

      • time_limit (float) – max. runtime in seconds

      • max_runs (int) – max. amount of tries until we abort the search @@ -299,12 +299,12 @@

        Submodules
        Return type:
        -

        Union[List[Node], int, None]

        +

        Tuple[List, int]

        Parameters:
          -
        • start (Node) – start node

        • -
        • end (Node) – end node

        • +
        • start (GridNode) – start node

        • +
        • end (GridNode) – end node

        • grid (Grid) – grid that stores all possible steps/tiles as 3D-list (can be a list of grids)

        @@ -313,7 +313,7 @@

        Submodules

        path, number of iterations

        Return type:
        -

        Optional[Union[List[Node], int]]

        +

        Tuple[List, int]

        @@ -332,9 +332,9 @@

        Submodules @@ -347,7 +347,7 @@

        Submodules
        • heuristic (Callable) – heuristic used to calculate distance of 2 points

        • weight (int) – weight for the edges

        • -
        • diagonal_movement (DiagonalMovement) – if diagonal movement is allowed +

        • diagonal_movement (int) – if diagonal movement is allowed (see enum in diagonal_movement)

        • time_limit (float) – max. runtime in seconds

        • max_runs (int) – max. amount of tries until we abort the search @@ -366,12 +366,12 @@

          Submodules
          Return type:
          -

          Optional[List[Node]]

          +

          List[GridNode]

          Parameters:
            -
          • start (Node) – start node

          • -
          • end (Node) – end node

          • +
          • start (GridNode) – start node

          • +
          • end (GridNode) – end node

          • grid (Grid) – grid that stores all possible steps/tiles as 3D-list

          • open_list (List) – stores nodes that will be processed next

          @@ -380,7 +380,7 @@

          Submodules

          path

          Return type:
          -

          Optional[List[Node]]

          +

          List[GridNode]

          @@ -398,9 +398,9 @@

          SubmodulesParameters:
          @@ -412,7 +412,7 @@

          SubmodulesParameters:
          @@ -500,7 +500,7 @@

          Submodules
          • heuristic (Callable) – heuristic used to calculate distance of 2 points

          • weight (int) – weight for the edges

          • -
          • diagonal_movement (DiagonalMovement) – if diagonal movement is allowed +

          • 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

          • @@ -523,8 +523,8 @@

            SubmodulesParameters:
              -
            • node_a (Node) – first node

            • -
            • node_b (Node) – second node

            • +
            • node_a (GridNode) – first node

            • +
            • node_b (GridNode) – second node

            • heuristic (Callable) – heuristic used to calculate distance of 2 points

            @@ -543,13 +543,13 @@

            Submodules
            Return type:
            -

            List[Node]

            +

            List[GridNode]

            Parameters:
            • grid (Grid) – grid that stores all possible steps/tiles as 3D-list

            • -
            • node (Node) – node to find neighbors for

            • -
            • diagonal_movement (DiagonalMovement) – if diagonal movement is allowed +

            • node (GridNode) – node to find neighbors for

            • +
            • diagonal_movement (int) – if diagonal movement is allowed (see enum in diagonal_movement)

            @@ -557,7 +557,7 @@

            Submodules

            list of neighbors

            Return type:
            -

            List[Node]

            +

            List[GridNode]

            @@ -567,17 +567,8 @@

            Submoduleskeep_running()[source]

            Check, if we run into time or iteration constrains.

            -
            Return type:
            -

            bool

            -
            -
            Returns:
            -

            True if we keep running and False if we run into a constraint

            -
            -
            Return type:
            -

            bool

            -
            -
            Raises:
            -
              +
              Raises:
              +
              @@ -587,17 +578,17 @@

              Submodules
              -process_node(grid, node, parent, end, open_list, open_value=True)[source]
              +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 (Node) – the node we like to test +

              • node (GridNode) – the node we like to test (the neighbor in A* or jump-node in JumpPointSearch)

              • -
              • parent (Node) – the parent node (the current node we like to test)

              • -
              • end (Node) – the end point to calculate the cost of the path

              • +
              • parent (GridNode) – the parent node (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)

              • @@ -608,27 +599,27 @@

                Submodules
                -check_neighbors(start, end, grid, open_list, open_value=True, backtrace_by=None)[source]
                +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)

                Return type:
                -

                Optional[List[Node]]

                +

                Optional[List[GridNode]]

                Parameters:
                  -
                • start (Node) – start node

                • -
                • end (Node) – end node

                • +
                • start (GridNode) – start node

                • +
                • end (GridNode) – end node

                • grid (Grid) – grid that stores all possible steps/tiles as 3D-list

                • open_list (List) – stores nodes that will be processed next

                • -
                • open_value (bool) –

                • +
                • open_value (int) –

                Returns:

                path

                Return type:
                -

                Optional[List[Node]]

                +

                Optional[List[GridNode]]

              @@ -640,12 +631,12 @@

              Submodules
              Return type:
              -

              Union[List[Node], int, None]

              +

              Tuple[List, int]

              Parameters:
                -
              • start (Node) – start node

              • -
              • end (Node) – end node

              • +
              • start (GridNode) – start node

              • +
              • end (GridNode) – end node

              • grid (Grid) – grid that stores all possible steps/tiles as 3D-list (can be a list of grids)

              @@ -654,7 +645,7 @@

              Submodules

              path, number of iterations

              Return type:
              -

              Optional[Union[List[Node], int]]

              +

              Tuple[List, int]

            @@ -685,9 +676,9 @@

            Submodules @@ -701,7 +692,7 @@

            Submodules
            • heuristic (Callable) – heuristic used to calculate distance of 2 points

            • weight (int) – weight for the edges

            • -
            • diagonal_movement (DiagonalMovement) – if diagonal movement is allowed +

            • diagonal_movement (int) – if diagonal movement is allowed (see enum in diagonal_movement)

            • time_limit (float) – max. runtime in seconds

            • max_runs (int) – max. amount of tries until we abort the search @@ -720,24 +711,24 @@

              Submodules
              Return type:
              -

              float

              +

              Union[float, GridNode]

              Parameters:
                -
              • node (Node) – current node

              • +
              • node (GridNode) – current node

              • g (float) – cost from start to current node

              • cutoff (float) – cutoff cost

              • -
              • path (List[Node]) – path

              • +
              • path (List[GridNode]) – path

              • depth (int) – current depth

              • -
              • end (Node) – end node

              • +
              • end (GridNode) – end node

              • grid (Grid) – grid that stores all possible steps/tiles as 3D-list

              Returns:
              -

              cutoff cost

              +

              cutoff cost or end node

              Return type:
              -

              float

              +

              Union[float, GridNode]

              @@ -748,12 +739,12 @@

              Submodules
              Return type:
              -

              Union[List[Node], int, None]

              +

              Tuple[List, int]

              Parameters:
                -
              • start (Node) – start node

              • -
              • end (Node) – end node

              • +
              • start (GridNode) – start node

              • +
              • end (GridNode) – end node

              • grid (Grid) – grid that stores all possible steps/tiles as 3D-list

              @@ -761,7 +752,7 @@

              Submodules

              path, number of iterations

              Return type:
              -

              Optional[Union[List[Node], int]]

              +

              Tuple[List, int]

              @@ -788,7 +779,7 @@

              Submodules
              • heuristic (Callable) – heuristic used to calculate distance of 2 points

              • weight (int) – weight for the edges

              • -
              • diagonal_movement (DiagonalMovement) – if diagonal movement is allowed +

              • 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

              • @@ -813,7 +804,7 @@

                SubmodulesParameters:
                • grid (Grid) – grid that stores all possible steps/tiles as 3D-list

                • -
                • start (Node) – start node

                • +
                • start (GridNode) – start node

                Return type:
                @@ -831,7 +822,7 @@

                SubmodulesParameters:
                • grid (Grid) – grid that stores all possible steps/tiles as 3D-list

                • -
                • start (Node) – start node

                • +
                • start (GridNode) – start node

                @@ -844,12 +835,12 @@

                Submodules
                Return type:
                -

                Union[List[Node], int, None]

                +

                Tuple[List, int]

                Parameters:
                  -
                • start (Node) – start node

                • -
                • end (Node) – end node

                • +
                • start (GridNode) – start node

                • +
                • end (GridNode) – end node

                • grid (Grid) – grid that stores all possible steps/tiles as 3D-list

                @@ -857,7 +848,7 @@

                Submodules

                path, number of iterations

                Return type:
                -

                Optional[Union[List[Node], int]]

                +

                Tuple[List, int]

                diff --git a/pathfinding3d.html b/pathfinding3d.html index de1a3fa..31c42ad 100644 --- a/pathfinding3d.html +++ b/pathfinding3d.html @@ -4,7 +4,7 @@ - pathfinding3d package — pathfinding3d 0.2 documentation + pathfinding3d package — pathfinding3d 0.3 documentation @@ -15,7 +15,7 @@ - + @@ -40,7 +40,7 @@ pathfinding3d
                - 0.2 + 0.3
                diff --git a/py-modindex.html b/py-modindex.html index 8adf8b5..15a4b03 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -3,7 +3,7 @@ - Python Module Index — pathfinding3d 0.2 documentation + Python Module Index — pathfinding3d 0.3 documentation @@ -14,7 +14,7 @@ - + @@ -40,7 +40,7 @@ pathfinding3d
                - 0.2 + 0.3
                diff --git a/search.html b/search.html index 50a7506..ceb22e1 100644 --- a/search.html +++ b/search.html @@ -3,7 +3,7 @@ - Search — pathfinding3d 0.2 documentation + Search — pathfinding3d 0.3 documentation @@ -15,7 +15,7 @@ - + @@ -40,7 +40,7 @@ pathfinding3d
                - 0.2 + 0.3
                diff --git a/searchindex.js b/searchindex.js index f1058cf..54d27fe 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["index", "modules", "pathfinding3d", "pathfinding3d.core", "pathfinding3d.finder"], "filenames": ["index.rst", "modules.rst", "pathfinding3d.rst", "pathfinding3d.core.rst", "pathfinding3d.finder.rst"], "titles": ["Welcome to pathfinding3d\u2019s documentation!", "pathfinding3d", "pathfinding3d package", "pathfinding3d.core package", "pathfinding3d.finder package"], "terms": {"packag": [0, 1], "index": 0, "modul": [0, 1], "search": [0, 2, 4], "page": [0, 4], "subpackag": 1, "core": [1, 2], "submodul": [1, 2], "diagonal_mov": [1, 2, 4], "grid": [1, 2, 4], "heurist": [1, 2, 4], "node": [1, 2, 4], "util": [1, 2], "world": [1, 2], "content": 1, "finder": [1, 2], "a_star": [1, 2], "best_first": [1, 2], "bi_a_star": [1, 2], "breadth_first": [1, 2], "dijkstra": [1, 2, 3], "ida_star": [1, 2], "msp": [1, 2], "diagonalmov": [2, 3, 4], "alwai": [2, 3], "never": [2, 3, 4], "if_at_most_one_obstacl": [2, 3], "only_when_no_obstacl": [2, 3], "build_nod": [2, 3], "__init__": [2, 3, 4], "insid": [2, 3], "walkabl": [2, 3], "calc_cost": [2, 3], "neighbor": [2, 3, 4], "cleanup": [2, 3], "null": [2, 3], "manhattan": [2, 3], "euclidean": [2, 3], "chebyshev": [2, 3], "octil": [2, 3], "gridnod": [2, 3], "x": [2, 3], "y": [2, 3], "z": [2, 3], "weight": [2, 3, 4], "grid_id": [2, 3], "connect": [2, 3], "backtrac": [2, 3], "bi_backtrac": [2, 3], "raytrac": [2, 3], "bresenham": [2, 3], "expand_path": [2, 3], "smoothen_path": [2, 3], "astarfind": [2, 4], "check_neighbor": [2, 4], "find_path": [2, 4], "bestfirst": [2, 4], "apply_heurist": [2, 4], "biastarfind": [2, 4], "breadthfirstfind": [2, 4], "dijkstrafind": [2, 4], "executiontimeexcept": [2, 4], "executionrunsexcept": [2, 4], "find_neighbor": [2, 4], "keep_run": [2, 4], "process_nod": [2, 4], "idastarfind": [2, 4], "minimumspanningtre": [2, 4], "tree": [2, 4], "itertre": [2, 4], "class": [3, 4], "sourc": [3, 4], "base": [3, 4], "object": [3, 4], "1": [3, 4], "2": [3, 4], "3": 3, "4": 3, "width": 3, "height": 3, "depth": [3, 4], "matrix": 3, "none": [3, 4], "invers": 3, "fals": [3, 4], "creat": 3, "accord": 3, "size": 3, "If": 3, "i": [3, 4], "given": [3, 4], "us": [3, 4], "determin": 3, "what": 3, "ar": [3, 4], "return": [3, 4], "type": [3, 4], "list": [3, 4], "paramet": [3, 4], "int": [3, 4], "The": [3, 4], "option": [3, 4], "A": [3, 4], "3d": [3, 4], "arrai": 3, "valu": [3, 4], "number": [3, 4], "specifi": 3, "how": 3, "thei": 3, "all": [3, 4], "bool": [3, 4], "true": [3, 4], "0": [3, 4], "consid": 3, "otherwis": 3, "id": 3, "contain": 3, "repres": 3, "map": [3, 4], "get": 3, "posit": 3, "check": [3, 4], "field": 3, "tile": [3, 4], "set": [3, 4], "node_a": [3, 4], "node_b": [3, 4], "distanc": [3, 4], "between": 3, "current": [3, 4], "cost": [3, 4], "float": [3, 4], "algorithm": [3, 4], "default": [3, 4], "one": 3, "from": [3, 4], "dx": 3, "dy": 3, "dz": 3, "special": 3, "so": 3, "h": 3, "calcul": [3, 4], "f": 3, "onli": [3, 4], "start": [3, 4], "point": [3, 4], "g": [3, 4], "union": [3, 4], "reset": 3, "fresh": 3, "pathfind": [3, 4], "basic": 3, "save": 3, "coordin": 3, "some": 3, "other_nod": 3, "parent": [3, 4], "record": 3, "path": [3, 4], "includ": 3, "both": 3, "end": [3, 4], "bi": [3, 4], "direct": [3, 4], "coords_a": 3, "coords_b": 3, "ly": 3, "line": 3, "form": 3, "rai": 3, "trace": 3, "tupl": 3, "coord": 3, "": 3, "compress": 3, "new": 3, "ha": [3, 4], "segment": [3, 4], "interpol": 3, "expand": 3, "use_raytrac": 3, "an": 3, "uncompress": 3, "less": 3, "turn": 3, "look": 3, "more": 3, "natur": 3, "smoothen": 3, "whether": 3, "dict": 3, "two": 3, "first": [3, 4], "second": [3, 4], "wether": 3, "time_limit": 4, "max_run": 4, "callabl": 4, "find": 4, "shortest": 4, "edg": 4, "diagon": 4, "movement": 4, "allow": 4, "see": 4, "enum": 4, "max": 4, "runtim": 4, "amount": 4, "tri": 4, "until": 4, "we": 4, "abort": 4, "enter": 4, "huge": 4, "have": 4, "time": 4, "constrain": 4, "mean": 4, "code": 4, "might": 4, "run": 4, "ani": 4, "larg": 4, "open_list": 4, "open_valu": 4, "backtrace_bi": 4, "next": 4, "found": 4, "store": 4, "possibl": 4, "step": 4, "process": 4, "iter": 4, "similar": 4, "helper": 4, "function": 4, "appli": 4, "can": 4, "breadth": 4, "except": 4, "messag": 4, "support": 4, "should": 4, "same": 4, "djikstra": 4, "ida": 4, "keep": 4, "constraint": 4, "rais": 4, "part": 4, "its": 4, "add": 4, "remov": 4, "our": 4, "like": 4, "test": 4, "jump": 4, "jumppointsearch": 4, "track": 4, "need": 4, "open": 4, "someth": 4, "els": 4, "than": 4, "over": 4, "track_recurs": 4, "deep": 4, "star": 4, "recurs": 4, "http": 4, "www": 4, "apl": 4, "jhu": 4, "edu": 4, "hall": 4, "ai": 4, "program": 4, "html": 4, "retrac": 4, "v": 4, "nageshwara": 4, "rao": 4, "vipin": 4, "kumar": 4, "k": 4, "ramesh": 4, "parallel": 4, "implement": 4, "januari": 4, "1987": 4, "ftp": 4, "c": 4, "utexa": 4, "snapshot": 4, "hourli": 4, "pub": 4, "lab": 4, "tech": 4, "report": 4, "ut": 4, "tr": 4, "87": 4, "46": 4, "pdf": 4, "javascript": 4, "gerard": 4, "meier": 4, "gerardmei": 4, "com": 4, "cutoff": 4, "arg": 4, "kwarg": 4, "minimum": 4, "span": 4, "brad": 4, "beatti": 4, "github": 4, "brean": 4, "python": 4, "issu": 4, "18": 4, "wikipedia": 4, "nice": 4, "descript": 4, "about": 4, "en": 4, "org": 4, "wiki": 4, "minimum_spanning_tre": 4, "gener": 4, "yield": 4}, "objects": {"": [[2, 0, 0, "-", "pathfinding3d"]], "pathfinding3d": [[3, 0, 0, "-", "core"], [4, 0, 0, "-", "finder"]], "pathfinding3d.core": [[3, 0, 0, "-", "diagonal_movement"], [3, 0, 0, "-", "grid"], [3, 0, 0, "-", "heuristic"], [3, 0, 0, "-", "node"], [3, 0, 0, "-", "util"], [3, 0, 0, "-", "world"]], "pathfinding3d.core.diagonal_movement": [[3, 1, 1, "", "DiagonalMovement"]], "pathfinding3d.core.diagonal_movement.DiagonalMovement": [[3, 2, 1, "", "always"], [3, 2, 1, "", "if_at_most_one_obstacle"], [3, 2, 1, "", "never"], [3, 2, 1, "", "only_when_no_obstacle"]], "pathfinding3d.core.grid": [[3, 1, 1, "", "Grid"], [3, 4, 1, "", "build_nodes"]], "pathfinding3d.core.grid.Grid": [[3, 3, 1, "", "__init__"], [3, 3, 1, "", "calc_cost"], [3, 3, 1, "", "cleanup"], [3, 3, 1, "", "inside"], [3, 3, 1, "", "neighbors"], [3, 3, 1, "", "node"], [3, 3, 1, "", "walkable"]], "pathfinding3d.core.heuristic": [[3, 4, 1, "", "chebyshev"], [3, 4, 1, "", "euclidean"], [3, 4, 1, "", "manhattan"], [3, 4, 1, "", "null"], [3, 4, 1, "", "octile"]], "pathfinding3d.core.node": [[3, 1, 1, "", "GridNode"], [3, 1, 1, "", "Node"]], "pathfinding3d.core.node.GridNode": [[3, 3, 1, "", "__init__"], [3, 3, 1, "", "connect"], [3, 2, 1, "", "connections"], [3, 2, 1, "", "grid_id"], [3, 2, 1, "", "walkable"], [3, 2, 1, "", "weight"], [3, 2, 1, "", "x"], [3, 2, 1, "", "y"], [3, 2, 1, "", "z"]], "pathfinding3d.core.node.Node": [[3, 3, 1, "", "__init__"], [3, 3, 1, "", "cleanup"]], "pathfinding3d.core.util": [[3, 4, 1, "", "backtrace"], [3, 4, 1, "", "bi_backtrace"], [3, 4, 1, "", "bresenham"], [3, 4, 1, "", "expand_path"], [3, 4, 1, "", "raytrace"], [3, 4, 1, "", "smoothen_path"]], "pathfinding3d.core.world": [[3, 1, 1, "", "World"]], "pathfinding3d.core.world.World": [[3, 3, 1, "", "__init__"], [3, 3, 1, "", "calc_cost"], [3, 3, 1, "", "neighbors"]], "pathfinding3d.finder": [[4, 0, 0, "-", "a_star"], [4, 0, 0, "-", "best_first"], [4, 0, 0, "-", "bi_a_star"], [4, 0, 0, "-", "breadth_first"], [4, 0, 0, "-", "dijkstra"], [4, 0, 0, "-", "finder"], [4, 0, 0, "-", "ida_star"], [4, 0, 0, "-", "msp"]], "pathfinding3d.finder.a_star": [[4, 1, 1, "", "AStarFinder"]], "pathfinding3d.finder.a_star.AStarFinder": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "check_neighbors"], [4, 3, 1, "", "find_path"]], "pathfinding3d.finder.best_first": [[4, 1, 1, "", "BestFirst"]], "pathfinding3d.finder.best_first.BestFirst": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "apply_heuristic"]], "pathfinding3d.finder.bi_a_star": [[4, 1, 1, "", "BiAStarFinder"]], "pathfinding3d.finder.bi_a_star.BiAStarFinder": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "find_path"]], "pathfinding3d.finder.breadth_first": [[4, 1, 1, "", "BreadthFirstFinder"]], "pathfinding3d.finder.breadth_first.BreadthFirstFinder": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "check_neighbors"]], "pathfinding3d.finder.dijkstra": [[4, 1, 1, "", "DijkstraFinder"]], "pathfinding3d.finder.dijkstra.DijkstraFinder": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "apply_heuristic"]], "pathfinding3d.finder.finder": [[4, 5, 1, "", "ExecutionRunsException"], [4, 5, 1, "", "ExecutionTimeException"], [4, 1, 1, "", "Finder"]], "pathfinding3d.finder.finder.ExecutionRunsException": [[4, 3, 1, "", "__init__"]], "pathfinding3d.finder.finder.ExecutionTimeException": [[4, 3, 1, "", "__init__"]], "pathfinding3d.finder.finder.Finder": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "apply_heuristic"], [4, 3, 1, "", "check_neighbors"], [4, 3, 1, "", "find_neighbors"], [4, 3, 1, "", "find_path"], [4, 3, 1, "", "keep_running"], [4, 3, 1, "", "process_node"]], "pathfinding3d.finder.ida_star": [[4, 1, 1, "", "IDAStarFinder"]], "pathfinding3d.finder.ida_star.IDAStarFinder": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "find_path"], [4, 3, 1, "", "search"]], "pathfinding3d.finder.msp": [[4, 1, 1, "", "MinimumSpanningTree"]], "pathfinding3d.finder.msp.MinimumSpanningTree": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "find_path"], [4, 3, 1, "", "itertree"], [4, 3, 1, "", "tree"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:function", "5": "py:exception"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"], "5": ["py", "exception", "Python exception"]}, "titleterms": {"welcom": 0, "pathfinding3d": [0, 1, 2, 3, 4], "": 0, "document": 0, "content": [0, 2, 3, 4], "indic": 0, "tabl": 0, "packag": [2, 3, 4], "subpackag": 2, "modul": [2, 3, 4], "core": 3, "submodul": [3, 4], "diagonal_mov": 3, "grid": 3, "heurist": 3, "node": 3, "util": 3, "world": 3, "finder": 4, "a_star": 4, "best_first": 4, "bi_a_star": 4, "breadth_first": 4, "dijkstra": 4, "ida_star": 4, "msp": 4}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "versionwarning.extension": 1, "sphinx": 58}, "alltitles": {"Welcome to pathfinding3d\u2019s documentation!": [[0, "welcome-to-pathfinding3d-s-documentation"]], "Contents:": [[0, null]], "Indices and tables": [[0, "indices-and-tables"]], "pathfinding3d": [[1, "pathfinding3d"]], "pathfinding3d package": [[2, "pathfinding3d-package"]], "Subpackages": [[2, "subpackages"]], "Module contents": [[2, "module-pathfinding3d"], [3, "module-pathfinding3d.core"], [4, "module-pathfinding3d.finder"]], "pathfinding3d.core package": [[3, "pathfinding3d-core-package"]], "Submodules": [[3, "submodules"], [4, "submodules"]], "pathfinding3d.core.diagonal_movement module": [[3, "module-pathfinding3d.core.diagonal_movement"]], "pathfinding3d.core.grid module": [[3, "module-pathfinding3d.core.grid"]], "pathfinding3d.core.heuristic module": [[3, "module-pathfinding3d.core.heuristic"]], "pathfinding3d.core.node module": [[3, "module-pathfinding3d.core.node"]], "pathfinding3d.core.util module": [[3, "module-pathfinding3d.core.util"]], "pathfinding3d.core.world module": [[3, "module-pathfinding3d.core.world"]], "pathfinding3d.finder package": [[4, "pathfinding3d-finder-package"]], "pathfinding3d.finder.a_star module": [[4, "module-pathfinding3d.finder.a_star"]], "pathfinding3d.finder.best_first module": [[4, "module-pathfinding3d.finder.best_first"]], "pathfinding3d.finder.bi_a_star module": [[4, "module-pathfinding3d.finder.bi_a_star"]], "pathfinding3d.finder.breadth_first module": [[4, "module-pathfinding3d.finder.breadth_first"]], "pathfinding3d.finder.dijkstra module": [[4, "module-pathfinding3d.finder.dijkstra"]], "pathfinding3d.finder.finder module": [[4, "module-pathfinding3d.finder.finder"]], "pathfinding3d.finder.ida_star module": [[4, "module-pathfinding3d.finder.ida_star"]], "pathfinding3d.finder.msp module": [[4, "module-pathfinding3d.finder.msp"]]}, "indexentries": {"module": [[2, "module-pathfinding3d"], [3, "module-pathfinding3d.core"], [3, "module-pathfinding3d.core.diagonal_movement"], [3, "module-pathfinding3d.core.grid"], [3, "module-pathfinding3d.core.heuristic"], [3, "module-pathfinding3d.core.node"], [3, "module-pathfinding3d.core.util"], [3, "module-pathfinding3d.core.world"], [4, "module-pathfinding3d.finder"], [4, "module-pathfinding3d.finder.a_star"], [4, "module-pathfinding3d.finder.best_first"], [4, "module-pathfinding3d.finder.bi_a_star"], [4, "module-pathfinding3d.finder.breadth_first"], [4, "module-pathfinding3d.finder.dijkstra"], [4, "module-pathfinding3d.finder.finder"], [4, "module-pathfinding3d.finder.ida_star"], [4, "module-pathfinding3d.finder.msp"]], "pathfinding3d": [[2, "module-pathfinding3d"]], "diagonalmovement (class in pathfinding3d.core.diagonal_movement)": [[3, "pathfinding3d.core.diagonal_movement.DiagonalMovement"]], "grid (class in pathfinding3d.core.grid)": [[3, "pathfinding3d.core.grid.Grid"]], "gridnode (class in pathfinding3d.core.node)": [[3, "pathfinding3d.core.node.GridNode"]], "node (class in pathfinding3d.core.node)": [[3, "pathfinding3d.core.node.Node"]], "world (class in pathfinding3d.core.world)": [[3, "pathfinding3d.core.world.World"]], "__init__() (pathfinding3d.core.grid.grid method)": [[3, "pathfinding3d.core.grid.Grid.__init__"]], "__init__() (pathfinding3d.core.node.gridnode method)": [[3, "pathfinding3d.core.node.GridNode.__init__"]], "__init__() (pathfinding3d.core.node.node method)": [[3, "pathfinding3d.core.node.Node.__init__"]], "__init__() (pathfinding3d.core.world.world method)": [[3, "pathfinding3d.core.world.World.__init__"]], "always (pathfinding3d.core.diagonal_movement.diagonalmovement attribute)": [[3, "pathfinding3d.core.diagonal_movement.DiagonalMovement.always"]], "backtrace() (in module pathfinding3d.core.util)": [[3, "pathfinding3d.core.util.backtrace"]], "bi_backtrace() (in module pathfinding3d.core.util)": [[3, "pathfinding3d.core.util.bi_backtrace"]], "bresenham() (in module pathfinding3d.core.util)": [[3, "pathfinding3d.core.util.bresenham"]], "build_nodes() (in module pathfinding3d.core.grid)": [[3, "pathfinding3d.core.grid.build_nodes"]], "calc_cost() (pathfinding3d.core.grid.grid method)": [[3, "pathfinding3d.core.grid.Grid.calc_cost"]], "calc_cost() (pathfinding3d.core.world.world method)": [[3, "pathfinding3d.core.world.World.calc_cost"]], "chebyshev() (in module pathfinding3d.core.heuristic)": [[3, "pathfinding3d.core.heuristic.chebyshev"]], "cleanup() (pathfinding3d.core.grid.grid method)": [[3, "pathfinding3d.core.grid.Grid.cleanup"]], "cleanup() (pathfinding3d.core.node.node method)": [[3, "pathfinding3d.core.node.Node.cleanup"]], "connect() (pathfinding3d.core.node.gridnode method)": [[3, "pathfinding3d.core.node.GridNode.connect"]], "connections (pathfinding3d.core.node.gridnode attribute)": [[3, "pathfinding3d.core.node.GridNode.connections"]], "euclidean() (in module pathfinding3d.core.heuristic)": [[3, "pathfinding3d.core.heuristic.euclidean"]], "expand_path() (in module pathfinding3d.core.util)": [[3, "pathfinding3d.core.util.expand_path"]], "grid_id (pathfinding3d.core.node.gridnode attribute)": [[3, "pathfinding3d.core.node.GridNode.grid_id"]], "if_at_most_one_obstacle (pathfinding3d.core.diagonal_movement.diagonalmovement attribute)": [[3, "pathfinding3d.core.diagonal_movement.DiagonalMovement.if_at_most_one_obstacle"]], "inside() (pathfinding3d.core.grid.grid method)": [[3, "pathfinding3d.core.grid.Grid.inside"]], "manhattan() (in module pathfinding3d.core.heuristic)": [[3, "pathfinding3d.core.heuristic.manhattan"]], "neighbors() (pathfinding3d.core.grid.grid method)": [[3, "pathfinding3d.core.grid.Grid.neighbors"]], "neighbors() (pathfinding3d.core.world.world method)": [[3, "pathfinding3d.core.world.World.neighbors"]], "never (pathfinding3d.core.diagonal_movement.diagonalmovement attribute)": [[3, "pathfinding3d.core.diagonal_movement.DiagonalMovement.never"]], "node() (pathfinding3d.core.grid.grid method)": [[3, "pathfinding3d.core.grid.Grid.node"]], "null() (in module pathfinding3d.core.heuristic)": [[3, "pathfinding3d.core.heuristic.null"]], "octile() (in module pathfinding3d.core.heuristic)": [[3, "pathfinding3d.core.heuristic.octile"]], "only_when_no_obstacle (pathfinding3d.core.diagonal_movement.diagonalmovement attribute)": [[3, "pathfinding3d.core.diagonal_movement.DiagonalMovement.only_when_no_obstacle"]], "pathfinding3d.core": [[3, "module-pathfinding3d.core"]], "pathfinding3d.core.diagonal_movement": [[3, "module-pathfinding3d.core.diagonal_movement"]], "pathfinding3d.core.grid": [[3, "module-pathfinding3d.core.grid"]], "pathfinding3d.core.heuristic": [[3, "module-pathfinding3d.core.heuristic"]], "pathfinding3d.core.node": [[3, "module-pathfinding3d.core.node"]], "pathfinding3d.core.util": [[3, "module-pathfinding3d.core.util"]], "pathfinding3d.core.world": [[3, "module-pathfinding3d.core.world"]], "raytrace() (in module pathfinding3d.core.util)": [[3, "pathfinding3d.core.util.raytrace"]], "smoothen_path() (in module pathfinding3d.core.util)": [[3, "pathfinding3d.core.util.smoothen_path"]], "walkable (pathfinding3d.core.node.gridnode attribute)": [[3, "pathfinding3d.core.node.GridNode.walkable"]], "walkable() (pathfinding3d.core.grid.grid method)": [[3, "pathfinding3d.core.grid.Grid.walkable"]], "weight (pathfinding3d.core.node.gridnode attribute)": [[3, "pathfinding3d.core.node.GridNode.weight"]], "x (pathfinding3d.core.node.gridnode attribute)": [[3, "pathfinding3d.core.node.GridNode.x"]], "y (pathfinding3d.core.node.gridnode attribute)": [[3, "pathfinding3d.core.node.GridNode.y"]], "z (pathfinding3d.core.node.gridnode attribute)": [[3, "pathfinding3d.core.node.GridNode.z"]], "astarfinder (class in pathfinding3d.finder.a_star)": [[4, "pathfinding3d.finder.a_star.AStarFinder"]], "bestfirst (class in pathfinding3d.finder.best_first)": [[4, "pathfinding3d.finder.best_first.BestFirst"]], "biastarfinder (class in pathfinding3d.finder.bi_a_star)": [[4, "pathfinding3d.finder.bi_a_star.BiAStarFinder"]], "breadthfirstfinder (class in pathfinding3d.finder.breadth_first)": [[4, "pathfinding3d.finder.breadth_first.BreadthFirstFinder"]], "dijkstrafinder (class in pathfinding3d.finder.dijkstra)": [[4, "pathfinding3d.finder.dijkstra.DijkstraFinder"]], "executionrunsexception": [[4, "pathfinding3d.finder.finder.ExecutionRunsException"]], "executiontimeexception": [[4, "pathfinding3d.finder.finder.ExecutionTimeException"]], "finder (class in pathfinding3d.finder.finder)": [[4, "pathfinding3d.finder.finder.Finder"]], "idastarfinder (class in pathfinding3d.finder.ida_star)": [[4, "pathfinding3d.finder.ida_star.IDAStarFinder"]], "minimumspanningtree (class in pathfinding3d.finder.msp)": [[4, "pathfinding3d.finder.msp.MinimumSpanningTree"]], "__init__() (pathfinding3d.finder.a_star.astarfinder method)": [[4, "pathfinding3d.finder.a_star.AStarFinder.__init__"]], "__init__() (pathfinding3d.finder.best_first.bestfirst method)": [[4, "pathfinding3d.finder.best_first.BestFirst.__init__"]], "__init__() (pathfinding3d.finder.bi_a_star.biastarfinder method)": [[4, "pathfinding3d.finder.bi_a_star.BiAStarFinder.__init__"]], "__init__() (pathfinding3d.finder.breadth_first.breadthfirstfinder method)": [[4, "pathfinding3d.finder.breadth_first.BreadthFirstFinder.__init__"]], "__init__() (pathfinding3d.finder.dijkstra.dijkstrafinder method)": [[4, "pathfinding3d.finder.dijkstra.DijkstraFinder.__init__"]], "__init__() (pathfinding3d.finder.finder.executionrunsexception method)": [[4, "pathfinding3d.finder.finder.ExecutionRunsException.__init__"]], "__init__() (pathfinding3d.finder.finder.executiontimeexception method)": [[4, "pathfinding3d.finder.finder.ExecutionTimeException.__init__"]], "__init__() (pathfinding3d.finder.finder.finder method)": [[4, "pathfinding3d.finder.finder.Finder.__init__"]], "__init__() (pathfinding3d.finder.ida_star.idastarfinder method)": [[4, "pathfinding3d.finder.ida_star.IDAStarFinder.__init__"]], "__init__() (pathfinding3d.finder.msp.minimumspanningtree method)": [[4, "pathfinding3d.finder.msp.MinimumSpanningTree.__init__"]], "apply_heuristic() (pathfinding3d.finder.best_first.bestfirst method)": [[4, "pathfinding3d.finder.best_first.BestFirst.apply_heuristic"]], "apply_heuristic() (pathfinding3d.finder.dijkstra.dijkstrafinder method)": [[4, "pathfinding3d.finder.dijkstra.DijkstraFinder.apply_heuristic"]], "apply_heuristic() (pathfinding3d.finder.finder.finder method)": [[4, "pathfinding3d.finder.finder.Finder.apply_heuristic"]], "check_neighbors() (pathfinding3d.finder.a_star.astarfinder method)": [[4, "pathfinding3d.finder.a_star.AStarFinder.check_neighbors"]], "check_neighbors() (pathfinding3d.finder.breadth_first.breadthfirstfinder method)": [[4, "pathfinding3d.finder.breadth_first.BreadthFirstFinder.check_neighbors"]], "check_neighbors() (pathfinding3d.finder.finder.finder method)": [[4, "pathfinding3d.finder.finder.Finder.check_neighbors"]], "find_neighbors() (pathfinding3d.finder.finder.finder method)": [[4, "pathfinding3d.finder.finder.Finder.find_neighbors"]], "find_path() (pathfinding3d.finder.a_star.astarfinder method)": [[4, "pathfinding3d.finder.a_star.AStarFinder.find_path"]], "find_path() (pathfinding3d.finder.bi_a_star.biastarfinder method)": [[4, "pathfinding3d.finder.bi_a_star.BiAStarFinder.find_path"]], "find_path() (pathfinding3d.finder.finder.finder method)": [[4, "pathfinding3d.finder.finder.Finder.find_path"]], "find_path() (pathfinding3d.finder.ida_star.idastarfinder method)": [[4, "pathfinding3d.finder.ida_star.IDAStarFinder.find_path"]], "find_path() (pathfinding3d.finder.msp.minimumspanningtree method)": [[4, "pathfinding3d.finder.msp.MinimumSpanningTree.find_path"]], "itertree() (pathfinding3d.finder.msp.minimumspanningtree method)": [[4, "pathfinding3d.finder.msp.MinimumSpanningTree.itertree"]], "keep_running() (pathfinding3d.finder.finder.finder method)": [[4, "pathfinding3d.finder.finder.Finder.keep_running"]], "pathfinding3d.finder": [[4, "module-pathfinding3d.finder"]], "pathfinding3d.finder.a_star": [[4, "module-pathfinding3d.finder.a_star"]], "pathfinding3d.finder.best_first": [[4, "module-pathfinding3d.finder.best_first"]], "pathfinding3d.finder.bi_a_star": [[4, "module-pathfinding3d.finder.bi_a_star"]], "pathfinding3d.finder.breadth_first": [[4, "module-pathfinding3d.finder.breadth_first"]], "pathfinding3d.finder.dijkstra": [[4, "module-pathfinding3d.finder.dijkstra"]], "pathfinding3d.finder.finder": [[4, "module-pathfinding3d.finder.finder"]], "pathfinding3d.finder.ida_star": [[4, "module-pathfinding3d.finder.ida_star"]], "pathfinding3d.finder.msp": [[4, "module-pathfinding3d.finder.msp"]], "process_node() (pathfinding3d.finder.finder.finder method)": [[4, "pathfinding3d.finder.finder.Finder.process_node"]], "search() (pathfinding3d.finder.ida_star.idastarfinder method)": [[4, "pathfinding3d.finder.ida_star.IDAStarFinder.search"]], "tree() (pathfinding3d.finder.msp.minimumspanningtree method)": [[4, "pathfinding3d.finder.msp.MinimumSpanningTree.tree"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["index", "modules", "pathfinding3d", "pathfinding3d.core", "pathfinding3d.finder"], "filenames": ["index.rst", "modules.rst", "pathfinding3d.rst", "pathfinding3d.core.rst", "pathfinding3d.finder.rst"], "titles": ["Welcome to pathfinding3d\u2019s documentation!", "pathfinding3d", "pathfinding3d package", "pathfinding3d.core package", "pathfinding3d.finder package"], "terms": {"packag": [0, 1], "index": 0, "modul": [0, 1], "search": [0, 2, 4], "page": [0, 4], "subpackag": 1, "core": [1, 2], "submodul": [1, 2], "diagonal_mov": [1, 2, 4], "grid": [1, 2, 4], "heurist": [1, 2, 4], "node": [1, 2, 4], "util": [1, 2], "world": [1, 2], "content": 1, "finder": [1, 2], "a_star": [1, 2], "best_first": [1, 2], "bi_a_star": [1, 2], "breadth_first": [1, 2], "dijkstra": [1, 2, 3], "ida_star": [1, 2], "msp": [1, 2], "diagonalmov": [2, 3, 4], "alwai": [2, 3], "never": [2, 3, 4], "if_at_most_one_obstacl": [2, 3], "only_when_no_obstacl": [2, 3], "build_nod": [2, 3], "__init__": [2, 3, 4], "insid": [2, 3], "walkabl": [2, 3], "calc_cost": [2, 3], "neighbor": [2, 3, 4], "cleanup": [2, 3], "null": [2, 3], "manhattan": [2, 3], "euclidean": [2, 3], "chebyshev": [2, 3], "octil": [2, 3], "gridnod": [2, 3, 4], "x": [2, 3], "y": [2, 3], "z": [2, 3], "weight": [2, 3, 4], "grid_id": [2, 3], "connect": [2, 3], "backtrac": [2, 3], "bi_backtrac": [2, 3], "raytrac": [2, 3], "bresenham": [2, 3], "expand_path": [2, 3], "smoothen_path": [2, 3], "astarfind": [2, 4], "check_neighbor": [2, 4], "find_path": [2, 4], "bestfirst": [2, 4], "apply_heurist": [2, 4], "biastarfind": [2, 4], "breadthfirstfind": [2, 4], "dijkstrafind": [2, 4], "executiontimeexcept": [2, 4], "executionrunsexcept": [2, 4], "find_neighbor": [2, 4], "keep_run": [2, 4], "process_nod": [2, 4], "idastarfind": [2, 4], "minimumspanningtre": [2, 4], "tree": [2, 4], "itertre": [2, 4], "class": [3, 4], "sourc": [3, 4], "base": [3, 4], "object": [3, 4], "1": [3, 4], "2": [3, 4], "3": 3, "4": 3, "width": 3, "height": 3, "depth": [3, 4], "matrix": 3, "none": [3, 4], "invers": 3, "fals": 3, "creat": 3, "accord": 3, "size": 3, "If": 3, "i": [3, 4], "given": [3, 4], "us": [3, 4], "determin": 3, "what": 3, "ar": [3, 4], "return": [3, 4], "type": [3, 4], "list": [3, 4], "paramet": [3, 4], "int": [3, 4], "The": [3, 4], "option": [3, 4], "A": [3, 4], "3d": [3, 4], "arrai": 3, "valu": [3, 4], "number": [3, 4], "specifi": 3, "how": 3, "thei": 3, "all": [3, 4], "bool": [3, 4], "true": [3, 4], "0": [3, 4], "consid": 3, "otherwis": 3, "id": 3, "contain": 3, "repres": 3, "map": [3, 4], "get": 3, "posit": 3, "check": [3, 4], "field": 3, "tile": [3, 4], "set": [3, 4], "node_a": [3, 4], "node_b": [3, 4], "distanc": [3, 4], "between": 3, "current": [3, 4], "cost": [3, 4], "float": [3, 4], "algorithm": [3, 4], "default": [3, 4], "one": 3, "from": [3, 4], "diagon": [3, 4], "movement": [3, 4], "allow": [3, 4], "see": [3, 4], "enum": [3, 4], "dx": 3, "dy": 3, "dz": 3, "special": 3, "so": 3, "h": 3, "calcul": [3, 4], "f": 3, "onli": [3, 4], "start": [3, 4], "point": [3, 4], "g": [3, 4], "union": [3, 4], "reset": 3, "fresh": 3, "pathfind": [3, 4], "basic": 3, "save": 3, "coordin": 3, "some": 3, "other_nod": 3, "parent": [3, 4], "record": 3, "path": [3, 4], "includ": 3, "both": 3, "end": [3, 4], "bi": [3, 4], "direct": [3, 4], "coords_a": 3, "coords_b": 3, "ly": 3, "line": 3, "form": 3, "rai": 3, "trace": 3, "coord": 3, "": 3, "compress": 3, "new": 3, "ha": [3, 4], "segment": [3, 4], "interpol": 3, "tupl": [3, 4], "expand": 3, "use_raytrac": 3, "an": 3, "uncompress": 3, "less": 3, "turn": 3, "look": 3, "more": 3, "natur": 3, "smoothen": 3, "whether": 3, "dict": 3, "two": 3, "first": [3, 4], "second": [3, 4], "wether": 3, "time_limit": 4, "max_run": 4, "callabl": 4, "find": 4, "shortest": 4, "edg": 4, "max": 4, "runtim": 4, "amount": 4, "tri": 4, "until": 4, "we": 4, "abort": 4, "enter": 4, "huge": 4, "have": 4, "time": 4, "constrain": 4, "mean": 4, "code": 4, "might": 4, "run": 4, "ani": 4, "larg": 4, "open_list": 4, "open_valu": 4, "backtrace_bi": 4, "next": 4, "found": 4, "store": 4, "possibl": 4, "step": 4, "process": 4, "iter": 4, "similar": 4, "helper": 4, "function": 4, "appli": 4, "can": 4, "breadth": 4, "except": 4, "messag": 4, "support": 4, "should": 4, "same": 4, "djikstra": 4, "ida": 4, "rais": 4, "part": 4, "its": 4, "add": 4, "remov": 4, "our": 4, "like": 4, "test": 4, "jump": 4, "jumppointsearch": 4, "keep": 4, "track": 4, "need": 4, "open": 4, "someth": 4, "els": 4, "than": 4, "over": 4, "track_recurs": 4, "deep": 4, "star": 4, "recurs": 4, "http": 4, "www": 4, "apl": 4, "jhu": 4, "edu": 4, "hall": 4, "ai": 4, "program": 4, "html": 4, "retrac": 4, "v": 4, "nageshwara": 4, "rao": 4, "vipin": 4, "kumar": 4, "k": 4, "ramesh": 4, "parallel": 4, "implement": 4, "januari": 4, "1987": 4, "ftp": 4, "c": 4, "utexa": 4, "snapshot": 4, "hourli": 4, "pub": 4, "lab": 4, "tech": 4, "report": 4, "ut": 4, "tr": 4, "87": 4, "46": 4, "pdf": 4, "javascript": 4, "gerard": 4, "meier": 4, "gerardmei": 4, "com": 4, "cutoff": 4, "arg": 4, "kwarg": 4, "minimum": 4, "span": 4, "brad": 4, "beatti": 4, "github": 4, "brean": 4, "python": 4, "issu": 4, "18": 4, "wikipedia": 4, "nice": 4, "descript": 4, "about": 4, "en": 4, "org": 4, "wiki": 4, "minimum_spanning_tre": 4, "gener": 4, "yield": 4}, "objects": {"": [[2, 0, 0, "-", "pathfinding3d"]], "pathfinding3d": [[3, 0, 0, "-", "core"], [4, 0, 0, "-", "finder"]], "pathfinding3d.core": [[3, 0, 0, "-", "diagonal_movement"], [3, 0, 0, "-", "grid"], [3, 0, 0, "-", "heuristic"], [3, 0, 0, "-", "node"], [3, 0, 0, "-", "util"], [3, 0, 0, "-", "world"]], "pathfinding3d.core.diagonal_movement": [[3, 1, 1, "", "DiagonalMovement"]], "pathfinding3d.core.diagonal_movement.DiagonalMovement": [[3, 2, 1, "", "always"], [3, 2, 1, "", "if_at_most_one_obstacle"], [3, 2, 1, "", "never"], [3, 2, 1, "", "only_when_no_obstacle"]], "pathfinding3d.core.grid": [[3, 1, 1, "", "Grid"], [3, 4, 1, "", "build_nodes"]], "pathfinding3d.core.grid.Grid": [[3, 3, 1, "", "__init__"], [3, 3, 1, "", "calc_cost"], [3, 3, 1, "", "cleanup"], [3, 3, 1, "", "inside"], [3, 3, 1, "", "neighbors"], [3, 3, 1, "", "node"], [3, 3, 1, "", "walkable"]], "pathfinding3d.core.heuristic": [[3, 4, 1, "", "chebyshev"], [3, 4, 1, "", "euclidean"], [3, 4, 1, "", "manhattan"], [3, 4, 1, "", "null"], [3, 4, 1, "", "octile"]], "pathfinding3d.core.node": [[3, 1, 1, "", "GridNode"], [3, 1, 1, "", "Node"]], "pathfinding3d.core.node.GridNode": [[3, 3, 1, "", "__init__"], [3, 3, 1, "", "connect"], [3, 2, 1, "", "connections"], [3, 2, 1, "", "grid_id"], [3, 2, 1, "", "walkable"], [3, 2, 1, "", "weight"], [3, 2, 1, "", "x"], [3, 2, 1, "", "y"], [3, 2, 1, "", "z"]], "pathfinding3d.core.node.Node": [[3, 3, 1, "", "__init__"], [3, 3, 1, "", "cleanup"]], "pathfinding3d.core.util": [[3, 4, 1, "", "backtrace"], [3, 4, 1, "", "bi_backtrace"], [3, 4, 1, "", "bresenham"], [3, 4, 1, "", "expand_path"], [3, 4, 1, "", "raytrace"], [3, 4, 1, "", "smoothen_path"]], "pathfinding3d.core.world": [[3, 1, 1, "", "World"]], "pathfinding3d.core.world.World": [[3, 3, 1, "", "__init__"], [3, 3, 1, "", "calc_cost"], [3, 3, 1, "", "neighbors"]], "pathfinding3d.finder": [[4, 0, 0, "-", "a_star"], [4, 0, 0, "-", "best_first"], [4, 0, 0, "-", "bi_a_star"], [4, 0, 0, "-", "breadth_first"], [4, 0, 0, "-", "dijkstra"], [4, 0, 0, "-", "finder"], [4, 0, 0, "-", "ida_star"], [4, 0, 0, "-", "msp"]], "pathfinding3d.finder.a_star": [[4, 1, 1, "", "AStarFinder"]], "pathfinding3d.finder.a_star.AStarFinder": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "check_neighbors"], [4, 3, 1, "", "find_path"]], "pathfinding3d.finder.best_first": [[4, 1, 1, "", "BestFirst"]], "pathfinding3d.finder.best_first.BestFirst": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "apply_heuristic"]], "pathfinding3d.finder.bi_a_star": [[4, 1, 1, "", "BiAStarFinder"]], "pathfinding3d.finder.bi_a_star.BiAStarFinder": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "find_path"]], "pathfinding3d.finder.breadth_first": [[4, 1, 1, "", "BreadthFirstFinder"]], "pathfinding3d.finder.breadth_first.BreadthFirstFinder": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "check_neighbors"]], "pathfinding3d.finder.dijkstra": [[4, 1, 1, "", "DijkstraFinder"]], "pathfinding3d.finder.dijkstra.DijkstraFinder": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "apply_heuristic"]], "pathfinding3d.finder.finder": [[4, 5, 1, "", "ExecutionRunsException"], [4, 5, 1, "", "ExecutionTimeException"], [4, 1, 1, "", "Finder"]], "pathfinding3d.finder.finder.ExecutionRunsException": [[4, 3, 1, "", "__init__"]], "pathfinding3d.finder.finder.ExecutionTimeException": [[4, 3, 1, "", "__init__"]], "pathfinding3d.finder.finder.Finder": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "apply_heuristic"], [4, 3, 1, "", "check_neighbors"], [4, 3, 1, "", "find_neighbors"], [4, 3, 1, "", "find_path"], [4, 3, 1, "", "keep_running"], [4, 3, 1, "", "process_node"]], "pathfinding3d.finder.ida_star": [[4, 1, 1, "", "IDAStarFinder"]], "pathfinding3d.finder.ida_star.IDAStarFinder": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "find_path"], [4, 3, 1, "", "search"]], "pathfinding3d.finder.msp": [[4, 1, 1, "", "MinimumSpanningTree"]], "pathfinding3d.finder.msp.MinimumSpanningTree": [[4, 3, 1, "", "__init__"], [4, 3, 1, "", "find_path"], [4, 3, 1, "", "itertree"], [4, 3, 1, "", "tree"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:function", "5": "py:exception"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "method", "Python method"], "4": ["py", "function", "Python function"], "5": ["py", "exception", "Python exception"]}, "titleterms": {"welcom": 0, "pathfinding3d": [0, 1, 2, 3, 4], "": 0, "document": 0, "content": [0, 2, 3, 4], "indic": 0, "tabl": 0, "packag": [2, 3, 4], "subpackag": 2, "modul": [2, 3, 4], "core": 3, "submodul": [3, 4], "diagonal_mov": 3, "grid": 3, "heurist": 3, "node": 3, "util": 3, "world": 3, "finder": 4, "a_star": 4, "best_first": 4, "bi_a_star": 4, "breadth_first": 4, "dijkstra": 4, "ida_star": 4, "msp": 4}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "versionwarning.extension": 1, "sphinx": 58}, "alltitles": {"Welcome to pathfinding3d\u2019s documentation!": [[0, "welcome-to-pathfinding3d-s-documentation"]], "Contents:": [[0, null]], "Indices and tables": [[0, "indices-and-tables"]], "pathfinding3d": [[1, "pathfinding3d"]], "pathfinding3d package": [[2, "pathfinding3d-package"]], "Subpackages": [[2, "subpackages"]], "Module contents": [[2, "module-pathfinding3d"], [3, "module-pathfinding3d.core"], [4, "module-pathfinding3d.finder"]], "pathfinding3d.core package": [[3, "pathfinding3d-core-package"]], "Submodules": [[3, "submodules"], [4, "submodules"]], "pathfinding3d.core.diagonal_movement module": [[3, "module-pathfinding3d.core.diagonal_movement"]], "pathfinding3d.core.grid module": [[3, "module-pathfinding3d.core.grid"]], "pathfinding3d.core.heuristic module": [[3, "module-pathfinding3d.core.heuristic"]], "pathfinding3d.core.node module": [[3, "module-pathfinding3d.core.node"]], "pathfinding3d.core.util module": [[3, "module-pathfinding3d.core.util"]], "pathfinding3d.core.world module": [[3, "module-pathfinding3d.core.world"]], "pathfinding3d.finder package": [[4, "pathfinding3d-finder-package"]], "pathfinding3d.finder.a_star module": [[4, "module-pathfinding3d.finder.a_star"]], "pathfinding3d.finder.best_first module": [[4, "module-pathfinding3d.finder.best_first"]], "pathfinding3d.finder.bi_a_star module": [[4, "module-pathfinding3d.finder.bi_a_star"]], "pathfinding3d.finder.breadth_first module": [[4, "module-pathfinding3d.finder.breadth_first"]], "pathfinding3d.finder.dijkstra module": [[4, "module-pathfinding3d.finder.dijkstra"]], "pathfinding3d.finder.finder module": [[4, "module-pathfinding3d.finder.finder"]], "pathfinding3d.finder.ida_star module": [[4, "module-pathfinding3d.finder.ida_star"]], "pathfinding3d.finder.msp module": [[4, "module-pathfinding3d.finder.msp"]]}, "indexentries": {"module": [[2, "module-pathfinding3d"], [3, "module-pathfinding3d.core"], [3, "module-pathfinding3d.core.diagonal_movement"], [3, "module-pathfinding3d.core.grid"], [3, "module-pathfinding3d.core.heuristic"], [3, "module-pathfinding3d.core.node"], [3, "module-pathfinding3d.core.util"], [3, "module-pathfinding3d.core.world"], [4, "module-pathfinding3d.finder"], [4, "module-pathfinding3d.finder.a_star"], [4, "module-pathfinding3d.finder.best_first"], [4, "module-pathfinding3d.finder.bi_a_star"], [4, "module-pathfinding3d.finder.breadth_first"], [4, "module-pathfinding3d.finder.dijkstra"], [4, "module-pathfinding3d.finder.finder"], [4, "module-pathfinding3d.finder.ida_star"], [4, "module-pathfinding3d.finder.msp"]], "pathfinding3d": [[2, "module-pathfinding3d"]], "diagonalmovement (class in pathfinding3d.core.diagonal_movement)": [[3, "pathfinding3d.core.diagonal_movement.DiagonalMovement"]], "grid (class in pathfinding3d.core.grid)": [[3, "pathfinding3d.core.grid.Grid"]], "gridnode (class in pathfinding3d.core.node)": [[3, "pathfinding3d.core.node.GridNode"]], "node (class in pathfinding3d.core.node)": [[3, "pathfinding3d.core.node.Node"]], "world (class in pathfinding3d.core.world)": [[3, "pathfinding3d.core.world.World"]], "__init__() (pathfinding3d.core.grid.grid method)": [[3, "pathfinding3d.core.grid.Grid.__init__"]], "__init__() (pathfinding3d.core.node.gridnode method)": [[3, "pathfinding3d.core.node.GridNode.__init__"]], "__init__() (pathfinding3d.core.node.node method)": [[3, "pathfinding3d.core.node.Node.__init__"]], "__init__() (pathfinding3d.core.world.world method)": [[3, "pathfinding3d.core.world.World.__init__"]], "always (pathfinding3d.core.diagonal_movement.diagonalmovement attribute)": [[3, "pathfinding3d.core.diagonal_movement.DiagonalMovement.always"]], "backtrace() (in module pathfinding3d.core.util)": [[3, "pathfinding3d.core.util.backtrace"]], "bi_backtrace() (in module pathfinding3d.core.util)": [[3, "pathfinding3d.core.util.bi_backtrace"]], "bresenham() (in module pathfinding3d.core.util)": [[3, "pathfinding3d.core.util.bresenham"]], "build_nodes() (in module pathfinding3d.core.grid)": [[3, "pathfinding3d.core.grid.build_nodes"]], "calc_cost() (pathfinding3d.core.grid.grid method)": [[3, "pathfinding3d.core.grid.Grid.calc_cost"]], "calc_cost() (pathfinding3d.core.world.world method)": [[3, "pathfinding3d.core.world.World.calc_cost"]], "chebyshev() (in module pathfinding3d.core.heuristic)": [[3, "pathfinding3d.core.heuristic.chebyshev"]], "cleanup() (pathfinding3d.core.grid.grid method)": [[3, "pathfinding3d.core.grid.Grid.cleanup"]], "cleanup() (pathfinding3d.core.node.node method)": [[3, "pathfinding3d.core.node.Node.cleanup"]], "connect() (pathfinding3d.core.node.gridnode method)": [[3, "pathfinding3d.core.node.GridNode.connect"]], "connections (pathfinding3d.core.node.gridnode attribute)": [[3, "pathfinding3d.core.node.GridNode.connections"]], "euclidean() (in module pathfinding3d.core.heuristic)": [[3, "pathfinding3d.core.heuristic.euclidean"]], "expand_path() (in module pathfinding3d.core.util)": [[3, "pathfinding3d.core.util.expand_path"]], "grid_id (pathfinding3d.core.node.gridnode attribute)": [[3, "pathfinding3d.core.node.GridNode.grid_id"]], "if_at_most_one_obstacle (pathfinding3d.core.diagonal_movement.diagonalmovement attribute)": [[3, "pathfinding3d.core.diagonal_movement.DiagonalMovement.if_at_most_one_obstacle"]], "inside() (pathfinding3d.core.grid.grid method)": [[3, "pathfinding3d.core.grid.Grid.inside"]], "manhattan() (in module pathfinding3d.core.heuristic)": [[3, "pathfinding3d.core.heuristic.manhattan"]], "neighbors() (pathfinding3d.core.grid.grid method)": [[3, "pathfinding3d.core.grid.Grid.neighbors"]], "neighbors() (pathfinding3d.core.world.world method)": [[3, "pathfinding3d.core.world.World.neighbors"]], "never (pathfinding3d.core.diagonal_movement.diagonalmovement attribute)": [[3, "pathfinding3d.core.diagonal_movement.DiagonalMovement.never"]], "node() (pathfinding3d.core.grid.grid method)": [[3, "pathfinding3d.core.grid.Grid.node"]], "null() (in module pathfinding3d.core.heuristic)": [[3, "pathfinding3d.core.heuristic.null"]], "octile() (in module pathfinding3d.core.heuristic)": [[3, "pathfinding3d.core.heuristic.octile"]], "only_when_no_obstacle (pathfinding3d.core.diagonal_movement.diagonalmovement attribute)": [[3, "pathfinding3d.core.diagonal_movement.DiagonalMovement.only_when_no_obstacle"]], "pathfinding3d.core": [[3, "module-pathfinding3d.core"]], "pathfinding3d.core.diagonal_movement": [[3, "module-pathfinding3d.core.diagonal_movement"]], "pathfinding3d.core.grid": [[3, "module-pathfinding3d.core.grid"]], "pathfinding3d.core.heuristic": [[3, "module-pathfinding3d.core.heuristic"]], "pathfinding3d.core.node": [[3, "module-pathfinding3d.core.node"]], "pathfinding3d.core.util": [[3, "module-pathfinding3d.core.util"]], "pathfinding3d.core.world": [[3, "module-pathfinding3d.core.world"]], "raytrace() (in module pathfinding3d.core.util)": [[3, "pathfinding3d.core.util.raytrace"]], "smoothen_path() (in module pathfinding3d.core.util)": [[3, "pathfinding3d.core.util.smoothen_path"]], "walkable (pathfinding3d.core.node.gridnode attribute)": [[3, "pathfinding3d.core.node.GridNode.walkable"]], "walkable() (pathfinding3d.core.grid.grid method)": [[3, "pathfinding3d.core.grid.Grid.walkable"]], "weight (pathfinding3d.core.node.gridnode attribute)": [[3, "pathfinding3d.core.node.GridNode.weight"]], "x (pathfinding3d.core.node.gridnode attribute)": [[3, "pathfinding3d.core.node.GridNode.x"]], "y (pathfinding3d.core.node.gridnode attribute)": [[3, "pathfinding3d.core.node.GridNode.y"]], "z (pathfinding3d.core.node.gridnode attribute)": [[3, "pathfinding3d.core.node.GridNode.z"]], "astarfinder (class in pathfinding3d.finder.a_star)": [[4, "pathfinding3d.finder.a_star.AStarFinder"]], "bestfirst (class in pathfinding3d.finder.best_first)": [[4, "pathfinding3d.finder.best_first.BestFirst"]], "biastarfinder (class in pathfinding3d.finder.bi_a_star)": [[4, "pathfinding3d.finder.bi_a_star.BiAStarFinder"]], "breadthfirstfinder (class in pathfinding3d.finder.breadth_first)": [[4, "pathfinding3d.finder.breadth_first.BreadthFirstFinder"]], "dijkstrafinder (class in pathfinding3d.finder.dijkstra)": [[4, "pathfinding3d.finder.dijkstra.DijkstraFinder"]], "executionrunsexception": [[4, "pathfinding3d.finder.finder.ExecutionRunsException"]], "executiontimeexception": [[4, "pathfinding3d.finder.finder.ExecutionTimeException"]], "finder (class in pathfinding3d.finder.finder)": [[4, "pathfinding3d.finder.finder.Finder"]], "idastarfinder (class in pathfinding3d.finder.ida_star)": [[4, "pathfinding3d.finder.ida_star.IDAStarFinder"]], "minimumspanningtree (class in pathfinding3d.finder.msp)": [[4, "pathfinding3d.finder.msp.MinimumSpanningTree"]], "__init__() (pathfinding3d.finder.a_star.astarfinder method)": [[4, "pathfinding3d.finder.a_star.AStarFinder.__init__"]], "__init__() (pathfinding3d.finder.best_first.bestfirst method)": [[4, "pathfinding3d.finder.best_first.BestFirst.__init__"]], "__init__() (pathfinding3d.finder.bi_a_star.biastarfinder method)": [[4, "pathfinding3d.finder.bi_a_star.BiAStarFinder.__init__"]], "__init__() (pathfinding3d.finder.breadth_first.breadthfirstfinder method)": [[4, "pathfinding3d.finder.breadth_first.BreadthFirstFinder.__init__"]], "__init__() (pathfinding3d.finder.dijkstra.dijkstrafinder method)": [[4, "pathfinding3d.finder.dijkstra.DijkstraFinder.__init__"]], "__init__() (pathfinding3d.finder.finder.executionrunsexception method)": [[4, "pathfinding3d.finder.finder.ExecutionRunsException.__init__"]], "__init__() (pathfinding3d.finder.finder.executiontimeexception method)": [[4, "pathfinding3d.finder.finder.ExecutionTimeException.__init__"]], "__init__() (pathfinding3d.finder.finder.finder method)": [[4, "pathfinding3d.finder.finder.Finder.__init__"]], "__init__() (pathfinding3d.finder.ida_star.idastarfinder method)": [[4, "pathfinding3d.finder.ida_star.IDAStarFinder.__init__"]], "__init__() (pathfinding3d.finder.msp.minimumspanningtree method)": [[4, "pathfinding3d.finder.msp.MinimumSpanningTree.__init__"]], "apply_heuristic() (pathfinding3d.finder.best_first.bestfirst method)": [[4, "pathfinding3d.finder.best_first.BestFirst.apply_heuristic"]], "apply_heuristic() (pathfinding3d.finder.dijkstra.dijkstrafinder method)": [[4, "pathfinding3d.finder.dijkstra.DijkstraFinder.apply_heuristic"]], "apply_heuristic() (pathfinding3d.finder.finder.finder method)": [[4, "pathfinding3d.finder.finder.Finder.apply_heuristic"]], "check_neighbors() (pathfinding3d.finder.a_star.astarfinder method)": [[4, "pathfinding3d.finder.a_star.AStarFinder.check_neighbors"]], "check_neighbors() (pathfinding3d.finder.breadth_first.breadthfirstfinder method)": [[4, "pathfinding3d.finder.breadth_first.BreadthFirstFinder.check_neighbors"]], "check_neighbors() (pathfinding3d.finder.finder.finder method)": [[4, "pathfinding3d.finder.finder.Finder.check_neighbors"]], "find_neighbors() (pathfinding3d.finder.finder.finder method)": [[4, "pathfinding3d.finder.finder.Finder.find_neighbors"]], "find_path() (pathfinding3d.finder.a_star.astarfinder method)": [[4, "pathfinding3d.finder.a_star.AStarFinder.find_path"]], "find_path() (pathfinding3d.finder.bi_a_star.biastarfinder method)": [[4, "pathfinding3d.finder.bi_a_star.BiAStarFinder.find_path"]], "find_path() (pathfinding3d.finder.finder.finder method)": [[4, "pathfinding3d.finder.finder.Finder.find_path"]], "find_path() (pathfinding3d.finder.ida_star.idastarfinder method)": [[4, "pathfinding3d.finder.ida_star.IDAStarFinder.find_path"]], "find_path() (pathfinding3d.finder.msp.minimumspanningtree method)": [[4, "pathfinding3d.finder.msp.MinimumSpanningTree.find_path"]], "itertree() (pathfinding3d.finder.msp.minimumspanningtree method)": [[4, "pathfinding3d.finder.msp.MinimumSpanningTree.itertree"]], "keep_running() (pathfinding3d.finder.finder.finder method)": [[4, "pathfinding3d.finder.finder.Finder.keep_running"]], "pathfinding3d.finder": [[4, "module-pathfinding3d.finder"]], "pathfinding3d.finder.a_star": [[4, "module-pathfinding3d.finder.a_star"]], "pathfinding3d.finder.best_first": [[4, "module-pathfinding3d.finder.best_first"]], "pathfinding3d.finder.bi_a_star": [[4, "module-pathfinding3d.finder.bi_a_star"]], "pathfinding3d.finder.breadth_first": [[4, "module-pathfinding3d.finder.breadth_first"]], "pathfinding3d.finder.dijkstra": [[4, "module-pathfinding3d.finder.dijkstra"]], "pathfinding3d.finder.finder": [[4, "module-pathfinding3d.finder.finder"]], "pathfinding3d.finder.ida_star": [[4, "module-pathfinding3d.finder.ida_star"]], "pathfinding3d.finder.msp": [[4, "module-pathfinding3d.finder.msp"]], "process_node() (pathfinding3d.finder.finder.finder method)": [[4, "pathfinding3d.finder.finder.Finder.process_node"]], "search() (pathfinding3d.finder.ida_star.idastarfinder method)": [[4, "pathfinding3d.finder.ida_star.IDAStarFinder.search"]], "tree() (pathfinding3d.finder.msp.minimumspanningtree method)": [[4, "pathfinding3d.finder.msp.MinimumSpanningTree.tree"]]}}) \ No newline at end of file