Example #1
0
        /// <summary>
        /// Detaches all outgoing halfedges from the given vertex
        /// </summary>
        /// <param name="vertex"></param>
        public void DetachVertex(TV vertex)
        {
            Vertices.ContainsCheck(vertex);
            vertex.UnusedCheck();

            DetachVertexImpl(vertex);
        }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="vertex"></param>
        public void RemoveVertex(TV vertex)
        {
            Vertices.ContainsCheck(vertex);
            vertex.UnusedCheck();

            RemoveVertexImpl(vertex);
        }
Example #3
0
        /// <summary>
        /// Transfers halfedges from the first to the second given vertex.
        /// The first vertex is flagged as unused.
        /// </summary>
        /// <param name="v0"></param>
        /// <param name="v1"></param>
        public void MergeVertices(TV v0, TV v1)
        {
            Vertices.ContainsCheck(v0);
            Vertices.ContainsCheck(v1);

            v0.UnusedCheck();
            v1.UnusedCheck();

            MergeVerticesImpl(v0, v1);
        }
Example #4
0
        /// <summary>
        /// Transfers halfedges leaving each vertex to the first vertex in the collection.
        /// All vertices except the first are flagged as unused.
        /// </summary>
        /// <param name="vertices"></param>
        public void MergeVertices(IEnumerable <TV> vertices)
        {
            var v0 = vertices.First();

            Vertices.ContainsCheck(v0);
            v0.UnusedCheck();

            foreach (var v1 in vertices.Skip(1))
            {
                Vertices.ContainsCheck(v1);
                v1.UnusedCheck();

                MergeVerticesImpl(v1, v0);
            }
        }
Example #5
0
 /// <summary>
 /// Adds a new edge between the given nodes.
 /// Returns the first halfedge in the pair.
 /// </summary>
 /// <param name="v0"></param>
 /// <param name="v1"></param>
 /// <returns></returns>
 public TE AddEdge(TV v0, TV v1)
 {
     Vertices.ContainsCheck(v0);
     Vertices.ContainsCheck(v1);
     return(AddEdgeImpl(v0, v1));
 }