/// <summary> /// Removes an Edge and its associated DirectedEdges from their from-Nodes and /// from this PlanarGraph. Note: This method does not remove the Nodes associated /// with the Edge, even if the removal of the Edge reduces the degree of a /// Node to zero. /// </summary> /// <param name="edge"></param> public void Remove(Edge edge) { Remove(edge.GetDirEdge(0)); Remove(edge.GetDirEdge(1)); edges.Remove(edge); edge.Remove(); }
/// <summary> /// Adds an <see cref="Edge" /> to the subgraph. /// The associated <see cref="DirectedEdge" />s and <see cref="Node" />s are also added. /// </summary> /// <param name="e">The <see cref="Edge" /> to add.</param> public void Add(Edge e) { if (edges.Contains(e)) return; edges.Add(e); dirEdges.Add(e.GetDirEdge(0)); dirEdges.Add(e.GetDirEdge(1)); nodeMap.Add(e.GetDirEdge(0).FromNode); nodeMap.Add(e.GetDirEdge(1).FromNode); }
/// <summary> /// Adds an <see cref="Edge" /> to the subgraph. /// The associated <see cref="DirectedEdge" />s and <see cref="Node" />s are also added. /// </summary> /// <param name="e">The <see cref="Edge" /> to add.</param> public void Add(Edge e) { if (edges.Contains(e)) { return; } edges.Add(e); dirEdges.Add(e.GetDirEdge(0)); dirEdges.Add(e.GetDirEdge(1)); nodeMap.Add(e.GetDirEdge(0).FromNode); nodeMap.Add(e.GetDirEdge(1).FromNode); }
/// <summary> /// Adds the Edge and its DirectedEdges with this PlanarGraph. /// Assumes that the Edge has already been created with its associated DirectEdges. /// Only subclasses can add Edges, to ensure the edges added are of the right class. /// </summary> /// <param name="edge"></param> protected void Add(Edge edge) { edges.Add(edge); Add(edge.GetDirEdge(0)); Add(edge.GetDirEdge(1)); }