Package squidpony.squidai.graph
Graphs and graph algorithms used primarily (but not exclusively) for pathfinding.
This package is almost entirely based on simple-graphs, and most files in this package share simple-graphs' MIT license (they have the MIT license header). Heuristic.java is partly from gdx-ai, though more of its lines of code are from SquidLib, so it shares the Apache license of both, while CostlyGraph and DefaultGraph are purely SquidLib.
This package is almost entirely based on simple-graphs, and most files in this package share simple-graphs' MIT license (they have the MIT license header). Heuristic.java is partly from gdx-ai, though more of its lines of code are from SquidLib, so it shares the Apache license of both, while CostlyGraph and DefaultGraph are purely SquidLib.
-
Interface Summary Interface Description Heuristic<V> AHeuristic
generates estimates of the cost to move from a given node to the goal. -
Class Summary Class Description Algorithms<V> Most of the algorithms that operate on aGraph
are defined here, with some specific cases in subclasses.Connection<V> The most-commonly-used class that represents an edge between nodes on a Graph.Connection.DirectedConnection<V> A Connection that treats A-to-B as a different edge from B-to-A.Connection.UndirectedConnection<V> A Connection that treats A-to-B and B-to-A as the same edge.CostlyGraph A default setting for a DirectedGraph of Coord vertices where each passable cell has a cost to enter it from any passable neighbor.DefaultGraph A default setting for anUndirectedGraph
of Coord vertices where all connections have cost 1.DirectedGraph<V> A kind ofGraph
where all connections between vertices are one-way (but a connection may exist that goes from A to B and another connection may go from B to A), and each connection can have a different cost.DirectedGraphAlgorithms<V> Algorithms specific to directed graphs, likeCostlyGraph
, as well as generalAlgorithms
.Edge<V> Abstract superclass of any connection between nodes on a graph.Graph<V> Abstract superclass of actual Graph types, likeDirectedGraph
andUndirectedGraph
.Node<V> An extended version ofBinaryHeap.Node
that also stores a reference to the parent Graph, a vertex object of typeV
, a Map of neighbor Nodes to the appropriateConnection
per Node, an extra List of those same Connections for faster iteration, and a lot of internal data used by algorithms in this package.UndirectedGraph<V> A kind ofGraph
where all connections between vertices are two-way and have equal cost for traveling A to B or B to A.UndirectedGraphAlgorithms<V> Algorithms specific to undirected graphs, likeDefaultGraph
, as well as generalAlgorithms
.