|
A* Pathfinding Project
3.6
The A* Pathfinding Project for Unity 3D
|
Implements heuristic optimizations. More...
Implements heuristic optimizations.
Public Member Functions | |
| uint | GetHeuristic (int nodeIndex1, int nodeIndex2) |
| uint | GetRandom () |
| Simple linear congruential generator. | |
| void | OnDrawGizmos () |
| void | RecalculateCosts () |
| void | RecalculatePivots () |
Public Attributes | |
| bool | dirty = false |
| HeuristicOptimizationMode | mode |
| Transform | pivotPointRoot |
| All children of this transform will be used as pivot points. | |
| int | seed |
| int | spreadOutCount = 1 |
Private Member Functions | |
| void | EnsureCapacity (int index) |
| void | GetClosestWalkableNodesToChildrenRecursively (Transform tr, List< GraphNode > nodes) |
Private Attributes | |
| uint[] | costs = new uint[8] |
| Costs laid out as n*[int],n*[int],n*[int] where n is the number of pivot points. | |
| System.Object | lockObj = new object() |
| int | maxNodeIndex = 0 |
| int | pivotCount = 0 |
| GraphNode[] | pivots = null |
| uint | ra = 12820163 |
| uint | rc = 1140671485 |
| uint | rval = 0 |
|
private |
|
private |
| uint GetHeuristic | ( | int | nodeIndex1, |
| int | nodeIndex2 | ||
| ) |
| uint GetRandom | ( | ) |
Simple linear congruential generator.
| void OnDrawGizmos | ( | ) |
| void RecalculateCosts | ( | ) |
| void RecalculatePivots | ( | ) |
|
private |
Costs laid out as n*[int],n*[int],n*[int] where n is the number of pivot points.
Each node has n integers which is the cost from that node to the pivot node. They are at around the same place in the array for simplicity and for cache locality.
cost(nodeIndex, pivotIndex) = costs[nodeIndex*pivotCount+pivotIndex]
| bool dirty = false |
|
private |
|
private |
|
private |
| Transform pivotPointRoot |
All children of this transform will be used as pivot points.
|
private |
|
private |
|
private |
|
private |
| int seed |
| int spreadOutCount = 1 |