<div dir="ltr">Hi Summer,<div><br></div><div>You need to call GetLines() on the output of the vtkStripper, because that will return the vtkCellArray that gives the correct ordering of the points.  The vtkCellArray will provide the point Ids in the correct order.<br></div><div><br></div><div> - David</div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 16, 2017 at 11:13 PM, Summer Sun <span dir="ltr"><<a href="mailto:sunxiasx@foxmail.com" target="_blank">sunxiasx@foxmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thank you so much David,<br>
<br>
I have tried your method but the result I use vtkStripper is exactly the<br>
*same*...<br>
I saw the vtk documents below that might be help but I don't quite get it:<br>
---<br>
*Warning*<br>
If triangle strips or poly-lines exist in the input data they *will be<br>
passed through to the output data*. This filter will only construct triangle<br>
strips if triangle polygons are available; and will only construct<br>
poly-lines if lines are available.<br>
---<br>
<br>
*Here's my related code:*<br>
...<br>
/// get marching squares of image data/<br>
vtkSmartPointer<<wbr>vtkMarchingSquares> segContour =<br>
vtkSmartPointer<<wbr>vtkMarchingSquares>::New();<br>
segContour->SetInputData(<wbr>segmentation); /// segmentation is my image data/<br>
segContour->SetValue(0, 255);<br>
segContour->Update();<br>
<br>
/// use vtkStripper to process marching squares data/<br>
vtkSmartPointer<vtkStripper> segPolyStripper =<br>
vtkSmartPointer<vtkStripper>::<wbr>New();<br>
segPolyStripper->SetInputData(<wbr>segContour->GetOutput());<br>
segPolyStripper->Update();<br>
<br>
/// draw the contour/<br>
contourWidget->Initialize(<wbr>segPolyStripper->GetOutput());<br>
...<br>
<br>
Thanks for your help<br>
Summer<br></blockquote></div></div></div>