/// <summary> /// Adds an Edge, DirectedEdges, and Nodes for the given LineString representation /// of an edge. /// </summary> public void AddEdge(LineString lineString) { if (lineString.IsEmpty) { return; } ICoordinateList coordinates = CoordinateCollection.RemoveRepeatedCoordinates(lineString.Coordinates); Coordinate startCoordinate = coordinates[0]; Coordinate endCoordinate = coordinates[coordinates.Count - 1]; Node startNode = GetNode(startCoordinate); Node endNode = GetNode(endCoordinate); DirectedEdge directedEdge0 = new LineMergeDirectedEdge(startNode, endNode, coordinates[1], true); DirectedEdge directedEdge1 = new LineMergeDirectedEdge(endNode, startNode, coordinates[coordinates.Count - 2], false); Edge edge = new LineMergeEdge(lineString); edge.SetDirectedEdges(directedEdge0, directedEdge1); Add(edge); }
/// <summary> /// Adds a directed edge which is known to form part of this line. /// </summary> public void Add(LineMergeDirectedEdge directedEdge) { directedEdges.Add(directedEdge); }