A* Pathfinding Project  4.1.9
The A* Pathfinding Project for Unity 3D
PointNode Class Reference

Node used for the PointGraph. More...

Detailed Description

Node used for the PointGraph.

This is just a simple point with a list of connections (and associated costs) to other nodes. It does not have any concept of a surface like many other node types.

See also
PointGraph

Public Member Functions

 PointNode (AstarPath astar)
 
override void AddConnection (GraphNode node, uint cost)
 Add a connection from this node to the specified node. More...
 
override void ClearConnections (bool alsoReverse)
 Remove all connections from this node. More...
 
override bool ContainsConnection (GraphNode node)
 Checks if this node has a connection to the specified node. More...
 
override void DeserializeNode (GraphSerializationContext ctx)
 Deserializes node data (for example when loading graphs from file). More...
 
override void DeserializeReferences (GraphSerializationContext ctx)
 Used to deserialize references to other nodes e.g connections. More...
 
override void GetConnections (System.Action< GraphNode > action)
 Calls the delegate with all connections from this node. More...
 
override void GetConnections (System.Action< Connection > action)
 Calls the delegate with all connections and respective costs from this node. More...
 
override int GetGizmoHashCode ()
 Hash code used for checking if the gizmos need to be updated. More...
 
override void Open (Path path, PathNode pathNode, PathHandler handler)
 Open the node. More...
 
override void RemoveConnection (GraphNode node)
 Removes any connection from this node to the specified node. More...
 
override void SerializeNode (GraphSerializationContext ctx)
 Serializes node data (for example when saving graphs to file). More...
 
override void SerializeReferences (GraphSerializationContext ctx)
 Used to serialize references to other nodes e.g connections. More...
 
void SetPosition (Int3 value)
 
override void UpdateRecursiveG (Path path, PathNode pathNode, PathHandler handler)
 Internal method to update the G score. More...
 
- Public Member Functions inherited from GraphNode
virtual void FloodFill (Stack< GraphNode > stack, uint region)
 Internal method to run a flood fill in order to recalculate the Area property. More...
 
virtual bool GetPortal (GraphNode other, List< Vector3 > left, List< Vector3 > right, bool backwards)
 Add a portal from this node to the specified node. More...
 
virtual void OpenCooperative (CooperativeABPath path, PathNodeCooperative pathNode, CooperativePathHandler handler)
 Open the node cooperatively. More...
 
virtual Vector3 RandomPointOnSurface ()
 A random point on the surface of the node. More...
 
virtual void RecalculateConnectionCosts ()
 Recalculates all connection costs from this node. More...
 
virtual float SurfaceArea ()
 The surface area of the node in square world units. More...
 

Public Attributes

Connection [] connections
 
GameObject gameObject
 GameObject this node was created from (if any). More...
 
- Public Attributes inherited from GraphNode
const uint MaxAreaIndex = FlagsAreaMask >> FlagsAreaOffset
 
const uint MaxGraphIndex = FlagsGraphMask >> FlagsGraphOffset
 Max number of graphs-1. More...
 
Int3 position
 Position of the node in world space. More...
 

Additional Inherited Members

- Protected Member Functions inherited from GraphNode
 GraphNode (AstarPath astar)
 Constructor for a graph node. More...
 
- Protected Attributes inherited from GraphNode
uint flags
 Bitpacked field holding several pieces of data. More...
 
- Package Functions inherited from GraphNode
void Destroy ()
 Destroys the node. More...
 
- Properties inherited from GraphNode
uint Area [get, set]
 Connected component that contains the node. More...
 
bool Destroyed [get]
 
uint Flags [get, set]
 Holds various bitpacked variables. More...
 
NavGraph Graph [get]
 Graph which this node belongs to. More...
 
uint GraphIndex [get, set]
 Graph which contains this node. More...
 
int NodeIndex [get, private set]
 Internal unique index. More...
 
uint Penalty [get, set]
 Penalty cost for walking on this node. More...
 
uint Tag [get, set]
 Node tag. More...
 
bool TemporaryFlag1 [get, set]
 Temporary flag for internal purposes. More...
 
bool TemporaryFlag2 [get, set]
 Temporary flag for internal purposes. More...
 
bool Walkable [get, set]
 True if the node can be traversed. More...
 

Constructor & Destructor Documentation

◆ PointNode()

PointNode ( AstarPath  astar)

Member Function Documentation

◆ AddConnection()

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.

◆ ClearConnections()

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.

◆ ContainsConnection()

override bool ContainsConnection ( GraphNode  node)
virtual

Checks if this node has a connection to the specified node.

Reimplemented from GraphNode.

◆ DeserializeNode()

override void DeserializeNode ( GraphSerializationContext  ctx)
virtual

Deserializes node data (for example when loading graphs from file).

See also
SerializeNode

Reimplemented from GraphNode.

◆ DeserializeReferences()

override void DeserializeReferences ( GraphSerializationContext  ctx)
virtual

Used to deserialize references to other nodes e.g connections.

Use the GraphSerializationContext.GetNodeIdentifier and GraphSerializationContext.GetNodeFromIdentifier methods for serialization and deserialization respectively.

Nodes must override this method and serialize their connections. Graph generators do not need to call this method, it will be called automatically on all nodes at the correct time by the serializer.

Reimplemented from GraphNode.

◆ GetConnections() [1/2]

override void GetConnections ( System.Action< GraphNode action)
virtual

Calls the delegate with all connections from this node.

node.GetConnections(connectedTo => {
Debug.DrawLine((Vector3)node.position, (Vector3)connectedTo.position, Color.red);
});

You can add all connected nodes to a list like this

var connections = new List<GraphNode>();
node.GetConnections(connections.Add);

Implements GraphNode.

◆ GetConnections() [2/2]

override void GetConnections ( System.Action< Connection action)
virtual

Calls the delegate with all connections and respective costs from this node.

Implements GraphNode.

◆ GetGizmoHashCode()

override int GetGizmoHashCode ( )
virtual

Hash code used for checking if the gizmos need to be updated.

Will change when the gizmos for the node might change.

Reimplemented from GraphNode.

◆ Open()

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

Open the node.

Adds all neighbours of this node to the open list.

See also
https://en.wikipedia.org/wiki/A*_search_algorithm

Implements GraphNode.

◆ RemoveConnection()

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.

◆ SerializeNode()

override void SerializeNode ( GraphSerializationContext  ctx)
virtual

Serializes node data (for example when saving graphs to file).

See also
DeserializeNode

Reimplemented from GraphNode.

◆ SerializeReferences()

override void SerializeReferences ( GraphSerializationContext  ctx)
virtual

Used to serialize references to other nodes e.g connections.

Use the GraphSerializationContext.GetNodeIdentifier and GraphSerializationContext.GetNodeFromIdentifier methods for serialization and deserialization respectively.

Nodes must override this method and serialize their connections. Graph generators do not need to call this method, it will be called automatically on all nodes at the correct time by the serializer.

Reimplemented from GraphNode.

◆ SetPosition()

void SetPosition ( Int3  value)

◆ UpdateRecursiveG()

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

Internal method to update the G score.

Internal method to update the G score for this node and all children of it in the search graph

Reimplemented from GraphNode.

Member Data Documentation

◆ connections

Connection [] connections

◆ gameObject

GameObject gameObject

GameObject this node was created from (if any).

Warning
When loading a graph from a saved file or from cache, this field will be null.
var node = AstarPath.active.GetNearest(transform.position).node;
var pointNode = node as PointNode;
if (pointNode != null) {
Debug.Log("That node was created from the GameObject named " + pointNode.gameObject.name);
} else {
Debug.Log("That node is not a PointNode");
}

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