Versions in this module Expand all Collapse all v0 v0.8.3 Jun 6, 2026 v0.8.2 Jun 6, 2026 v0.8.1 Jun 6, 2026 v0.8.0 Jun 6, 2026 v0.7.6 Jun 5, 2026 v0.7.5 Jun 5, 2026 v0.7.4 Jun 5, 2026 v0.7.3 Jun 5, 2026 v0.7.2 Jun 5, 2026 v0.6.1 Jun 4, 2026 v0.5.1 Jun 3, 2026 v0.5.0 Jun 3, 2026 Changes in this version type Node + Weight float64 v0.4.0 Jun 3, 2026 v0.3.0 Jun 3, 2026 v0.2.0 Jun 2, 2026 Changes in this version + type JPSPlusFinder struct + DiagonalMovement DiagonalMovement + Heuristic HeuristicFunc + Weight float64 + func NewJPSPlusFinder(opts ...Option) *JPSPlusFinder + func (j *JPSPlusFinder) FindPath(startX, startY, endX, endY int, grid Grid) [][2]int + func (j *JPSPlusFinder) LoadPrecomputed(data []byte) error + func (j *JPSPlusFinder) Precompute(grid Grid) + func (j *JPSPlusFinder) PrecomputedData() ([]byte, error) + func (j *JPSPlusFinder) PrecomputedSize() int v0.1.0 Jun 2, 2026 Changes in this version + const SQRT2 + func AbsInt(x int) int + func Backtrace(node *Node) [][2]int + func BiBacktrace(nodeA, nodeB *Node) [][2]int + func CompressPath(path [][2]int) [][2]int + func ExpandPath(path [][2]int) [][2]int + func Interpolate(x0, y0, x1, y1 int) [][2]int + func MaxInt(a, b int) int + func PathLength(path [][2]int) float64 + type AStarFinder struct + DiagonalMovement DiagonalMovement + Heuristic HeuristicFunc + Weight float64 + func NewAStarFinder(opts ...Option) *AStarFinder + func (f *AStarFinder) FindPath(startX, startY, endX, endY int, grid Grid) [][2]int + type BestFirstFinder struct + func NewBestFirstFinder(opts ...Option) *BestFirstFinder + type BiAStarFinder struct + DiagonalMovement DiagonalMovement + Heuristic HeuristicFunc + Weight float64 + func NewBiAStarFinder(opts ...Option) *BiAStarFinder + func (f *BiAStarFinder) FindPath(startX, startY, endX, endY int, grid Grid) [][2]int + type BiBestFirstFinder struct + func NewBiBestFirstFinder(opts ...Option) *BiBestFirstFinder + type BiBreadthFirstFinder struct + DiagonalMovement DiagonalMovement + func NewBiBreadthFirstFinder(opts ...Option) *BiBreadthFirstFinder + func (f *BiBreadthFirstFinder) FindPath(startX, startY, endX, endY int, grid Grid) [][2]int + type BiDijkstraFinder struct + func NewBiDijkstraFinder(opts ...Option) *BiDijkstraFinder + type BreadthFirstFinder struct + DiagonalMovement DiagonalMovement + func NewBreadthFirstFinder(opts ...Option) *BreadthFirstFinder + func (f *BreadthFirstFinder) FindPath(startX, startY, endX, endY int, grid Grid) [][2]int + type DiagonalMovement int + const DiagonalAlways + const DiagonalIfAtMostOneObstacle + const DiagonalNever + const DiagonalOnlyWhenNoObstacles + type DijkstraFinder struct + func NewDijkstraFinder(opts ...Option) *DijkstraFinder + type Finder interface + FindPath func(startX, startY, endX, endY int, grid Grid) [][2]int + func NewJumpPointFinder(opts ...Option) Finder + type FinderOptions struct + AllowDiagonal bool + DiagonalMovement DiagonalMovement + DontCrossCorners bool + Heuristic HeuristicFunc + TimeLimit float64 + TrackRecursion bool + Weight float64 + func ApplyOptions(opts []Option) *FinderOptions + type Grid interface + Clone func() Grid + GetNeighbors func(node *Node, diagonal DiagonalMovement, buffer []*Node) []*Node + GetNodeAt func(x, y int) *Node + Height func() int + IsInside func(x, y int) bool + IsWalkableAt func(x, y int) bool + SetWalkableAt func(x, y int, walkable bool) + Width func() int + type GridWithJPSSupport interface + SupportsJPSCanonicalPruning func() bool + type HeuristicFunc func(dx, dy float64) float64 + var Chebyshev HeuristicFunc + var Euclidean HeuristicFunc + var Manhattan HeuristicFunc + var Octile HeuristicFunc + type IDAStarFinder struct + DiagonalMovement DiagonalMovement + Heuristic HeuristicFunc + TimeLimit float64 + TrackRecursion bool + Weight float64 + func NewIDAStarFinder(opts ...Option) *IDAStarFinder + func (f *IDAStarFinder) FindPath(startX, startY, endX, endY int, grid Grid) [][2]int + type JPFAlwaysMoveDiagonally struct + func NewJPFAlwaysMoveDiagonally(opts ...Option) *JPFAlwaysMoveDiagonally + type JPFMoveDiagonallyIfAtMostOneObstacle struct + func NewJPFMoveDiagonallyIfAtMostOneObstacle(opts ...Option) *JPFMoveDiagonallyIfAtMostOneObstacle + type JPFMoveDiagonallyIfNoObstacles struct + func NewJPFMoveDiagonallyIfNoObstacles(opts ...Option) *JPFMoveDiagonallyIfNoObstacles + type JPFNeverMoveDiagonally struct + func NewJPFNeverMoveDiagonally(opts ...Option) *JPFNeverMoveDiagonally + type JumpPointFinderBase struct + DiagonalMovement DiagonalMovement + Heuristic HeuristicFunc + TrackRecursion bool + func NewJumpPointFinderBase(opts ...Option) *JumpPointFinderBase + func (b *JumpPointFinderBase) FindPath(startX, startY, endX, endY int, grid Grid) [][2]int + type MinHeap struct + func NewMinHeap() *MinHeap + func (h *MinHeap) Empty() bool + func (h *MinHeap) Len() int + func (h *MinHeap) Pop() *Node + func (h *MinHeap) Push(n *Node) + func (h *MinHeap) UpdateItem(node *Node) + type Node struct + By int + Closed bool + F float64 + G float64 + H float64 + HeapIndex int + Opened int + Parent *Node + RetainCount int + SearchID int + Tested bool + Walkable bool + X int + Y int + func NewNode(x, y int) *Node + func (n *Node) ResetSearch(seq int) + type Option func(*FinderOptions) + func WithAllowDiagonal(dontCrossCorners bool) Option + func WithDiagonal(d DiagonalMovement) Option + func WithHeuristic(h HeuristicFunc) Option + func WithTimeLimit(seconds float64) Option + func WithTrackRecursion() Option + func WithWeight(w float64) Option