Namespace AnyPath.Graphs.Line
A graph that describes 3D edges/lines between points. Very similar to AnyPath.Graphs.PlatformerGraph, but in 3D. Note that the words edge and line are used interchangeably throughout the documentation.
Features:
Paths are calculated from arbitrary locations on edges to any position on another edge. So your pathfinding query doesn't have to start and end at the exact node positions but can be anywhere in between.
Edges themselves can have additional properties, like flags and additional cost to discourage paths along certain edges.
Edges can be made 'unwalkable' without rebuilding the entire graph by assigning a cost of infinity to an edge.
Closest edge queries from any position in space. If an agent moved away from an edge, it can recover it's location on the graph using these queries.
Edges can be directed and undirected.
Edges can have a user assigned Id to easily map back to MonoBehaviour scripts
The resulting path is a list of segments containing all the information, the exact enter and exit positions on each edge and it's flags, so once you have a path, there doesn't have to be any need to do additional raycasting or collision detection (with the static world at least).
AnyPath.Graphs.Line.SceneGraph, a Line Graph Scene Editor tool to design a line graph inside of your scene.