A* Pathfinding Project  3.7.4
The A* Pathfinding Project for Unity 3D
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Events Macros Groups Pages
MeshNode Class Referenceabstract

Public Member Functions

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.
 
abstract Vector3 ClosestPointOnNode (Vector3 p)
 
abstract Vector3 ClosestPointOnNodeXZ (Vector3 p)
 
override bool ContainsConnection (GraphNode node)
 Checks if this node has a connection to the specified node.
 
virtual bool ContainsPoint (Int3 p)
 Checks if p is inside the node in XZ 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 (GraphNodeDelegate del)
 Calls the delegate with all connections from this node.
 
abstract Int3 GetVertex (int i)
 
abstract int GetVertexCount ()
 
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)
 
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.
 
abstract void Open (Path path, PathNode pathNode, PathHandler handler)
 Open the node.
 
virtual void RecalculateConnectionCosts ()
 Recalculates all connection costs from this node.
 
virtual void SerializeNode (GraphSerializationContext ctx)
 
void UpdateG (Path path, PathNode pathNode)
 

Public Attributes

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
 

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

MeshNode ( AstarPath  astar)
protected

Member Function Documentation

override void AddConnection ( GraphNode  node,
uint  cost 
)
virtual

Add a connection from this node to the specified node.

If the connection already exists, the cost will simply be updated and no extra connection added.

Note
Only adds a one-way connection. Consider calling the same function on the other node to get a two-way connection.

Implements GraphNode.

override void ClearConnections ( bool  alsoReverse)
virtual

Remove all connections from this node.

Parameters
alsoReverseif true, neighbours will be requested to remove connections to this node.

Implements GraphNode.

abstract Vector3 ClosestPointOnNode ( Vector3  p)
pure virtual

Implemented in ConvexMeshNode, and TriangleMeshNode.

abstract Vector3 ClosestPointOnNodeXZ ( Vector3  p)
pure virtual

Implemented in ConvexMeshNode, and TriangleMeshNode.

override bool ContainsConnection ( GraphNode  node)
virtual

Checks if this node has a connection to the specified node.

Reimplemented from GraphNode.

virtual 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 in TriangleMeshNode.

override void DeserializeReferences ( GraphSerializationContext  ctx)
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.

override void FloodFill ( Stack< GraphNode stack,
uint  region 
)
virtual

Reimplemented from GraphNode.

override void GetConnections ( GraphNodeDelegate  del)
virtual

Calls the delegate with all connections from this node.

Implements GraphNode.

Reimplemented in ConvexMeshNode.

abstract Int3 GetVertex ( int  i)
pure virtual

Implemented in ConvexMeshNode, and TriangleMeshNode.

abstract int GetVertexCount ( )
pure virtual

Implemented in ConvexMeshNode, and TriangleMeshNode.

override void RemoveConnection ( GraphNode  node)
virtual

Removes any connection from this node to the specified node.

If no such connection exists, nothing will be done.

Note
This only removes the connection from this node to the other node. You may want to call the same function on the other node to remove its eventual connection to this node.

Implements GraphNode.

override void SerializeReferences ( GraphSerializationContext  ctx)
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.

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

Reimplemented from GraphNode.

Reimplemented in TriangleMeshNode.

Member Data Documentation

uint [] connectionCosts
GraphNode [] connections

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