Esempio n. 1
0
 /// <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();
 }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
 /// <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));
 }