/// <summary> /// Expands a node. /// </summary> /// <param name='node'> /// Node to be expanded /// </param> private void expandNode(ARAstarNode node) { nodesExpanded++; Open.Remove(node.action.state); if (node.g > node.rhs) { node.g = node.rhs; Close.Insert(node); } else { node.g = Mathf.Infinity; UpdateVertex(node); } generateNodeSuccessors(ref node); if (Visited.nodeForState(stateReached).h > node.h) { stateReached = node.action.state; } if (!usingHeap) { Open.Sort(); } if (node == null) { Status = PathStatus.NoPath; } }
public void MoveToOpen(ref OpenContainer open) { List <ARAstarNode> templist = new List <ARAstarNode> (); templist = incons.Values.ToList(); foreach (ARAstarNode node in templist) { open.Insert(node); incons.Remove(node.action.state); } open.Sort(); }
public void MoveToOpen(ref OpenContainer open) { List<ARAstarNode> templist = new List<ARAstarNode> (); templist = incons.Values.ToList (); foreach (ARAstarNode node in templist) { open.Insert (node); incons.Remove (node.action.state); } open.Sort (); }