Namespace AnyPath.Graphs
Classes
CorridorProcessor
Provides functions for processing a corridor to straighten a path through a corridor. A corridor is defined as a segment that has a Left and Right point to which the agent must travel in order to stay on the path.
CorridorProjectionExtensions
HexGridCheapestOptionEvaluator<TOption, TMod>
HexGridCheapestOptionFinder<TOption, TMod>
HexGridMultiPathEvaluator<TMod>
HexGridMultiPathFinder<TMod>
HexGridOptionEvaluator<TOption, TMod>
HexGridOptionFinder<TOption, TMod>
HexGridPathEvaluator<TMod>
HexGridPathFinder<TMod>
HexGridPriorityOptionEvaluator<TOption, TMod>
HexGridPriorityOptionFinder<TOption, TMod>
NavMeshGraphCheapestOptionEvaluator<TOption>
NavMeshGraphCheapestOptionEvaluator<TOption, TMod>
NavMeshGraphCheapestOptionFinder<TOption>
NavMeshGraphCheapestOptionFinder<TOption, TMod>
NavMeshGraphMultiPathEvaluator
NavMeshGraphMultiPathEvaluator<TMod>
NavMeshGraphMultiPathFinder
NavMeshGraphMultiPathFinder<TMod>
NavMeshGraphOptionEvaluator<TOption>
NavMeshGraphOptionEvaluator<TOption, TMod>
NavMeshGraphOptionFinder<TOption>
NavMeshGraphOptionFinder<TOption, TMod>
NavMeshGraphPathEvaluator
NavMeshGraphPathEvaluator<TMod>
NavMeshGraphPathFinder
NavMeshGraphPathFinder<TMod>
NavMeshGraphPriorityOptionEvaluator<TOption>
NavMeshGraphPriorityOptionEvaluator<TOption, TMod>
NavMeshGraphPriorityOptionFinder<TOption>
NavMeshGraphPriorityOptionFinder<TOption, TMod>
NavMeshWelder
PathUtil
Provides utility functions for traversing a path
PlatformerGraphBuilder
Utility to construct a platformer graph by connecting vertices by Id instead of index, which is far more convenient when building a custom editor. As an example use case, this class is used to construct the Platformer Graph by the AnyPath.Graphs.PlatformerSceneGraph
Structs
AABB
Axis Aligned Bounding Box with support for fast ray intersection checking.
AABB2D
CorridorSegmentProjection
Intermediate struct used by the algorithm. It keeps track of the original 3D sides of the portals and the 2D projected ones. This information can then be used to reconstruct the intersection points of the straightened path in 3D.
HexGrid
HexGrid.Cell
IdGraph2D
A simple graph structure that connects Id's together in 2D space
Int2Grid
A 2D-grid where each cell is defined as an int2 Every cell has a cost associated with it. Edges are created on the fly based on the stored cell data.
Travelling one cell along the map has a cost of 1 + destination cell cost. Travelling diagonally has a cost of sqrt(2) + destination cell cost. Unset cells have a default cost of zero. To make a cell unwalkable, assign it a cost of infinity. This means that every location is walkable by default.
Int2Grid.Cell
NativeOctree<T>
A simple, burst compatible octree implementation that supports raycast and AABB overlap queries.
NativeOctree<T>.PopulateJob
Burst accelerated populating of the octree. Every object is matched by index with it's AABB.
NativeQuadtree<T>
A simple, burst compatible octree implementation that supports raycast and AABB overlap queries.
NativeQuadtree<T>.PopulateJob
Burst accelerated populating of the quadtree. The octree is cleared and the boundary is set based on the min and max AABBS of the objects passed in. Every object is matched by index with it's AABB.
NavMeshFunnelProcessor
Processes the path on a navmesh using the Simple Stupid Funnel algorithm.
NavMeshGraph
A simple NavMesh graph.
NavMeshGraph.EnterCostAndFlags
NavMeshGraph.Location
Represents a triangle (index) and exact position within the NavMesh. Use the RaycastNode function on the NavMesh to get a node for a pathfinding request. Note that the Equals is overriden to only take triangleIndex into account.
NavMeshGraph.Segment
PlatformerGraph
A graph specifically designed for 2D platformer types of games, but can also be used as an advanced waypointing system. What makes this graph unique is that the edges themselves play the main part, not the nodes they connect. This allows for fluid positions anywhere on an edge.
PlatformerGraph.Location
Represents a location on the platformer graph. A location can be retrieved by calling the Raycast or Closest functions on the PlatformerGraph. A location can be used as a start/stop/goal in a path request.
PlatformerGraph.Segment
Represents a segment of a path on the Platformer Graph. The full directed path can be traversed by traversing each edge's Enter to it's Exit position.
PlatformerGraphBuilder.ProtoEdge
Prototype of an edge.
PlatformerGraphProcessor
Triangle
Represents a triangle in 3D space that supports raycasting
Interfaces
ICorridorSegment
Represents a path segment that can be processed (in place) by the Simple Stupid Funnel Algorithm. See http://digestingduck.blogspot.com/2010/03/simple-stupid-funnel-algorithm.html for information about the algorithm.
If your segments are rotated in 3D space, it might be neccessary to first unwrap the segments and project them into 2D space. See CorridorSegmentProjection on how to do this.
ICorridorSegmentProjection
Represents a corridor segment projected in 2D space. The CorridorProcessor uses this information to calculate a straight path through multiple corridor segments. If your path is strictly in a 2D plane, your segment struct can implement this interface as wel as ICorridorSegment. If your path has arbitrary orientations through 3D space, you can use IUnwrappableCorridorSegment to unwrap and project the path into 2D.
INavMeshGraphMultiFinder<TResult>
INavMeshGraphOptionFinder<TOption, TResult>
INavMeshGraphPathFinder<TResult>
ITreeCollector<T>
Used by the NativeOctree<T> and NativeQuadtree<T> to collect the objects that are possibly hit by a ray. Collect is called for each object that might intersect with the ray. You should provide further raycasting on the object itself.
IUnwrappableCorridorSegment
Represents a 3D corridor segment that can be unwrapped and projected into 2D space.
Enums
HexGrid.HexGridType
Int2Grid.NeighbourMode
Specifies how many neighbours every location has. Four neighbours only allows for straight movement. Eight neighbours includes diagonal movement.