<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#003333">
    <font size="-1"><font face="Tahoma">Ok i've found the problem.<br>
        <br>
        It comes from my convertion. (Sometimes I have to reverse the
        order of the new line to add...)<br>
        <br>
        FYI I also use CleanPolyData before my convertion.<br>
        <br>
        Thanks for our help, and sorry for </font></font><span
      class="Apple-style-span" style="border-collapse: separate; color:
      rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal;
      font-variant: normal; font-weight: normal; letter-spacing: normal;
      line-height: normal; orphans: 2; text-indent: 0px; text-transform:
      none; white-space: normal; widows: 2; word-spacing: 0px;
      font-size: medium;"><span class="Apple-style-span"
        style="font-family: arial,sans-serif; font-size: 13px;
        white-space: nowrap;">disturbance ^^.<br>
        <br>
        Nicolas.<br>
      </span></span><br>
    Le 06/01/2011 15:10, David Gobbi a &eacute;crit&nbsp;:
    <blockquote
      cite="mid:AANLkTi=LrgdgZEcErLcXXP8exMGT2R+A6PdfLSiP64DU@mail.gmail.com"
      type="cite">If vtkStripper works most of the time, but not all the
      time, it might be a tolerance issue. &nbsp;What I mean is, the
      endpoints for the line segments might not match exactly.
      <div><br>
      </div>
      <div>You could try using vtkCleanPolyData with SetTolerance(1e-6)
        before vtkStripper. &nbsp;This will merge all nearly-coincident
        points.</div>
      <div><br>
      </div>
      <div>&nbsp;&nbsp;David</div>
      <div><br>
        <div><br>
          <div class="gmail_quote">On Thu, Jan 6, 2011 at 6:55 AM,
            Nicolas Sarrasin <span dir="ltr">&lt;<a
                moz-do-not-send="true"
                href="mailto:nsarrasin@phenix-systems.com">nsarrasin@phenix-systems.com</a>&gt;</span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
              0.8ex; border-left: 1px solid rgb(204, 204, 204);
              padding-left: 1ex;">
              <div>
                <div class="h5">
                  <div bgcolor="#ffffff" text="#003333"> <font
                      size="-1"><font face="Tahoma">Yes of course !<br>
                        <br>
                        That's why I'm writing "</font></font><small>For
                      most of case it works well", vtkStripper helps me
                      a lot.<br>
                      <br>
                      But with this example, my convertion fails.<br>
                      <br>
                      With debug, I found that the secondth (and last)
                      line close the arc of circle but when I display
                      it, this doesn't appear, as it's shown in the
                      pictures I linked.<br>
                      <br>
                    </small>Le 06/01/2011 14:47, David Gobbi a &eacute;crit&nbsp;:
                    <blockquote type="cite">
                      <pre>Hi Nicolas,

In my last email to you, I recommended the vtkStripper filter for
generating a polyline from line segments.  Did you try it?

Cheers,

   David


On Thu, Jan 6, 2011 at 3:30 AM, Nicolas Sarrasin
<a moz-do-not-send="true" href="mailto:nsarrasin@phenix-systems.com" target="_blank">&lt;nsarrasin@phenix-systems.com&gt;</a> wrote:
</pre>
                      <blockquote type="cite">
                        <pre>Hi all,
I'm trying to convert a set of line into one only vtkPolyLine. (original
post here :
<a moz-do-not-send="true" href="http://vtk.1045678.n5.nabble.com/construct-a-vtkPolyLine-PolyGon-from-a-set-of-vtkLines-td3325716.html" target="_blank">http://vtk.1045678.n5.nabble.com/construct-a-vtkPolyLine-PolyGon-from-a-set-of-vtkLines-td3325716.html</a>)

I go through all the polylines of vtkPolyData-&gt;GetLines() and then get the
associated points.
For most of case it works well, but I'm actually encounter a problem on a
case.

The input polydata
(<a moz-do-not-send="true" href="http://img525.imageshack.us/img525/8370/vtkconvertioninit.png" target="_blank">http://img525.imageshack.us/img525/8370/vtkconvertioninit.png</a>) is composed
of two lines which trace an arc of circle.
After the convertion, this arc is closed
(<a moz-do-not-send="true" href="http://img502.imageshack.us/img502/8773/vtkconvertionres.png" target="_blank">http://img502.imageshack.us/img502/8773/vtkconvertionres.png</a>).
It comes from the second line which might not be correct.

Can someone explain me what is going wrong ?

Thanks by advance.

Here is a c++ sample code with the input file attached (wire.vtp).
****
#include &lt;vtkSmartPointer.h&gt;
#include &lt;vtkCellArray.h&gt;
#include &lt;vtkPoints.h&gt;
#include &lt;vtkPolyData.h&gt;
#include &lt;vtkXMLPolyDataReader.h&gt;
#include &lt;vtkXMLPolyDataWriter.h&gt;
#include &lt;vtkPolyLine.h&gt;#include &lt;vtkSmartPointer.h&gt;
#include &lt;vtkCellArray.h&gt;
#include &lt;vtkPoints.h&gt;
#include &lt;vtkPolyData.h&gt;
#include &lt;vtkXMLPolyDataReader.h&gt;
#include &lt;vtkXMLPolyDataWriter.h&gt;
#include &lt;vtkPolyLine.h&gt;

int main (int argc, char *argv[])
{
&nbsp;&nbsp; &nbsp;vtkSmartPointer&lt;vtkXMLPolyDataReader&gt; reader =
vtkSmartPointer&lt;vtkXMLPolyDataReader&gt;::New();
&nbsp;&nbsp; &nbsp;reader-&gt;SetFileName("./wire.vtp");

&nbsp;&nbsp; &nbsp;vtkSmartPointer&lt;vtkPolyData&gt; init_data =
vtkSmartPointer&lt;vtkPolyData&gt;::New();
&nbsp;&nbsp; &nbsp;init_data = reader-&gt;GetOutput();

&nbsp;&nbsp; &nbsp;vtkSmartPointer&lt;vtkPoints&gt; init_points =
vtkSmartPointer&lt;vtkPoints&gt;::New();
&nbsp;&nbsp; &nbsp;init_points=init_data-&gt;GetPoints();

&nbsp;&nbsp; &nbsp;vtkSmartPointer&lt;vtkCellArray&gt; init_lineArray =
vtkSmartPointer&lt;vtkCellArray&gt;::New();
&nbsp;&nbsp; &nbsp;init_lineArray = init_data-&gt;GetLines();

&nbsp;&nbsp; &nbsp;int nblines = init_lineArray-&gt;GetNumberOfCells();

&nbsp;&nbsp; &nbsp;vtkSmartPointer&lt;vtkPolyData&gt; new_data =
vtkSmartPointer&lt;vtkPolyData&gt;::New();
&nbsp;&nbsp; &nbsp;vtkSmartPointer&lt;vtkPoints&gt; new_points =
vtkSmartPointer&lt;vtkPoints&gt;::New();
&nbsp;&nbsp; &nbsp;vtkSmartPointer&lt;vtkPolyLine&gt; polyline =
vtkSmartPointer&lt;vtkPolyLine&gt;::New();
&nbsp;&nbsp; &nbsp;vtkSmartPointer&lt;vtkCellArray&gt; new_lineArray =
vtkSmartPointer&lt;vtkCellArray&gt;::New();

&nbsp;&nbsp; &nbsp;double coords[3];
&nbsp;&nbsp; &nbsp;vtkIdType nbpts=0, *pts=0;
&nbsp;&nbsp; &nbsp;for( init_lineArray-&gt;InitTraversal(); init_lineArray-&gt;GetNextCell(nbpts,
pts);)
&nbsp;&nbsp; &nbsp;{
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;vtkIdType init_ind=0, new_ind=0;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;for(int p=0; p&lt;nbpts; p++)
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;{
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;init_ind=pts[p];
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(init_ind&lt;0)
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;continue;
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;init_points-&gt;GetPoint( init_ind, coords);

&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;new_ind=new_points-&gt;InsertNextPoint(coords);
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;polyline-&gt;GetPointIds()-&gt;InsertNextId(new_ind);
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}
&nbsp;&nbsp; &nbsp;}
&nbsp;&nbsp; &nbsp;new_lineArray-&gt;InsertNextCell(polyline);
&nbsp;&nbsp; &nbsp;new_data-&gt;SetPoints(new_points);
&nbsp;&nbsp; &nbsp;new_data-&gt;SetLines(new_lineArray);

&nbsp;&nbsp; &nbsp;vtkSmartPointer&lt;vtkXMLPolyDataWriter&gt; writer =
vtkSmartPointer&lt;vtkXMLPolyDataWriter&gt;::New();
&nbsp;&nbsp; &nbsp;writer-&gt;SetFileName("./new_wire.vtp");
&nbsp;&nbsp; &nbsp;writer-&gt;SetInput(new_data);
&nbsp;&nbsp; &nbsp;writer-&gt;Write();
****
</pre>
                      </blockquote>
                    </blockquote>
                  </div>
                </div>
              </div>
              <br>
            </blockquote>
          </div>
          <br>
        </div>
      </div>
    </blockquote>
  </body>
</html>