<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#ffffff" text="#003333">
<font size="-1"><font face="Tahoma">Hi all,<br>
<br>
I'm working on contour resulting from vtkCutter. <br>
>From contour, I would like to get all points related to each regions of
my contour.<br>
<br>
My code works but I encounter some performance problems on a mesh : it
takes 8min to compute the process and 70% of the computation is taken
by vtkPolyDataConnectivityFilter and also vtkStripper is quite low. <br>
<br>
For information, my mesh contains ~37000 triangles and a lot of holes<br>
<br>
I have already done this before without using Vtk and it took me less
time (less than 30sec) so I guess ther's should be some optimisation.<br>
<br>
- one a hand, I would like to know if I use the best way to do what I
want<br>
- on the other hand, does anybody have an idea to optimize this code ?<br>
<br>
Here is a pseudo code which illustrates my development : <br>
<br>
slice = vtkCutter-&gt;getOutput();<br>
<br>
vtkPolyDataConnectivityFilter filter;<br>
filter-&gt;SetExtractionModeToAllRegions();<br>
filter-&gt;SetInput(slice);<br>
filter-&gt;Update();<br>
<br>
nb_contours = filter-&gt;GetNumberOfExtractedRegions(); </font></font><font
 size="-1"><font face="Tahoma">//- nb_contours : ~900</font></font><br>
<font size="-1"><font face="Tahoma"><br>
for i=0 to nb_contours<br>
{&nbsp;&nbsp;&nbsp; <br>
<br>
&nbsp;&nbsp;&nbsp; //EXTRACTING EACH REGION OF THE CUTTER RESULT<br>
&nbsp;&nbsp;&nbsp; filter-&gt;InitializeSpecifiedRegionList(); <br>
&nbsp;&nbsp;&nbsp; filter-&gt;AddSpecifiedRegion(idx);<br>
&nbsp;&nbsp;&nbsp; filter-&gt;Update();<br>
<br>
&nbsp;&nbsp;&nbsp; vtkPolyData contour;<br>
&nbsp;&nbsp;&nbsp; contour-&gt;DeepCopy(filter-&gt;GetOutput());<br>
&nbsp;&nbsp;&nbsp; contour-&gt;Update();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; //GETTING ALL LINES FROM EACH REGION<br>
&nbsp;&nbsp;&nbsp; vtkStripper stripper;<br>
&nbsp;&nbsp;&nbsp; stripper-&gt;SetInput(contour);<br>
&nbsp;&nbsp;&nbsp; stripper-&gt;Update();<br>
<br>
&nbsp;&nbsp;&nbsp; int numberOfLines = stripper-&gt;GetOutput()-&gt;GetNumberOfLines();<br>
<br>
&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkPoints&gt; points =
stripper-&gt;GetOutput()-&gt;GetPoints();<br>
&nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkCellArray&gt; lines =
stripper-&gt;GetOutput()-&gt;GetLines();<br>
<br>
&nbsp;&nbsp;&nbsp; vtkIdType *indices;<br>
&nbsp;&nbsp;&nbsp; vtkIdType numberOfPoints;<br>
&nbsp;&nbsp;&nbsp; unsigned int lineCount = 0;<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; for (lines-&gt;InitTraversal();
lines-&gt;GetNextCell(numberOfPoints, indices); lineCount++)<br>
&nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; //GETTING ALL POINTS FROM LINES<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (vtkIdType i = 0; i &lt; numberOfPoints; i++)<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; double coord[3];<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; points-&gt;GetPoint(indices[i], coord);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //...<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp; }<br>
}<br>
<br>
Please help me with this problem<br>
<br>
Thanks by advance,<br>
<br>
Nicolas</font></font><br>
</body>
</html>