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

Public Member Functions

 NodeLink3Node (AstarPath active)
 
GraphNode GetOther (GraphNode a)
 
override bool GetPortal (GraphNode other, List< Vector3 > left, List< Vector3 > right, bool backwards)
 Add a portal from this node to the specified node.
 
- Public Member Functions inherited from PointNode
 PointNode (AstarPath astar)
 
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 DeserializeNode (GraphSerializationContext ctx)
 
override void DeserializeReferences (GraphSerializationContext ctx)
 Used to deserialize references to other nodes e.g connections.
 
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.
 
override void Open (Path path, PathNode pathNode, PathHandler handler)
 Open the node.
 
override void RemoveConnection (GraphNode node)
 Removes any connection from this node to the specified node.
 
override void SerializeNode (GraphSerializationContext ctx)
 
override void SerializeReferences (GraphSerializationContext ctx)
 Used to serialize references to other nodes e.g connections.
 
void SetPosition (Int3 value)
 
override void UpdateRecursiveG (Path path, PathNode pathNode, PathHandler handler)
 
- Public Member Functions inherited from GraphNode
virtual void FloodFill (Stack< GraphNode > stack, uint region)
 
virtual Vector3 RandomPointOnSurface ()
 A random point on the surface of the node.
 
virtual void RecalculateConnectionCosts ()
 Recalculates all connection costs from this node.
 
virtual float SurfaceArea ()
 The surface area of the node in square world units.
 
void UpdateG (Path path, PathNode pathNode)
 

Public Attributes

NodeLink3 link
 
Vector3 portalA
 
Vector3 portalB
 
- Public Attributes inherited from PointNode
Connection[] connections
 
GameObject gameObject
 GameObject this node was created from (if any).
 
- 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.
 

Private Member Functions

GraphNode GetOtherInternal (GraphNode a)
 

Additional Inherited Members

- Protected Member Functions inherited from GraphNode
 GraphNode (AstarPath astar)
 Constructor for a graph node.
 
- 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.
 

Constructor & Destructor Documentation

NodeLink3Node ( AstarPath  active)

Member Function Documentation

GraphNode GetOther ( GraphNode  a)
GraphNode GetOtherInternal ( GraphNode  a)
private
override bool GetPortal ( GraphNode  other,
List< Vector3 >  left,
List< Vector3 >  right,
bool  backwards 
)
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).

Parameters
otherThe 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).
leftList of portal points on the left side of the funnel
rightList of portal points on the right side of the funnel
backwardsIf 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.
Returns
True if the call was deemed successful. False if some unknown case was encountered and no portal could be added. If both calls to node1.GetPortal (node2,...) and node2.GetPortal (node1,...) return false, the funnel modifier will fall back to adding to the path the positions of the node.

The default implementation simply returns false.

This function may add more than one portal if necessary.

See Also
http://digestingduck.blogspot.se/2010/03/simple-stupid-funnel-algorithm.html

Reimplemented from GraphNode.

Member Data Documentation

NodeLink3 link
Vector3 portalA
Vector3 portalB

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