A* Pathfinding Project
4.1.4
The A* Pathfinding Project for Unity 3D
|
Public Member Functions | |
override void | AddConnection (GraphNode node, uint cost) |
Add a connection from this node to the specified node. | |
void | AddConnection (GraphNode node, uint cost, int shapeEdge) |
Add a connection from this node to the specified node. | |
override void | ClearConnections (bool alsoReverse) |
Remove all connections from this node. | |
abstract Vector3 | ClosestPointOnNode (Vector3 p) |
Closest point on the surface of this node to the point p. | |
abstract Vector3 | ClosestPointOnNodeXZ (Vector3 p) |
Closest point on the surface of this node when seen from above. | |
override bool | ContainsConnection (GraphNode node) |
Checks if this node has a connection to the specified node. | |
virtual bool | ContainsPoint (Int3 point) |
Checks if point is inside the node. | |
abstract bool | ContainsPoint (Vector3 point) |
Checks if point is inside the node. | |
abstract bool | ContainsPointInGraphSpace (Int3 point) |
Checks if point is inside the node in graph space. | |
override void | DeserializeReferences (GraphSerializationContext ctx) |
Used to deserialize references to other nodes e.g connections. | |
override void | FloodFill (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 Int3 | GetVertex (int i) |
Get a vertex of this node. | |
abstract int | GetVertexCount () |
Number of corner vertices that this node has. | |
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 void | UpdateRecursiveG (Path path, PathNode pathNode, PathHandler handler) |
Public Member Functions inherited from GraphNode | |
virtual void | DeserializeNode (GraphSerializationContext ctx) |
virtual bool | GetPortal (GraphNode other, List< Vector3 > left, List< Vector3 > right, bool backwards) |
Add a portal from this node to the specified node. | |
abstract void | Open (Path path, PathNode pathNode, PathHandler handler) |
Open the node. | |
virtual Vector3 | RandomPointOnSurface () |
A random point on the surface of the node. | |
virtual void | RecalculateConnectionCosts () |
Recalculates all connection costs from this node. | |
virtual void | SerializeNode (GraphSerializationContext ctx) |
virtual float | SurfaceArea () |
The surface area of the node in square world units. | |
Public Attributes | |
Connection[] | connections |
All connections from this node. | |
Public Attributes inherited from GraphNode | |
const uint | MaxAreaIndex = FlagsAreaMask >> FlagsAreaOffset |
const uint | MaxGraphIndex = FlagsGraphMask >> FlagsGraphOffset |
Max number of graphs-1. | |
Int3 | position |
Position of the node in world space. | |
Protected Member Functions | |
MeshNode (AstarPath astar) | |
Protected Member Functions inherited from GraphNode | |
GraphNode (AstarPath astar) | |
Constructor for a graph node. | |
Additional Inherited Members | |
Protected Attributes inherited from GraphNode | |
uint | flags |
Bitpacked field holding several pieces of data. | |
Package Functions inherited from GraphNode | |
void | Destroy () |
Destroys the node. | |
Properties inherited from GraphNode | |
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. | |
|
virtual |
Add a connection from this node to the specified node.
node | Node to add a connection to |
cost | Cost of traversing the connection. A cost of 1000 corresponds approximately to the cost of moving 1 world unit. |
If the connection already exists, the cost will simply be updated and no extra connection added.
Implements GraphNode.
void AddConnection | ( | GraphNode | node, |
uint | cost, | ||
int | shapeEdge | ||
) |
Add a connection from this node to the specified node.
node | Node to add a connection to |
cost | Cost of traversing the connection. A cost of 1000 corresponds approximately to the cost of moving 1 world unit. |
shapeEdge | Which edge on the shape of this node to use or -1 if no edge is used. |
If the connection already exists, the cost will simply be updated and no extra connection added.
|
virtual |
Remove all connections from this node.
alsoReverse | if true, neighbours will be requested to remove connections to this node. |
Implements GraphNode.
|
pure virtual |
Closest point on the surface of this node to the point p.
Implemented in TriangleMeshNode.
|
pure virtual |
Closest point on the surface of this node when seen from above.
This is usually very similar to ClosestPointOnNode but when the node is in a slope this can be significantly different.
When the blue point in the above image is used as an argument this method call will return the green point while the ClosestPointOnNode method will return the red point.Implemented in TriangleMeshNode.
|
virtual |
Checks if this node has a connection to the specified node.
Reimplemented from GraphNode.
|
virtual |
Checks if point is inside the node.
|
pure virtual |
Checks if point is inside the node.
Note that ContainsPointInGraphSpace is faster than this method as it avoids some coordinate transformations. If you are repeatedly calling this method on many different nodes but with the same point then you should consider transforming the point first and then calling ContainsPointInGraphSpace.
Implemented in TriangleMeshNode.
|
pure virtual |
Checks if point is inside the node in graph space.
In graph space the up direction is always the Y axis so in principle we project the triangle down on the XZ plane and check if the point is inside the 2D triangle there.
Implemented in TriangleMeshNode.
|
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.
|
virtual |
Reimplemented from GraphNode.
|
virtual |
Calls the delegate with all connections from this node.
You can add all connected nodes to a list like this
Implements GraphNode.
|
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.
|
pure virtual |
Get a vertex of this node.
i | vertex index. Must be between 0 and GetVertexCount (exclusive). |
Implemented in TriangleMeshNode.
|
pure virtual |
Number of corner vertices that this node has.
For example for a triangle node this will return 3.
Implemented in TriangleMeshNode.
|
virtual |
Removes any connection from this node to the specified node.
If no such connection exists, nothing will be done.
Implements GraphNode.
|
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.
|
virtual |
Reimplemented from GraphNode.
Reimplemented in TriangleMeshNode.
Connection [] connections |
All connections from this node.