A* Pathfinding Project  3.8.2
The A* Pathfinding Project for Unity 3D
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Events Macros Groups Pages
GridNode Class Reference

Public Member Functions

 GridNode (AstarPath astar)
 
override void AddConnection (GraphNode node, uint cost)
 Add a connection from this node to the specified node.
 
override void ClearConnections (bool alsoReverse)
 Remove all connections from this node.
 
Vector3 ClosestPointOnNode (Vector3 p)
 
override void DeserializeNode (GraphSerializationContext ctx)
 
override void FloodFill (Stack< GraphNode > stack, uint region)
 
bool GetConnectionInternal (int dir)
 Returns true if the node has a connection in the specified direction.
 
override void GetConnections (GraphNodeDelegate del)
 Calls the delegate with all connections from this node.
 
override bool GetPortal (GraphNode other, List< Vector3 > left, List< Vector3 > right, bool backwards)
 Add a portal from this node to the specified node.
 
override void Open (Path path, PathNode pathNode, PathHandler handler)
 Open the node.
 
override void RemoveConnection (GraphNode node)
 Removes any connection from this node to the specified node.
 
void ResetConnectionsInternal ()
 Disables all grid connections from this node.
 
override void SerializeNode (GraphSerializationContext ctx)
 
void SetAllConnectionInternal (int connections)
 Sets the state of all grid connections.
 
void SetConnectionInternal (int dir, bool value)
 Enables or disables a connection in a specified direction on the graph.
 
override void UpdateRecursiveG (Path path, PathNode pathNode, PathHandler handler)
 

Static Public Member Functions

static GridGraph GetGridGraph (uint graphIndex)
 
static void SetGridGraph (int graphIndex, GridGraph graph)
 

Public Attributes

uint[] connectionCosts
 
GraphNode[] connections
 

Protected Attributes

ushort gridFlags
 
- Protected Attributes inherited from GridNodeBase
int nodeInGridIndex
 
- Protected Attributes inherited from GraphNode
uint flags
 Bitpacked field holding several pieces of data.
 

Properties

bool EdgeNode [get, set]
 
ushort InternalGridFlags [get, set]
 Internal use only.
 
bool TmpWalkable [get, set]
 Temporary variable used by graph updating.
 
bool WalkableErosion [get, set]
 Stores walkability before erosion is applied.
 
- Properties inherited from GridNodeBase
int NodeInGridIndex [get, set]
 The index of the node in the grid.
 
- Properties inherited from GraphNode
uint Area [get, set]
 
bool Destroyed [get]
 
uint Flags [get, set]
 Holds various bitpacked variables.
 
uint GraphIndex [get, set]
 
int NodeIndex [get]
 Internal unique index.
 
uint Penalty [get, set]
 Penalty cost for walking on this node.
 
uint Tag [get, set]
 
bool Walkable [get, set]
 True if the node is traversable.
 

Private Attributes

const int GridFlagsConnectionBit0 = 1 << GridFlagsConnectionOffset
 
const int GridFlagsConnectionMask = 0xFF << GridFlagsConnectionOffset
 
const int GridFlagsConnectionOffset = 0
 
const int GridFlagsEdgeNodeMask = 1 << GridFlagsEdgeNodeOffset
 
const int GridFlagsEdgeNodeOffset = 10
 
const int GridFlagsWalkableErosionMask = 1 << GridFlagsWalkableErosionOffset
 
const int GridFlagsWalkableErosionOffset = 8
 
const int GridFlagsWalkableTmpMask = 1 << GridFlagsWalkableTmpOffset
 
const int GridFlagsWalkableTmpOffset = 9
 

Static Private Attributes

static GridGraph[] _gridGraphs = new GridGraph[0]
 

Additional Inherited Members

- Protected Member Functions inherited from GridNodeBase
 GridNodeBase (AstarPath astar)
 

Constructor & Destructor Documentation

GridNode ( AstarPath  astar)

Member Function Documentation

override void AddConnection ( GraphNode  node,
uint  cost 
)
virtual

Add a connection from this node to the specified node.

If the connection already exists, the cost will simply be updated and no extra connection added.

Note
Only adds a one-way connection. Consider calling the same function on the other node to get a two-way connection.

Implements GraphNode.

override void ClearConnections ( bool  alsoReverse)
virtual

Remove all connections from this node.

Parameters
alsoReverseif true, neighbours will be requested to remove connections to this node.

Implements GraphNode.

Vector3 ClosestPointOnNode ( Vector3  p)
override void DeserializeNode ( GraphSerializationContext  ctx)
virtual

Reimplemented from GraphNode.

override void FloodFill ( Stack< GraphNode stack,
uint  region 
)
virtual

Reimplemented from GraphNode.

bool GetConnectionInternal ( int  dir)

Returns true if the node has a connection in the specified direction.

The dir parameter corresponds to directions in the grid as:

[0] = -Y
[1] = +X
[2] = +Y
[3] = -X
[4] = -Y+X
[5] = +Y+X
[6] = +Y-X
[7] = -Y-X
See Also
SetConnectionInternal
override void GetConnections ( GraphNodeDelegate  del)
virtual

Calls the delegate with all connections from this node.

Implements GraphNode.

static GridGraph GetGridGraph ( uint  graphIndex)
static
override bool GetPortal ( GraphNode  other,
List< Vector3 >  left,
List< Vector3 >  right,
bool  backwards 
)
virtual

Add a portal from this node to the specified node.

This function should add a portal to the left and right lists which is connecting the two nodes (this and other).

Parameters
otherThe node which is on the other side of the portal (strictly speaking it does not actually have to be on the other side of the portal though).
leftList of portal points on the left side of the funnel
rightList of portal points on the right side of the funnel
backwardsIf this is true, the call was made on a node with the other node as the node before this one in the path. In this case you may choose to do nothing since a similar call will be made to the other node with this node referenced as other (but then with backwards = true). You do not have to care about switching the left and right lists, that is done for you already.
Returns
True if the call was deemed successful. False if some unknown case was encountered and no portal could be added. If both calls to node1.GetPortal (node2,...) and node2.GetPortal (node1,...) return false, the funnel modifier will fall back to adding to the path the positions of the node.

The default implementation simply returns false.

This function may add more than one portal if necessary.

See Also
http://digestingduck.blogspot.se/2010/03/simple-stupid-funnel-algorithm.html

Reimplemented from GraphNode.

override void Open ( Path  path,
PathNode  pathNode,
PathHandler  handler 
)
virtual

Open the node.

Implements GraphNode.

override void RemoveConnection ( GraphNode  node)
virtual

Removes any connection from this node to the specified node.

If no such connection exists, nothing will be done.

Note
This only removes the connection from this node to the other node. You may want to call the same function on the other node to remove its eventual connection to this node.

Implements GraphNode.

void ResetConnectionsInternal ( )

Disables all grid connections from this node.

Note
Other nodes might still be able to get to this node. Therefore it is recommended to also disable the relevant connections on adjacent nodes.
override void SerializeNode ( GraphSerializationContext  ctx)
virtual

Reimplemented from GraphNode.

void SetAllConnectionInternal ( int  connections)

Sets the state of all grid connections.

Parameters
connectionsa bitmask of the connections (bit 0 is the first connection, etc.).
See Also
SetConnectionInternal
void SetConnectionInternal ( int  dir,
bool  value 
)

Enables or disables a connection in a specified direction on the graph.

See Also
GetConnectionInternal
static void SetGridGraph ( int  graphIndex,
GridGraph  graph 
)
static
override void UpdateRecursiveG ( Path  path,
PathNode  pathNode,
PathHandler  handler 
)
virtual

Reimplemented from GraphNode.

Member Data Documentation

GridGraph [] _gridGraphs = new GridGraph[0]
staticprivate
uint [] connectionCosts
GraphNode [] connections
ushort gridFlags
protected
const int GridFlagsConnectionBit0 = 1 << GridFlagsConnectionOffset
private
const int GridFlagsConnectionMask = 0xFF << GridFlagsConnectionOffset
private
const int GridFlagsConnectionOffset = 0
private
const int GridFlagsEdgeNodeMask = 1 << GridFlagsEdgeNodeOffset
private
const int GridFlagsEdgeNodeOffset = 10
private
const int GridFlagsWalkableErosionMask = 1 << GridFlagsWalkableErosionOffset
private
const int GridFlagsWalkableErosionOffset = 8
private
const int GridFlagsWalkableTmpMask = 1 << GridFlagsWalkableTmpOffset
private
const int GridFlagsWalkableTmpOffset = 9
private

Property Documentation

bool EdgeNode
getset
ushort InternalGridFlags
getsetpackage

Internal use only.

bool TmpWalkable
getset

Temporary variable used by graph updating.

bool WalkableErosion
getset

Stores walkability before erosion is applied.

Used by graph updating.


The documentation for this class was generated from the following file: