A* Pathfinding Project  3.8.12
The A* Pathfinding Project for Unity 3D
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Events Macros Groups Pages
TriangleMeshNode Class Reference

Node represented by a triangle. More...

Detailed Description

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 void SerializeNode (GraphSerializationContext ctx)
 
int SharedEdge (GraphNode other)
 Returns the edge which is shared with other.
 
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
void Destroy ()
 Destroys the node.
 
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.
 

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]
 

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.
 
- 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.
 

Constructor & Destructor Documentation

Member Function Documentation

override Vector3 ClosestPointOnNode ( Vector3  p)
virtual

Implements MeshNode.

override Vector3 ClosestPointOnNodeXZ ( Vector3  p)
virtual

Implements MeshNode.

override bool ContainsPoint ( Int3  p)
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

Author
http://unifycommunity.com/wiki/index.php?title=PolyContainsPoint (Eric5h5)

The TriangleMeshNode overrides this and implements faster code for that case.

Reimplemented from MeshNode.

override void DeserializeNode ( GraphSerializationContext  ctx)
virtual

Reimplemented from GraphNode.

static INavmeshHolder GetNavmeshHolder ( uint  graphIndex)
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 
)
override Int3 GetVertex ( int  i)
virtual

Implements MeshNode.

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.

override int GetVertexCount ( )
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.

override void Open ( Path  path,
PathNode  pathNode,
PathHandler  handler 
)
virtual

Open the node.

Implements GraphNode.

override void SerializeNode ( GraphSerializationContext  ctx)
virtual

Reimplemented from GraphNode.

static void SetNavmeshHolder ( int  graphIndex,
INavmeshHolder  graph 
)
static

Sets the internal navmesh holder for a given graph index.

Warning
Internal method
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.

Note
Might return that an edge is shared when the two nodes are in different tiles and adjacent on the XZ plane, but on the Y-axis. Therefore it is recommended that you only test for neighbours of this node or do additional checking afterwards.
void UpdatePositionFromVertices ( )

Set the position of this node to the average of its 3 vertices.

override void UpdateRecursiveG ( Path  path,
PathNode  pathNode,
PathHandler  handler 
)
virtual

Reimplemented from MeshNode.

Member Data Documentation

INavmeshHolder [] _navmeshHolders = new INavmeshHolder[0]
staticprotected
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.


The documentation for this class was generated from the following file: