A* Pathfinding Project
4.1.16
The A* Pathfinding Project for Unity 3D
|
Node used for the GridGraph. More...
Node used for the GridGraph.
Public Member Functions | |
GridNode (AstarPath astar) | |
override void | ClearConnections (bool alsoReverse) |
Remove all connections from this node. More... | |
Vector3 | ClosestPointOnNode (Vector3 p) |
override void | DeserializeNode (GraphSerializationContext ctx) |
override void | FloodFill (Stack< GraphNode > stack, uint region) |
bool | GetConnectionInternal (int dir) |
True if the node has a connection in the specified direction. More... | |
override void | GetConnections (System.Action< GraphNode > action) |
Calls the delegate with all connections from this node. 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 | HasConnectionInDirection (int dir) |
True if the node has a connection in the specified direction. More... | |
override void | Open (Path path, PathNode pathNode, PathHandler handler) |
Open the node. More... | |
void | ResetConnectionsInternal () |
Disables all grid connections from this node. More... | |
override void | SerializeNode (GraphSerializationContext ctx) |
void | SetAllConnectionInternal (int connections) |
Sets the state of all grid connections. More... | |
void | SetConnectionInternal (int dir, bool value) |
Enables or disables a connection in a specified direction on the graph. More... | |
override void | UpdateRecursiveG (Path path, PathNode pathNode, PathHandler handler) |
![]() | |
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 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) |
![]() | |
virtual void | RecalculateConnectionCosts () |
Recalculates all connection costs from this node. More... | |
Static Public Member Functions | |
static GridGraph | GetGridGraph (uint graphIndex) |
static void | SetGridGraph (int graphIndex, GridGraph graph) |
Properties | |
bool | EdgeNode [get, set] |
Work in progress for a feature that required info about which nodes were at the border of the graph. More... | |
override bool | HasConnectionsToAllEightNeighbours [get] |
ushort | InternalGridFlags [get, set] |
Internal use only. More... | |
![]() | |
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... | |
![]() | |
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 is traversable. More... | |
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 |
Static Private Attributes | |
static GridGraph [] | _gridGraphs = new GridGraph[0] |
Additional Inherited Members | |
![]() | |
Connection [] | connections |
![]() | |
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... | |
![]() | |
GridNodeBase (AstarPath astar) | |
![]() | |
GraphNode (AstarPath astar) | |
Constructor for a graph node. More... | |
![]() | |
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 |
![]() | |
uint | flags |
Bitpacked field holding several pieces of data. More... | |
![]() | |
void | Destroy () |
Destroys the node. More... | |
|
virtual |
Remove all connections from this node.
alsoReverse | if true, neighbours will be requested to remove connections to this node. |
Implements GraphNode.
Vector3 ClosestPointOnNode | ( | Vector3 | p | ) |
|
virtual |
Reimplemented from GraphNode.
|
virtual |
Reimplemented from GraphNode.
bool GetConnectionInternal | ( | int | dir | ) |
True if the node has a connection in the specified direction.
|
virtual |
Calls the delegate with all connections from this node.
You can add all connected nodes to a list like this
Implements 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 HasConnectionInDirection | ( | int | dir | ) |
True if the node has a connection in the specified direction.
The dir parameter corresponds to directions in the grid as:
|
virtual |
Open the node.
Implements GraphNode.
void ResetConnectionsInternal | ( | ) |
Disables all grid connections from this node.
|
virtual |
Reimplemented from GraphNode.
void SetAllConnectionInternal | ( | int | connections | ) |
Sets the state of all grid connections.
connections | a bitmask of the connections (bit 0 is the first connection, bit 1 the second connection, etc.). |
void SetConnectionInternal | ( | int | dir, |
bool | value | ||
) |
Enables or disables a connection in a specified direction on the graph.
|
static |
|
virtual |
Reimplemented from GraphNode.
|
private |
|
private |
|
private |
|
private |
|
private |
|
getset |
Work in progress for a feature that required info about which nodes were at the border of the graph.
|
get |
|
getsetpackage |
Internal use only.