<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=big5">
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff size=2>For 
this discussion, I am using the release version of vtk3.2 (e.g. not a nightly 
build).</FONT></SPAN></DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff size=2>The 
subdivision filters unfortunately appear to be a bit brittle.&nbsp; I have been 
trying to use vtkButterflySubdivision filter and have been running into problems 
too.&nbsp; From what I can see, these filters are very picky about the topology 
of your input mesh.&nbsp; Fortunately, this pickiness seems to be mostly due to 
the current implementation.&nbsp; </FONT></SPAN></DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff 
size=2>vtkLoopSubdivisionFilter seems to require that every point belong to at 
least one&nbsp;cell.&nbsp; That is what is probably causing your crashes.&nbsp; 
Unfortunately, it looks like there are no filters that will clean out extra 
vertices for you--neither vtkCleanPolyData nor vtkTriangleFilter will do 
this.&nbsp; I don't know if some hacks to the cxx source would allow you to help 
vtkLoopSubdivisionFilter skip over those points that do not belong to any 
triangles.</FONT></SPAN></DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff size=2>Both 
it and <SPAN class=963140301-18092001><FONT face=Arial color=#0000ff 
size=2>vtkButterflySubdivisionFilter </FONT></SPAN>assume that any given edge 
will be shared by at most one other triangle.&nbsp; 
vtkApproximatingSubdivisionFilter::FindEdge and 
vtkInterpolatingSubdivisionFilter::FindEdge have slight bugs.&nbsp; In their 
inner loops, they fail to exit the outer loop when the first edge is 
found.&nbsp; This allows edges to be selected that have not yet been 
processed.&nbsp; This one is easy to fix.</FONT></SPAN></DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff 
size=2>vtkButterflySubdivisionFilter also seems to assume that any given 
triangle will have at least one shared edge.&nbsp; I have verified this only 
experimentally--I don't know what part of the source creates this 
limitation.</FONT></SPAN></DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff size=2>Does 
anyone know if there is either any easy fix to these problems or if there is 
some cleaning filters we can use to make the data be in a form that these 
filters like?&nbsp; vtkCleanPolyData to vtkTriangleFilter to 
vtkXXXSubdivisionFilter doesn't seem to do the trick, at least for 
me.</FONT></SPAN></DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff 
size=2>--Gerald Dalley</FONT></SPAN></DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff size=2>&nbsp; 
<A 
href="mailto:dalleyg@ee.eng.ohio-state.edu">dalleyg@ee.eng.ohio-state.edu</A></DIV></FONT></SPAN>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
  <DIV class=OutlookMessageHeader dir=ltr align=left><FONT face=Tahoma 
  size=2>-----Original Message-----<BR><B>From:</B> 
  vtkusers-admin@public.kitware.com 
  [mailto:vtkusers-admin@public.kitware.com]<B>On Behalf Of </B>Charlie H. 
  Chang<BR><B>Sent:</B> Tuesday, 11 September 2001 9:27 PM<BR><B>To:</B> 
  VTKMailing List (E-mail)<BR><B>Subject:</B> [vtkusers] 
  vtkLoopSubdivisionFilter problem<BR><BR></FONT></DIV>
  <DIV><SPAN class=889402101-12092001>Hi,</SPAN></DIV>
  <DIV><SPAN class=889402101-12092001>I am encounting a problem when using 
  vtkLoopSubdivisionFilter,</SPAN></DIV>
  <DIV><SPAN class=889402101-12092001>my program core-dumps with message 
  :</SPAN></DIV>
  <DIV><SPAN class=889402101-12092001>&nbsp; numCellInLoop &lt; 1: 
0</SPAN></DIV>
  <DIV><SPAN class=889402101-12092001>But when I set the subdivision number to 
  0, it is OK.</SPAN></DIV>
  <DIV><SPAN class=889402101-12092001>There are five actors in my app. Three of 
  them work well, </SPAN></DIV>
  <DIV><SPAN class=889402101-12092001>while two of them will give me core dump 
  when Subdivision</SPAN></DIV>
  <DIV><SPAN class=889402101-12092001>number is set to numbers greater than 
  0.</SPAN></DIV>
  <DIV><SPAN class=889402101-12092001>Any idea how to debug this 
  problem?</SPAN></DIV>
  <DIV><SPAN class=889402101-12092001>Thank you in advance!</SPAN></DIV>
  <DIV>&nbsp;</DIV>
  <DIV><FONT size=2><FONT face=Arial><STRONG><FONT color=#0000a0>Charlie H. 
  Chang</FONT></STRONG> </FONT></FONT><A 
  href="mailto:charlie.chang@nchc.gov.tw"><FONT face=Arial color=#0080c0 
  size=2><EM>charlie.chang@nchc.gov.tw</EM></FONT></A></DIV>
  <DIV><FONT face=Georgia color=#008080 size=2>Software Development 
  Group</FONT></DIV>
  <DIV><FONT face=Arial><FONT size=2><FONT color=#008080><FONT 
  face="Arial Black">N</FONT>ational <FONT face="Arial Black">C</FONT>enter for 
  <FONT face="Arial Black">H</FONT>igh-performance <FONT 
  face="Arial Black">C</FONT>omputing</FONT></FONT></FONT></DIV>
  <DIV><FONT face=Tahoma size=1>Tel: +886-3-5776085 x362;&nbsp; </FONT><FONT 
  face=Tahoma size=1>Fax: +886-3-3538</FONT></DIV>
  <DIV><FONT face=Tahoma></FONT>&nbsp;</DIV>
  <DIV>&nbsp;</DIV></BLOCKQUOTE></BODY></HTML>