A* Pathfinding Project
4.1.9
The A* Pathfinding Project for Unity 3D
|
Describes a single node for the LayerGridGraph. More...
Describes a single node for the LayerGridGraph.
Works almost the same as a grid node, except that it also stores to which layer the connections go to
Public Member Functions | |
LevelGridNode (AstarPath astar) | |
override void | ClearConnections (bool alsoReverse) |
Remove all connections from this node. More... | |
override void | DeserializeNode (GraphSerializationContext ctx) |
Deserializes node data (for example when loading graphs from file). More... | |
override void | FloodFill (Stack< GraphNode > stack, uint region) |
Internal method to run a flood fill in order to recalculate the Area property. More... | |
bool | GetConnection (int i) |
Is there a grid connection in that direction. 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... | |
int | GetConnectionValue (int dir) |
Which layer a grid connection goes to. More... | |
override int | GetGizmoHashCode () |
Hash code used for checking if the gizmos need to be updated. More... | |
override GridNodeBase | GetNeighbourAlongDirection (int direction) |
Adjacent grid node in the specified direction. More... | |
override bool | GetPortal (GraphNode other, List< Vector3 > left, List< Vector3 > right, bool backwards) |
Add a portal from this node to the specified node. More... | |
bool | HasAnyGridConnections () |
Does this node have any grid connections. More... | |
override void | Open (Path path, PathNode pathNode, PathHandler handler) |
Open the node. More... | |
void | ResetAllGridConnections () |
Removes all grid connections from this node. More... | |
override void | SerializeNode (GraphSerializationContext ctx) |
Serializes node data (for example when saving graphs to file). More... | |
void | SetConnectionValue (int dir, int value) |
Set which layer a grid connection goes to. More... | |
void | SetPosition (Int3 position) |
override void | UpdateRecursiveG (Path path, PathNode pathNode, PathHandler handler) |
Internal method to update the G score. More... | |
Public Member Functions inherited from GridNodeBase | |
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... | |
void | ClearCustomConnections (bool alsoReverse) |
Same as ClearConnections, but does not clear grid connections, only custom ones (e.g added by AddConnection or a NodeLink component) More... | |
override bool | ContainsConnection (GraphNode node) |
Checks if this node has a connection to the specified node. More... | |
override void | DeserializeReferences (GraphSerializationContext ctx) |
Used to deserialize references to other nodes e.g connections. More... | |
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. 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 Vector3 | RandomPointOnSurface () |
A random point on the surface of the node. More... | |
override void | RemoveConnection (GraphNode node) |
Removes any connection from this node to the specified node. More... | |
override void | SerializeReferences (GraphSerializationContext ctx) |
Used to serialize references to other nodes e.g connections. More... | |
override float | SurfaceArea () |
The surface area of the node in square world units. More... | |
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 | OpenCooperative (CooperativeABPath path, PathNodeCooperative pathNode, CooperativePathHandler handler) |
Open the node cooperatively. More... | |
virtual void | RecalculateConnectionCosts () |
Recalculates all connection costs from this node. More... | |
Static Public Member Functions | |
static LayerGridGraph | GetGridGraph (uint graphIndex) |
static void | SetGridGraph (int graphIndex, LayerGridGraph graph) |
Public Attributes | |
const int | ConnectionMask = 0xFF |
ulong | gridConnections |
const int | MaxLayerCount = ConnectionMask |
const int | NoConnection = 0xFF |
Public Attributes inherited from GridNodeBase | |
Connection [] | connections |
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... | |
Static Protected Attributes | |
static LayerGridGraph [] | gridGraphs |
Properties | |
override bool | HasConnectionsToAllEightNeighbours [get] |
int | LayerCoordinateInGrid [get, set] |
Layer coordinate of the node in the grid. More... | |
Properties inherited from GridNodeBase | |
abstract bool | HasConnectionsToAllEightNeighbours [get] |
True if the node has grid connections to all its 8 neighbours. More... | |
int | NodeInGridIndex [get, set] |
The index of the node in the grid. More... | |
bool | TmpWalkable [get, set] |
Temporary variable used internally when updating the graph. More... | |
bool | WalkableErosion [get, set] |
Stores walkability before erosion is applied. More... | |
int | XCoordinateInGrid [get] |
X coordinate of the node in the grid. More... | |
int | ZCoordinateInGrid [get] |
Z coordinate of the node in the grid. 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... | |
Private Attributes | |
const int | ConnectionStride = 8 |
Static Private Attributes | |
static LayerGridGraph [] | _gridGraphs = new LayerGridGraph[0] |
Additional Inherited Members | |
Protected Member Functions inherited from GridNodeBase | |
GridNodeBase (AstarPath astar) | |
Protected Member Functions inherited from GraphNode | |
GraphNode (AstarPath astar) | |
Constructor for a graph node. More... | |
Protected Attributes inherited from GridNodeBase | |
ushort | gridFlags |
int | nodeInGridIndex |
Bitfield containing the x and z coordinates of the node as well as the layer (for layered grid graphs). More... | |
const int | NodeInGridIndexLayerOffset = 24 |
const int | NodeInGridIndexMask = 0xFFFFFF |
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... | |
LevelGridNode | ( | AstarPath | astar | ) |
|
virtual |
Remove all connections from this node.
alsoReverse | if true, neighbours will be requested to remove connections to this node. |
Implements GraphNode.
|
virtual |
Deserializes node data (for example when loading graphs from file).
Reimplemented from GraphNode.
|
virtual |
Internal method to run a flood fill in order to recalculate the Area property.
Reimplemented from GraphNode.
bool GetConnection | ( | int | i | ) |
Is there a grid connection in that direction.
|
virtual |
Calls the delegate with all connections from this node.
You can add all connected nodes to a list like this
Implements GraphNode.
|
virtual |
Calls the delegate with all connections and respective costs from this node.
Implements GraphNode.
int GetConnectionValue | ( | int | dir | ) |
Which layer a grid connection goes to.
dir | Direction for the connection. |
|
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.
|
static |
|
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:
Implements GridNodeBase.
|
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).
other | The 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). |
left | List of portal points on the left side of the funnel |
right | List of portal points on the right side of the funnel |
backwards | If 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. |
The default implementation simply returns false.
This function may add more than one portal if necessary.
Reimplemented from GraphNode.
bool HasAnyGridConnections | ( | ) |
Does this node have any grid connections.
|
virtual |
Open the node.
Adds all neighbours of this node to the open list.
Implements GraphNode.
void ResetAllGridConnections | ( | ) |
Removes all grid connections from this node.
|
virtual |
Serializes node data (for example when saving graphs to file).
Reimplemented from GraphNode.
void SetConnectionValue | ( | int | dir, |
int | value | ||
) |
Set which layer a grid connection goes to.
dir | Direction for the connection. |
value | The layer of the connected node or NoConnection if there should be no connection in that direction. |
|
static |
void SetPosition | ( | Int3 | position | ) |
|
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.
|
staticprivate |
const int ConnectionMask = 0xFF |
|
private |
ulong gridConnections |
|
staticprotected |
const int MaxLayerCount = ConnectionMask |
const int NoConnection = 0xFF |
|
get |
|
getset |
Layer coordinate of the node in the grid.
If there are multiple nodes in the same (x,z) cell, then they will be stored in different layers. Together with NodeInGridIndex, you can look up the node in the nodes array