A* pathfinding in graphs

A single graph may have different properties according to the PathContext used

Usage:

var graph = new Graph[Node,WeightedLink]

var na = new Node(graph)
var nb = new Node(graph)
var nc = new Node(graph)
var nd = new Node(graph)
var ne = new Node(graph)

var lab = new WeightedLink(graph, na, nb, 2)
var lac = new WeightedLink(graph, na, nc, 3)
var lbd = new WeightedLink(graph, nb, nd, 1)
var lcd = new WeightedLink(graph, nc, nd, 3)
var lde = new WeightedLink(graph, nd, ne, 8)

var context = new WeightedPathContext(graph)

var path = na.path_to(ne, 100, context)
assert path != null else print "No possible path"

assert path.step == nb
assert path.step == nd
assert path.step == ne
assert path.at_end_of_path

All subgroups and modules

module a_star

a_star :: a_star

A* pathfinding in graphs
package_diagram a_star\> a_star serialization serialization a_star\>->serialization poset poset serialization->poset meta meta serialization->meta json json serialization->json ...poset ... ...poset->poset ...meta ... ...meta->meta ...json ... ...json->json

Ancestors

group codecs

core > codecs

Group module for all codec-related manipulations
group collection

core > collection

This module define several collection classes.
group core

core

Nit common library of core classes and methods
group meta

meta

Simple user-defined meta-level to manipulate types of instances as object.
group poset

poset

Pre order sets and partial order set (ie hierarchies)
group text

core > text

All the classes and methods related to the manipulation of text entities

Parents

group serialization

serialization

Abstract serialization services