<!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">Hi karthik,<br>
        <br>
        Unfortunately, I can't know StartVertex and EndVertex because my
        vtk source are compiled in release.<br>
        <br>
        But here I post a light example which reproduce the problem.
        Every second selection will throw the exception.<br>
        I also add the polydata (selectedges.vtp)<br>
        <br>
        //<br>
        #include &lt;vtkSmartPointer.h&gt;<br>
        #include &lt;vtkProperty.h&gt;<br>
        #include &lt;vtkContourWidget.h&gt;<br>
        #include &lt;vtkPolyDataMapper.h&gt;<br>
        #include &lt;vtkActor.h&gt;<br>
        #include &lt;vtkRenderer.h&gt;<br>
        #include &lt;vtkRenderWindow.h&gt;<br>
        #include &lt;vtkRenderWindowInteractor.h&gt;<br>
        #include &lt;vtkPolygonalSurfacePointPlacer.h&gt;<br>
        #include &lt;vtkOrientedGlyphContourRepresentation.h&gt;<br>
        #include &lt;vtkXMLPolyDataReader.h&gt;<br>
        #include &lt;vtkPolygonalSurfaceContourLineInterpolator.h&gt;<br>
        <br>
        int main(int, char *[])<br>
        {<br>
        &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkXMLPolyDataReader&gt; reader =
        vtkSmartPointer&lt;vtkXMLPolyDataReader&gt;::New();<br>
        &nbsp;&nbsp;&nbsp; reader-&gt;SetFileName("./selectedges.vtp");<br>
        &nbsp;&nbsp;&nbsp; reader-&gt;Update();<br>
        <br>
        &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkPolyData&gt; polydata =
        vtkSmartPointer&lt;vtkPolyData&gt;::New();<br>
        &nbsp;&nbsp;&nbsp; polydata = reader-&gt;GetOutput();<br>
        &nbsp;<br>
        &nbsp; vtkSmartPointer&lt;vtkPolyDataMapper&gt; mapper = <br>
        &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkPolyDataMapper&gt;::New();<br>
        &nbsp; mapper-&gt;SetInput(polydata);<br>
        &nbsp;<br>
        &nbsp; vtkSmartPointer&lt;vtkActor&gt; actor = <br>
        &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkActor&gt;::New();<br>
        &nbsp; actor-&gt;SetMapper(mapper);<br>
        &nbsp; actor-&gt;GetProperty()-&gt;SetInterpolationToFlat();<br>
        &nbsp;<br>
        &nbsp; vtkSmartPointer&lt;vtkRenderer&gt; renderer = <br>
        &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkRenderer&gt;::New();<br>
        &nbsp; renderer-&gt;AddActor(actor);<br>
        &nbsp; <br>
        &nbsp; vtkSmartPointer&lt;vtkRenderWindow&gt; renderWindow = <br>
        &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkRenderWindow&gt;::New();<br>
        &nbsp; renderWindow-&gt;AddRenderer(renderer);<br>
        &nbsp; <br>
        &nbsp; vtkSmartPointer&lt;vtkRenderWindowInteractor&gt; interactor =
        <br>
        &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkRenderWindowInteractor&gt;::New();<br>
        &nbsp; interactor-&gt;SetRenderWindow(renderWindow);<br>
        &nbsp; <br>
        &nbsp; vtkSmartPointer&lt;vtkContourWidget&gt; contourWidget = <br>
        &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkContourWidget&gt;::New();<br>
        &nbsp; contourWidget-&gt;SetInteractor(interactor);<br>
        &nbsp;&nbsp; <br>
        &nbsp; vtkOrientedGlyphContourRepresentation* rep = <br>
        &nbsp;&nbsp;&nbsp;
vtkOrientedGlyphContourRepresentation::SafeDownCast(contourWidget-&gt;GetRepresentation());<br>
        &nbsp;<br>
        &nbsp; vtkSmartPointer&lt;vtkPolygonalSurfacePointPlacer&gt;
        pointPlacer =<br>
        &nbsp;&nbsp;&nbsp;
        vtkSmartPointer&lt;vtkPolygonalSurfacePointPlacer&gt;::New();&nbsp; <br>
        &nbsp; pointPlacer-&gt;AddProp(actor);<br>
        &nbsp; pointPlacer-&gt;GetPolys()-&gt;AddItem(polydata);<br>
        <br>
        &nbsp;
        vtkSmartPointer&lt;vtkPolygonalSurfaceContourLineInterpolator&gt;
        interpolator =<br>
        &nbsp;&nbsp;&nbsp;
vtkSmartPointer&lt;vtkPolygonalSurfaceContourLineInterpolator&gt;::New();<br>
        &nbsp; interpolator-&gt;GetPolys()-&gt;AddItem(polydata);<br>
        &nbsp;<br>
        &nbsp; rep-&gt;GetLinesProperty()-&gt;SetColor(1, 0, 0);<br>
        &nbsp; rep-&gt;GetLinesProperty()-&gt;SetLineWidth(3.0);<br>
        &nbsp; rep-&gt;SetPointPlacer(pointPlacer);<br>
        <br>
        &nbsp; //setting this will throw an exception<br>
        &nbsp; rep-&gt;SetLineInterpolator(interpolator);<br>
        &nbsp;<br>
        &nbsp; contourWidget-&gt;EnabledOn();<br>
        &nbsp; renderer-&gt;ResetCamera();<br>
        &nbsp; renderWindow-&gt;Render();<br>
        &nbsp; interactor-&gt;Initialize();<br>
        &nbsp;<br>
        &nbsp; interactor-&gt;Start();<br>
        &nbsp;<br>
        &nbsp; return EXIT_SUCCESS;<br>
        }<br>
        //<br>
        <br>
        Thanks again<br>
      </font></font><br>
    Le 13/01/2011 19:44, Karthik Krishnan a &eacute;crit&nbsp;:
    <blockquote
      cite="mid:AANLkTi=4i3xthe3Wr6fcDc+o3jspgYCdn72WRC=kiybH@mail.gmail.com"
      type="cite">Can you post the polygonal dataset, along with the
      StartVertex and EndVertex Id's that were passed onto
      vtkDijkstraGraphGeodesicPath<br>
      <br>
      thx<br>
      --<br>
      karthik<br>
      <br>
      <div class="gmail_quote">On Thu, Jan 13, 2011 at 11:36 PM, 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="border-left: 1px solid
          rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left:
          1ex;">
          <div bgcolor="#ffffff" text="#003333"> <font size="-1"><font
                face="Tahoma">Hi all,<br>
                <br>
                I'm coding an application to select edges on a
                vtkPolyData.<br>
                <br>
                For my needs, I first have to build a wireframe
                vtkPolyData of the input
                (vtkPolyline-&gt;GetPointIds(...);
                vtkCellArray-&gt;InsertNextCell(vtkPolyLine); </font></font><font
              size="-1"><font face="Tahoma">vtkPolyData-&gt;SetPoints(..);
              </font></font><font size="-1"><font face="Tahoma">vtkPolyData-&gt;SetLines(vtkCellArray);</font></font><font
              size="-1"><font face="Tahoma">...)<br>
                <br>
                This part is ok. Then I use vtkContourWidget with </font></font><font
              size="-1"><font face="Tahoma">vtkPolygonalSurfacePointPlacer
                and </font></font><font size="-1"><font face="Tahoma">vtkPolygonalSurfaceContourLineInterpolator

              </font></font><font size="-1"><font face="Tahoma">:<br>
                <br>
                <br>
                &nbsp;&nbsp;&nbsp; vtkSmartPointer&lt;vtkContourWidget&gt;
                contourWidget =
                vtkSmartPointer&lt;vtkContourWidget&gt;::New();<br>
                &nbsp;&nbsp;&nbsp; contourWidget-&gt;SetInteractor(interactor);<br>
                <br>
                &nbsp;&nbsp;&nbsp;
                vtkSmartPointer&lt;vtkOrientedGlyphContourRepresentation&gt;
                rep = <br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
vtkOrientedGlyphContourRepresentation::SafeDownCast(contourWidget-&gt;GetRepresentation());<br>
                &nbsp;&nbsp;&nbsp; rep-&gt;GetLinesProperty()-&gt;SetColor(1, 0.2, 0);<br>
                &nbsp;&nbsp;&nbsp; rep-&gt;GetLinesProperty()-&gt;SetLineWidth(3.0);<br>
                <br>
                &nbsp;&nbsp;&nbsp;
                vtkSmartPointer&lt;vtkPolygonalSurfacePointPlacer&gt;
                pointPlacer =<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
                vtkSmartPointer&lt;vtkPolygonalSurfacePointPlacer&gt;::New();<br>
                &nbsp;&nbsp;&nbsp; pointPlacer-&gt;AddProp(actor);<br>
                &nbsp;&nbsp;&nbsp; pointPlacer-&gt;GetPolys()-&gt;AddItem( my_polydata
                );<br>
                &nbsp;&nbsp;&nbsp; <br>
                &nbsp;&nbsp;&nbsp;
                vtkSmartPointer&lt;vtkPolygonalSurfaceContourLineInterpolator&gt;
                interpolator =<br>
                &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
vtkSmartPointer&lt;vtkPolygonalSurfaceContourLineInterpolator&gt;::New();<br>
                &nbsp;&nbsp;&nbsp; interpolator-&gt;GetPolys()-&gt;AddItem( </font></font><font
              size="-1"><font face="Tahoma">my_</font></font><font
              size="-1"><font face="Tahoma">polydata </font></font><font
              size="-1"><font face="Tahoma">);<br>
                <br>
                &nbsp;&nbsp;&nbsp; </font></font><font size="-1"><font face="Tahoma">rep-&gt;SetPointPlacer(pointPlacer);</font></font><br>
            <font size="-1"><font face="Tahoma">&nbsp;&nbsp;&nbsp;
                rep-&gt;SetLineInterpolator(interpolator);<br>
                <br>
                &nbsp;&nbsp;&nbsp; contourWidget-&gt;EnabledOn();<br>
                <br>
                When I pick one point it's ok but after the second
                picking I get an exception&nbsp; : "vector subscript out of
                range" thrown in the function
                vtkDijkstraGraphGeodesicPath::TraceShortestPath().<br>
                <br>
                It appears only if I the LineInterPolator is </font></font><font
              size="-1"><font face="Tahoma">vtkPolygonalSurfaceContourLineInterpolator.

                It seems that Dijkstra can't find the path allong the
                lines.<br>
                <br>
                So I'm asking where does this comes from ?<br>
                <br>
                When I compute a vtkpolyDataConnectivityFilter, it says
                me I have only one region, so my data is right connected
                (i means I have no holes on my polylines).<br>
                <br>
                Is there a filter I can pass to my polydata to make it
                works ??<br>
                <br>
                Thanks by advance for helping me.<br>
                <br>
                Nicolas<br>
              </font></font> </div>
          <br>
          _______________________________________________<br>
          Powered by <a moz-do-not-send="true"
            href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
          <br>
          Visit other Kitware open-source projects at <a
            moz-do-not-send="true"
            href="http://www.kitware.com/opensource/opensource.html"
            target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
          <br>
          Please keep messages on-topic and check the VTK FAQ at: <a
            moz-do-not-send="true"
            href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
          <br>
          Follow this link to subscribe/unsubscribe:<br>
          <a moz-do-not-send="true"
            href="http://www.vtk.org/mailman/listinfo/vtkusers"
            target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
          <br>
        </blockquote>
      </div>
      <br>
    </blockquote>
  </body>
</html>