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.
  • Interface Summary 
    Interface Description
    Heuristic<V>
    A Heuristic 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 a Graph 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 an UndirectedGraph of Coord vertices where all connections have cost 1.
    DirectedGraph<V>
    A kind of Graph 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, like CostlyGraph, as well as general Algorithms.
    Edge<V>
    Abstract superclass of any connection between nodes on a graph.
    Graph<V>
    Abstract superclass of actual Graph types, like DirectedGraph and UndirectedGraph.
    Node<V>
    An extended version of BinaryHeap.Node that also stores a reference to the parent Graph, a vertex object of type V, a Map of neighbor Nodes to the appropriate Connection 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 of Graph 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, like DefaultGraph, as well as general Algorithms.