A* Pathfinding Project
3.8.5
The A* Pathfinding Project for Unity 3D
|
Node represented by a triangle. More...
Node represented by a triangle.
Public Member Functions | |
TriangleMeshNode (AstarPath astar) | |
override Vector3 | ClosestPointOnNode (Vector3 p) |
override Vector3 | ClosestPointOnNodeXZ (Vector3 p) |
override bool | ContainsPoint (Int3 p) |
Checks if p is inside the node in XZ space. | |
override void | DeserializeNode (GraphSerializationContext ctx) |
override bool | GetPortal (GraphNode _other, System.Collections.Generic.List< Vector3 > left, System.Collections.Generic.List< Vector3 > right, bool backwards) |
bool | GetPortal (GraphNode _other, System.Collections.Generic.List< Vector3 > left, System.Collections.Generic.List< Vector3 > right, bool backwards, out int aIndex, out int bIndex) |
override Int3 | GetVertex (int i) |
int | GetVertexArrayIndex (int i) |
Return a number specifying an index in the source vertex array. | |
override int | GetVertexCount () |
int | GetVertexIndex (int i) |
Return a number identifying a vertex. | |
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 | SerializeNode (GraphSerializationContext ctx) |
int | SharedEdge (GraphNode other) |
Returns the edge which is shared with other. | |
override float | SurfaceArea () |
The surface area of the node in square world units. | |
void | UpdatePositionFromVertices () |
Set the position of this node to the average of its 3 vertices. | |
override void | UpdateRecursiveG (Path path, PathNode pathNode, PathHandler handler) |
Public Member Functions inherited from MeshNode | |
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 (Stack< GraphNode > stack, uint region) |
override void | GetConnections (GraphNodeDelegate del) |
Calls the delegate with all connections from this 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. | |
Public Member Functions inherited from GraphNode | |
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. | |
void | UpdateG (Path path, PathNode pathNode) |
Static Public Member Functions | |
static INavmeshHolder | GetNavmeshHolder (uint graphIndex) |
static void | SetNavmeshHolder (int graphIndex, INavmeshHolder graph) |
Sets the internal navmesh holder for a given graph index. | |
Public Attributes | |
int | v0 |
Internal vertex index for the first vertex. | |
int | v1 |
Internal vertex index for the second vertex. | |
int | v2 |
Internal vertex index for the third vertex. | |
Public Attributes inherited from MeshNode | |
uint[] | connectionCosts |
GraphNode[] | connections |
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. | |
Static Protected Attributes | |
static INavmeshHolder[] | _navmeshHolders = new INavmeshHolder[0] |
Holds INavmeshHolder references for all graph indices to be able to access them in a performant manner. | |
static readonly System.Object | lockObject = new System.Object() |
Used for synchronised access to the _navmeshHolders array. | |
Additional Inherited Members | |
Protected Member Functions inherited from MeshNode | |
MeshNode (AstarPath astar) | |
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] |
bool | Destroyed [get] |
uint | Flags [get, set] |
Holds various bitpacked variables. | |
uint | GraphIndex [get, set] |
int | NodeIndex [get] |
Internal unique index. | |
uint | Penalty [get, set] |
Penalty cost for walking on this node. | |
uint | Tag [get, set] |
bool | Walkable [get, set] |
True if the node is traversable. | |
TriangleMeshNode | ( | AstarPath | astar | ) |
|
virtual |
Implements MeshNode.
|
virtual |
Implements MeshNode.
|
virtual |
Checks if p is inside the node in XZ space.
The default implementation uses XZ space and is in large part got from the website linked below
The TriangleMeshNode overrides this and implements faster code for that case.
Reimplemented from MeshNode.
|
virtual |
Reimplemented from GraphNode.
|
static |
override bool GetPortal | ( | GraphNode | _other, |
System.Collections.Generic.List< Vector3 > | left, | ||
System.Collections.Generic.List< Vector3 > | right, | ||
bool | backwards | ||
) |
bool GetPortal | ( | GraphNode | _other, |
System.Collections.Generic.List< Vector3 > | left, | ||
System.Collections.Generic.List< Vector3 > | right, | ||
bool | backwards, | ||
out int | aIndex, | ||
out int | bIndex | ||
) |
int GetVertexArrayIndex | ( | int | i | ) |
Return a number specifying an index in the source vertex array.
The vertex array can for example be contained in a recast tile, or be a navmesh graph, that is graph dependant. This is slower than GetVertexIndex, if you only need to compare vertices, use GetVertexIndex.
|
virtual |
Implements MeshNode.
int GetVertexIndex | ( | int | i | ) |
Return a number identifying a vertex.
This number does not necessarily need to be a index in an array but two different vertices (in the same graph) should not have the same vertex numbers.
|
virtual |
Open the node.
Implements GraphNode.
|
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.
|
virtual |
Reimplemented from GraphNode.
|
static |
Sets the internal navmesh holder for a given graph index.
int SharedEdge | ( | GraphNode | other | ) |
Returns the edge which is shared with other.
If no edge is shared, -1 is returned. The edge is GetVertex(result) - GetVertex((result+1) % GetVertexCount()). See GetPortal for the exact segment shared.
|
virtual |
The surface area of the node in square world units.
Reimplemented from GraphNode.
void UpdatePositionFromVertices | ( | ) |
Set the position of this node to the average of its 3 vertices.
|
virtual |
Reimplemented from MeshNode.
|
staticprotected |
Holds INavmeshHolder references for all graph indices to be able to access them in a performant manner.
|
staticprotected |
Used for synchronised access to the _navmeshHolders array.
int v0 |
Internal vertex index for the first vertex.
int v1 |
Internal vertex index for the second vertex.
int v2 |
Internal vertex index for the third vertex.