/// <summary> /// Create a new MapPath object from a graph search node series. /// </summary> /// <param name="path">Graph search node containing path node series.</param> public MapPath(IGraphSearchNode<MapFeature> path) { this.pathNodes = new List<IGraphSearchNode<MapFeature>>(); this.endNode = path; IGraphSearchNode<MapFeature> pathNode = path; while (pathNode != null) { this.pathNodes.Add(pathNode); if (pathNode.PreviousNode == null) this.endNode = pathNode; pathNode = (IGraphSearchNode<MapFeature>) pathNode.PreviousNode; } }
/// <summary> /// Create a new MapPath object from a graph search node series. /// </summary> /// <param name="path">Graph search node containing path node series.</param> public MapPath(IGraphSearchNode <MapFeature> path) { this.pathNodes = new List <IGraphSearchNode <MapFeature> >(); this.endNode = path; IGraphSearchNode <MapFeature> pathNode = path; while (pathNode != null) { this.pathNodes.Add(pathNode); if (pathNode.PreviousNode == null) { this.endNode = pathNode; } pathNode = (IGraphSearchNode <MapFeature>)pathNode.PreviousNode; } }
// Auto-fail condition delegate. private bool PivotAtWalls(IGraphSearchNode <MapFeature> node) { return(node.Element == MapFeature.Wall); }
// Match condition delegate. private bool IsEndpoint(IGraphSearchNode <MapFeature> node) { return(node.Element == MapFeature.End); }
// Auto-fail condition delegate. private bool PivotAtWalls(IGraphSearchNode<MapFeature> node) { return node.Element == MapFeature.Wall; }
// Match condition delegate. private bool IsEndpoint(IGraphSearchNode<MapFeature> node) { return node.Element == MapFeature.End; }