Base class for GridNode and LevelGridNode.
More...
Base class for GridNode and LevelGridNode.
|
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.
|
|
override bool | ContainsConnection (GraphNode node) |
| Checks if this node has a connection to the specified node.
|
|
override void | DeserializeReferences (GraphSerializationContext ctx) |
| Used to deserialize references to other nodes e.g connections.
|
|
override void | FloodFill (System.Collections.Generic.Stack< GraphNode > stack, uint region) |
|
override void | GetConnections (System.Action< GraphNode > action) |
| Calls the delegate with all connections from this node.
|
|
override int | GetGizmoHashCode () |
| Hash code used for checking if the gizmos need to be updated.
|
|
abstract GridNodeBase | GetNeighbourAlongDirection (int direction) |
| Adjacent grid node in the specified direction.
|
|
override void | Open (Path path, PathNode pathNode, PathHandler handler) |
| Open the node.
|
|
override Vector3 | RandomPointOnSurface () |
| A random point on the surface of the node.
|
|
override void | RemoveConnection (GraphNode node) |
| Removes any connection from this node to the specified node.
|
|
override void | SerializeReferences (GraphSerializationContext ctx) |
| Used to serialize references to other nodes e.g connections.
|
|
override float | SurfaceArea () |
| The surface area of the node in square world units.
|
|
override void | UpdateRecursiveG (Path path, PathNode pathNode, PathHandler handler) |
|
virtual void | DeserializeNode (GraphSerializationContext ctx) |
|
virtual void | FloodFill (Stack< GraphNode > stack, uint region) |
|
virtual bool | GetPortal (GraphNode other, List< Vector3 > left, List< Vector3 > right, bool backwards) |
| Add a portal from this node to the specified node.
|
|
virtual void | RecalculateConnectionCosts () |
| Recalculates all connection costs from this node.
|
|
virtual void | SerializeNode (GraphSerializationContext ctx) |
|
|
abstract bool | HasConnectionsToAllEightNeighbours [get] |
| True if the node has grid connections to all its 8 neighbours.
|
|
int | NodeInGridIndex [get, set] |
| The index of the node in the grid.
|
|
bool | TmpWalkable [get, set] |
| Temporary variable used internally when updating the graph.
|
|
bool | WalkableErosion [get, set] |
| Stores walkability before erosion is applied.
|
|
int | XCoordinateInGrid [get] |
| X coordinate of the node in the grid.
|
|
int | ZCoordinateInGrid [get] |
| Z coordinate of the node in the grid.
|
|
uint | Area [get, set] |
| Connected component that contains the node.
|
|
bool | Destroyed [get] |
|
uint | Flags [get, set] |
| Holds various bitpacked variables.
|
|
uint | GraphIndex [get, set] |
| Graph which contains this node.
|
|
int | NodeIndex [get] |
| Internal unique index.
|
|
uint | Penalty [get, set] |
| Penalty cost for walking on this node.
|
|
uint | Tag [get, set] |
| Node tag.
|
|
bool | Walkable [get, set] |
| True if the node is traversable.
|
|
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
-
alsoReverse | if true, neighbours will be requested to remove connections to this node. |
Implements GraphNode.
override bool ContainsConnection |
( |
GraphNode |
node | ) |
|
|
virtual |
Checks if this node has a connection to the specified node.
Reimplemented from GraphNode.
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.
override void FloodFill |
( |
System.Collections.Generic.Stack< GraphNode > |
stack, |
|
|
uint |
region |
|
) |
| |
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.
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.
abstract GridNodeBase GetNeighbourAlongDirection |
( |
int |
direction | ) |
|
|
pure virtual |
Adjacent grid node in the specified direction.
This will return null if the node does not have a connection to a node in that direction.
The dir parameter corresponds to directions in the grid as:
Z
|
|
6 2 5
\ | /
-- 3 - X - 1 ----- X
/ | \
7 0 4
|
|
- See Also
- GetConnections
Implemented in LevelGridNode, and GridNode.
override Vector3 RandomPointOnSurface |
( |
| ) |
|
|
virtual |
A random point on the surface of the node.
For point nodes and other nodes which do not have a surface, this will always return the position of the node.
Reimplemented from 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.
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.
override float SurfaceArea |
( |
| ) |
|
|
virtual |
The surface area of the node in square world units.
Reimplemented from GraphNode.
const int GridFlagsWalkableErosionOffset = 8 |
|
private |
const int GridFlagsWalkableTmpOffset = 9 |
|
private |
Bitfield containing the x and z coordinates of the node as well as the layer (for layered grid graphs).
- See Also
- NodeInGridIndex
const int NodeInGridIndexLayerOffset = 24 |
|
protected |
const int NodeInGridIndexMask = 0xFFFFFF |
|
protected |
abstract bool HasConnectionsToAllEightNeighbours |
|
get |
The index of the node in the grid.
This is x + z*graph.width So you can get the X and Z indices using
int index = node.NodeInGridIndex;
int x = index % graph.width;
int z = index / graph.width;
Temporary variable used internally when updating the graph.
Stores walkability before erosion is applied.
Used internally when updating the graph.
X coordinate of the node in the grid.
The node in the bottom left corner has (x,z) = (0,0) and the one in the opposite corner has (x,z) = (width-1, depth-1)
- See Also
- ZCoordInGrid
-
NodeInGridIndex
Z coordinate of the node in the grid.
The node in the bottom left corner has (x,z) = (0,0) and the one in the opposite corner has (x,z) = (width-1, depth-1)
- See Also
- XCoordInGrid
-
NodeInGridIndex
The documentation for this class was generated from the following file:
- /Users/arong/Unity/a-pathfinding-project/Assets/AstarPathfindingProject/Generators/NodeClasses/GridNodeBase.cs