A* Pathfinding Project  3.7 The A* Pathfinding Project for Unity 3D
EuclideanEmbedding Class Reference

Implements heuristic optimizations. More...

## Detailed Description

Implements heuristic optimizations.

heuristic-opt
Game AI Pro - Pathfinding Architecture Optimizations by Steve Rabin and Nathan R. Sturtevant
A* Pro Feature:
This is an A* Pathfinding Project Pro feature only. This function/class/variable might not exist in the Free version of the A* Pathfinding Project or the functionality might be limited
The Pro version can be bought here

## Public Member Functions

uint GetHeuristic (int nodeIndex1, int nodeIndex2)

void OnDrawGizmos ()

void RecalculateCosts ()

void RecalculatePivots ()

## Public Attributes

bool dirty

HeuristicOptimizationMode mode

Transform pivotPointRoot
All children of this transform will be used as pivot points.

int seed

## Private Member Functions

void EnsureCapacity (int index)

void GetClosestWalkableNodesToChildrenRecursively (Transform tr, List< GraphNode > nodes)

uint GetRandom ()
Simple linear congruential generator.

## 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

int pivotCount

GraphNode[] pivots

uint ra = 12820163

uint rc = 1140671485

uint rval = 0

## Member Function Documentation

 void EnsureCapacity ( int index )
private
 void GetClosestWalkableNodesToChildrenRecursively ( Transform tr, List< GraphNode > nodes )
private
 uint GetHeuristic ( int nodeIndex1, int nodeIndex2 )
 uint GetRandom ( )
private

Simple linear congruential generator.

http://en.wikipedia.org/wiki/Linear_congruential_generator
 void OnDrawGizmos ( )
 void RecalculateCosts ( )
 void RecalculatePivots ( )

## Member Data Documentation

 uint [] costs = new uint[8]
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
 System.Object lockObj = new object()
private
 int maxNodeIndex
private
 int pivotCount
private
 Transform pivotPointRoot

All children of this transform will be used as pivot points.

 GraphNode [] pivots
private
 uint ra = 12820163
private
 uint rc = 1140671485
private
 uint rval = 0
private
 int seed