|
abstract void | AddConnection (GraphNode node, uint cost) |
|
abstract void | ClearConnections (bool alsoReverse) |
| Remove all connections from this node.
|
|
virtual bool | ContainsConnection (GraphNode node) |
| Checks if this node has a connection to the specified node.
|
|
virtual void | DeserializeNode (GraphSerializationContext ctx) |
|
virtual void | DeserializeReferences (GraphSerializationContext ctx) |
| Used to deserialize references to other nodes e.g connections.
|
|
virtual void | FloodFill (Stack< GraphNode > stack, uint region) |
|
abstract void | GetConnections (GraphNodeDelegate del) |
| Calls the delegate with all connections from this 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 Vector3 | RandomPointOnSurface () |
| A random point on the surface of the node.
|
|
virtual void | RecalculateConnectionCosts () |
| Recalculates all connection costs from this node.
|
|
abstract void | RemoveConnection (GraphNode node) |
|
virtual void | SerializeNode (GraphSerializationContext ctx) |
|
virtual void | SerializeReferences (GraphSerializationContext ctx) |
| Used to serialize references to other nodes e.g connections.
|
|
virtual float | SurfaceArea () |
| The surface area of the node in square world units.
|
|
void | UpdateG (Path path, PathNode pathNode) |
|
virtual void | UpdateRecursiveG (Path path, PathNode pathNode, PathHandler handler) |
|
|
uint | flags |
| Bitpacked field holding several pieces of data.
|
|
|
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 for a graph node.
abstract void AddConnection |
( |
GraphNode |
node, |
|
|
uint |
cost |
|
) |
| |
|
pure virtual |
abstract void ClearConnections |
( |
bool |
alsoReverse | ) |
|
|
pure virtual |
virtual bool ContainsConnection |
( |
GraphNode |
node | ) |
|
|
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 in MeshNode, GridNodeBase, and PointNode.
Destroys the node.
Cleans up any temporary pathfinding data used for this node. The graph is responsible for calling this method on nodes when they are destroyed, including when the whole graph is destoyed. Otherwise memory leaks might present themselves.
Once called the Destroyed property will return true and subsequent calls to this method will not do anything.
- Note
- Assumes the current active AstarPath instance is the same one that created this node.
- Warning
- Should only be called by graph classes on their own nodes
virtual void FloodFill |
( |
Stack< GraphNode > |
stack, |
|
|
uint |
region |
|
) |
| |
|
virtual |
virtual 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
-
other | The 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). |
left | List of portal points on the left side of the funnel |
right | List of portal points on the right side of the funnel |
backwards | If 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 in LevelGridNode, GridNode, and NodeLink3Node.
virtual Vector3 RandomPointOnSurface |
( |
| ) |
|
|
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 in TriangleMeshNode, and GridNodeBase.
virtual void RecalculateConnectionCosts |
( |
| ) |
|
|
virtual |
Recalculates all connection costs from this node.
Depending on the node type, this may or may not be supported. Nothing will be done if the operation is not supported
- Todo:
- Use interface?
abstract void RemoveConnection |
( |
GraphNode |
node | ) |
|
|
pure 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 in MeshNode, GridNodeBase, and PointNode.
virtual float SurfaceArea |
( |
| ) |
|
|
virtual |
Mask of area bits.
- See Also
- Area
const int FlagsAreaOffset = 1 |
|
private |
Start of area bits.
- See Also
- Area
const uint FlagsGraphMask = (256u-1) << FlagsGraphOffset |
|
private |
const int FlagsGraphOffset = 24 |
|
private |
Mask of tag bits.
- See Also
- Tag
const int FlagsTagOffset = 19 |
|
private |
Start of tag bits.
- See Also
- Tag
Mask of the walkable bit.
- See Also
- Walkable
const int FlagsWalkableOffset = 0 |
|
private |
Position of the walkable bit.
- See Also
- Walkable
Penalty cost for walking on this node.
This can be used to make it harder/slower to walk over certain nodes.
A penalty of 1000 (Int3.Precision) corresponds to the cost of walking one world unit.
Position of the node in world space.
- Note
- The position is stored as an Int3, not a Vector3. You can convert an Int3 to a Vector3 using an explicit conversion.
var v3 = (Vector3)node.position;
Holds various bitpacked variables.
Internal unique index.
Every node will get a unique index. This index is not necessarily correlated with e.g the position of the node in the graph.
Penalty cost for walking on this node.
This can be used to make it harder/slower to walk over certain areas.
True if the node is traversable.
The documentation for this class was generated from the following file:
- /Users/arong/Unity/a-pathfinding-project/Assets/AstarPathfindingProject/Core/Nodes/GraphNode.cs