<!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> </DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff size=2>The
subdivision filters unfortunately appear to be a bit brittle. I have been
trying to use vtkButterflySubdivision filter and have been running into problems
too. From what I can see, these filters are very picky about the topology
of your input mesh. Fortunately, this pickiness seems to be mostly due to
the current implementation. </FONT></SPAN></DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff
size=2></FONT></SPAN> </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 cell. That is what is probably causing your crashes.
Unfortunately, it looks like there are no filters that will clean out extra
vertices for you--neither vtkCleanPolyData nor vtkTriangleFilter will do
this. 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> </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.
vtkApproximatingSubdivisionFilter::FindEdge and
vtkInterpolatingSubdivisionFilter::FindEdge have slight bugs. In their
inner loops, they fail to exit the outer loop when the first edge is
found. This allows edges to be selected that have not yet been
processed. This one is easy to fix.</FONT></SPAN></DIV>
<DIV><SPAN class=963140301-18092001><FONT face=Arial color=#0000ff
size=2></FONT></SPAN> </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. 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> </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? 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> </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>
<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> numCellInLoop < 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> </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; </FONT><FONT
face=Tahoma size=1>Fax: +886-3-3538</FONT></DIV>
<DIV><FONT face=Tahoma></FONT> </DIV>
<DIV> </DIV></BLOCKQUOTE></BODY></HTML>