private List <LinkedGraphNode> GetAdjacentLinkedNodes(LinkedGraphNode linkedNode) { List <LinkedGraphNode> adjacentLinkedNodes = new List <LinkedGraphNode>(); foreach (GraphNode adjacentNode in linkedNode.Node.AdjacentNodes) { adjacentLinkedNodes.Add(new LinkedGraphNode(adjacentNode, linkedNode)); } return(adjacentLinkedNodes); }
public override PathfindingResult GetPathToNode(DesiredPathData desiredPathData) { InitializePathfinding(desiredPathData); // Consider using different data structure, LinkedList<> maybe? List <GraphNode> pathToFinish = new List <GraphNode>(); LinkedGraphNode linkedFinishNode = GetFinishNode(desiredPathData.StartNode); while (linkedFinishNode != null && linkedFinishNode.PreviousNode != null) { pathToFinish.Insert(0, linkedFinishNode.Node); linkedFinishNode = linkedFinishNode.PreviousNode; } return(new PathfindingResult(visitedNodes, pathToFinish)); }
public LinkedGraphNode(GraphNode node, LinkedGraphNode previousNode) { Node = node; PreviousNode = previousNode; }