<div dir="ltr">Dominik,<br>you&#39;re right. The check on non-manifold edges is just to detect some cases that should not append.<br><font color="#888888">Marie-Gabrielle </font><br><br><div class="gmail_quote">2008/10/9 Dominik Szczerba <span dir="ltr">&lt;<a href="mailto:dominik@itis.ethz.ch">dominik@itis.ethz.ch</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I think for a simple (non-self-intersecting etc.) mesh it is enough for<br>
closedness if there are no boundary edges. No non-manifold edges proves<br>
topological correctness or &#39;simplicity&#39;, but is not required for closedness.<br>
<br>
Dominik<br>
<div class="Ih2E3d"><br>
On Thursday 09 October 2008 08:19:32 pm Marie-Gabrielle Vallet wrote:<br>
&gt; For a surface mesh, in the vtkFeatureEdges terminology :<br>
&gt; &nbsp;- a boundary edge belongs to exactly one cell<br>
&gt; &nbsp;- a manifold edge belongs to two cells<br>
&gt; &nbsp;- a non-manifold edge belongs to 3 or more cells.<br>
&gt; A simple close surface has only manifold edges.<br>
</div>&gt; BoundaryEdgesOn()<br>
&gt; NonManifoldEdgesOn()<br>
&gt; ManifoldEdgesOff()<br>
&gt; FeatureEdgesOff()&nbsp;</blockquote><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> &gt; should return an empty set.<br>
<div><div></div><div class="Wj3C7c">&gt;<br>
&gt; A simple open surface has boundary edges and may has manifold too.<br>
&gt; Having non-manifold edges means the surface intersects itself. It could<br>
&gt; still be close, but I guess you don&#39;t want to deal with...<br>
&gt;<br>
&gt;<br>
&gt; 2008/10/9 Dominik Szczerba &lt;<a href="mailto:dominik@itis.ethz.ch">dominik@itis.ethz.ch</a>&gt;<br>
&gt;<br>
&gt; &gt; Hmmm. Is a boundary edge of an open surface a non-manifold edge? It does<br>
&gt; &gt; not<br>
&gt; &gt; seem so, at least with the default settings.<br>
&gt; &gt;<br>
&gt; &gt; Dominik<br>
&gt; &gt;<br>
&gt; &gt; On Friday 03 October 2008 07:14:51 pm Marie-Gabrielle Vallet wrote:<br>
&gt; &gt; &gt; I think there is a easier way of checking the surface closeness. I mean<br>
&gt; &gt; &gt; using vtk facilities, instead of writing a (yet another) new algorithm.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; VTK library has algorithms to extract a mesh boundary, i.e. the set of<br>
&gt; &gt; &gt; faces (in 3D) or edges (in 2D) that are not shared by two cells. See<br>
&gt; &gt; &gt; vtkFeatureEdges. The mesh is close if and only if this set is empty. If<br>
&gt; &gt;<br>
&gt; &gt; it<br>
&gt; &gt;<br>
&gt; &gt; &gt; not, you can visualize the holes that must still be closed.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Pamela is trying to do the same thing today. Have a look at the thread<br>
&gt; &gt;<br>
&gt; &gt; &quot;get<br>
&gt; &gt;<br>
&gt; &gt; &gt; boundary triangles from a mesh&quot; on this mailing list.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; By the way, Charles, are you sure you are not re-inventing the wheel ?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Marie-Gabrielle<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &nbsp;Date: Fri, 3 Oct 2008 08:17:31 +0200<br>
&gt; &gt; &gt; &gt; &nbsp;From: Dominik Szczerba &lt;<a href="mailto:dominik@itis.ethz.ch">dominik@itis.ethz.ch</a>&gt;<br>
&gt; &gt; &gt; &gt; &nbsp;Subject: Re: [vtkusers] Proving a surface mesh of closeness<br>
&gt; &gt; &gt; &gt; &nbsp;To: <a href="mailto:vtkusers@vtk.org">vtkusers@vtk.org</a><br>
&gt; &gt; &gt; &gt; &nbsp;Message-ID: &lt;<a href="mailto:200810030817.31796.dominik@itis.ethz.ch">200810030817.31796.dominik@itis.ethz.ch</a>&gt;<br>
&gt; &gt; &gt; &gt; &nbsp;Content-Type: text/plain; &nbsp;charset=&quot;utf-8&quot;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &nbsp;If it is manifold then pick the 1st element and make sure each one<br>
&gt; &gt; &gt; &gt; it has<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; the<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &nbsp;proper number of neighbors (for triangles: 3). Mark the element as<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &#39;visited&#39;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &nbsp;and visit all his neighbors, repeating the procedure. At the end, if<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; number<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &nbsp;of visited elements equals to number of elements in the mesh and all<br>
&gt; &gt; &gt; &gt; have their expected neighbors the mesh is closed.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &nbsp;DS<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &nbsp;On Friday 03 October 2008 02:48:59 am Charles Monty Burns wrote:<br>
&gt; &gt; &gt; &gt; &nbsp;&gt; Hello,<br>
&gt; &gt; &gt; &gt; &nbsp;&gt;<br>
&gt; &gt; &gt; &gt; &nbsp;&gt; I repaired a surface mesh and want to prove whether the mesh is<br>
&gt; &gt; &gt; &gt; &nbsp;&gt; totally closed or not. Save is save ...<br>
&gt; &gt; &gt; &gt; &nbsp;&gt;<br>
&gt; &gt; &gt; &gt; &nbsp;&gt; How can I do this?<br>
&gt; &gt; &gt; &gt; &nbsp;&gt;<br>
&gt; &gt; &gt; &gt; &nbsp;&gt; Greetings<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &nbsp;--<br>
&gt; &gt; &gt; &gt; &nbsp;Dominik Szczerba, Ph.D.<br>
&gt; &gt; &gt; &gt; &nbsp;Computational Physics Group<br>
&gt; &gt; &gt; &gt; &nbsp;Foundation for Research on Information Technologies in Society<br>
&gt; &gt; &gt; &gt; &nbsp;<a href="http://www.itis.ethz.ch" target="_blank">http://www.itis.ethz.ch</a> &lt;<a href="http://www.itis.ethz.ch/" target="_blank">http://www.itis.ethz.ch/</a>&gt;<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; Dominik Szczerba, Ph.D.<br>
&gt; &gt; Computational Physics Group<br>
&gt; &gt; Foundation for Research on Information Technologies in Society<br>
&gt; &gt; <a href="http://www.itis.ethz.ch" target="_blank">http://www.itis.ethz.ch</a><br>
<br>
<br>
<br>
</div></div>--<br>
<div><div></div><div class="Wj3C7c">Dominik Szczerba, Ph.D.<br>
Computational Physics Group<br>
Foundation for Research on Information Technologies in Society<br>
<a href="http://www.itis.ethz.ch" target="_blank">http://www.itis.ethz.ch</a><br>
</div></div></blockquote></div><br></div>