Hi,<br><br>If you want to track the bug, you should avoid a so complicated code (I got some<br>build error, I don&#39;t know if my fixes are coherent with your issue...). The error<br>message deals with Clip, so basically you write a test pipeline like this :<br>
   reader -&gt; clip -&gt; update<br>If the error doesn&#39;t occur, add and test new functionnality step by step.<br><br>For your case, I just opened your data with paraview : it seems that your obj file<br>doesn&#39;t contain point data. Please, try to generate scalar data before clipping, <br>
as the error says.<br><br>Jerome<br><br><div class="gmail_quote">2011/5/19 agerlach <span dir="ltr">&lt;<a href="mailto:agerlach@gmail.com">agerlach@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
OK. Here is an attempt at an example of my problem. Unfortunately for some<br>
reason I cannot get an observer to work to identify the end of the<br>
tracerWidet event. I&#39;m sure it is something simple. So, may need some help<br>
getting that to work before I will be able to demonstrate my problem.<br>
(Please be patient, I&#39;m a newbie) In my main application it uses a gui so I<br>
use the gui button press to turn tracerWidet off and then compute the area.<br>
<br>
To run place the following ply and obj model and texture in the same folder<br>
as the exe.<br>
<a href="http://www.intellimedsystems.com/files/AreaTruth_T1.jpg" target="_blank">http://www.intellimedsystems.com/files/AreaTruth_T1.jpg</a> Texture<br>
<a href="http://www.intellimedsystems.com/files/AreaTruth.ply" target="_blank">http://www.intellimedsystems.com/files/AreaTruth.ply</a> ply model<br>
<a href="http://www.intellimedsystems.com/files/AreaTruth.obj" target="_blank">http://www.intellimedsystems.com/files/AreaTruth.obj</a> obj model<br>
<br>
Run and type y to use the obj otherwise the ply will be loaded.<br>
<br>
#include &lt;vtkPolyDataMapper.h&gt;<br>
#include &lt;vtkActor.h&gt;<br>
#include &lt;vtkRenderWindow.h&gt;<br>
#include &lt;vtkRenderer.h&gt;<br>
#include &lt;vtkRenderWindowInteractor.h&gt;<br>
#include &lt;vtkPolyData.h&gt;<br>
#include &lt;vtkSmartPointer.h&gt;<br>
#include &lt;vtkSphereSource.h&gt;<br>
#include &lt;vtkImageTracerWidget.h&gt;<br>
#include &lt;vtkInteractorStyleTrackballCamera.h&gt;<br>
#include &lt;vtkSelectPolyData.h&gt;<br>
#include &lt;vtkClipPolyData.h&gt;<br>
#include &lt;vtkMassProperties.h&gt;<br>
#include &lt;vtkPLYReader.h&gt;<br>
#include &lt;vtkOBJReader.h&gt;<br>
#include &lt;vtkJPEGReader.h&gt;<br>
#include &lt;vtkTexture.h&gt;<br>
#include &lt;vtkCallbackCommand.h&gt;<br>
<br>
<br>
class vtkITWCallback : public vtkCommand<br>
<br>
{<br>
<br>
public:<br>
    static vtkITWCallback *New()<br>
    { return new vtkITWCallback; }<br>
<br>
    virtual void Execute(vtkObject *caller, unsigned long, void*)<br>
    {<br>
        vtkImageTracerWidget *tracer =<br>
                reinterpret_cast&amp;lt;vtkImageTracerWidget*&amp;gt;(caller);<br>
<br>
        if(tracer-&gt;IsClosed()) {<br>
<div class="im">            vtkSmartPointer&lt;vtkPolyData&gt; tracePolyData =<br>
                    vtkSmartPointer&lt;vtkPolyData&gt;::New();<br>
<br>
</div>            tracer-&gt;GetPath(tracePolyData);<br>
            std::cout &lt;&lt; &quot;There are &quot; &lt;&lt; tracePolyData-&gt;GetNumberOfPoints()<br>
&lt;&lt; &quot; points in the path.&quot; &lt;&lt; std::endl;<br>
<div class="im"><br>
            vtkSmartPointer&lt;vtkSelectPolyData&gt; loop =<br>
vtkSmartPointer&lt;vtkSelectPolyData&gt;::New();<br>
</div>            loop-&gt;SetInput(polyData);<br>
<div class="im">            loop-&gt;SetLoop(tracePolyData-&gt;GetPoints());<br>
            loop-&gt;SetSelectionModeToSmallestRegion();<br>
            loop-&gt;Update();<br>
<br>
            vtkSmartPointer&lt;vtkClipPolyData&gt; clip =<br>
vtkSmartPointer&lt;vtkClipPolyData&gt;::New();<br>
            clip-&gt;SetInput(loop-&gt;GetOutput());<br>
            clip-&gt;Update();<br>
<br>
            vtkSmartPointer&lt;vtkMassProperties&gt; mass =<br>
vtkSmartPointer&lt;vtkMassProperties&gt;::New();<br>
            mass-&gt;SetInput(clip-&gt;GetOutput());<br>
</div>            std::cout &lt;&lt; &quot;Area = &quot; &lt;&lt; mass-&gt;GetSurfaceArea() &lt;&lt; &quot;[mm]&quot;;<br>
        }<br>
        else<br>
            std::cout &lt;&lt; &quot;Trace not closed&quot;;<br>
    }<br>
<br>
    vtkITWCallback():polyData(0){}<br>
<br>
    vtkPolyData *polyData;<br>
<br>
<br>
};<br>
<br>
int main(int argc, char *argv[])<br>
{<br>
  bool usePLY = true;<br>
  bool hasTexture = false;<br>
<br>
  std::string input = &quot; &quot;;<br>
  std::cout &lt;&lt; &quot;Use obj (y/n):\n&gt;&quot;;<br>
  std::getline(cin,input);<br>
<br>
  if(input == &quot;y&quot; || input == &quot;Y&quot;)<br>
      usePLY = false;<br>
<br>
  vtkSmartPointer&lt;vtkPolyData&gt; polyData;<br>
  polyData = vtkSmartPointer&lt;vtkPolyData&gt;::New();<br>
<br>
  vtkSmartPointer&lt;vtkTexture&gt; texture =<br>
          vtkSmartPointer&lt;vtkTexture&gt;::New();<br>
<br>
  if(usePLY)<br>
  {<br>
      std::cout &lt;&lt; &quot;Using *.ply&quot;;<br>
      vtkSmartPointer&lt;vtkPLYReader&gt; plyReader =<br>
              vtkSmartPointer&lt;vtkPLYReader&gt;::New();<br>
<br>
      plyReader-&gt;SetFileName(&quot;AreaTruth.ply&quot;);<br>
      plyReader-&gt;Update();<br>
      polyData = plyReader-&gt;GetOutput();<br>
<br>
  }<br>
  else<br>
  {<br>
      std::cout &lt;&lt; &quot;Using *.obj&quot;;<br>
      vtkSmartPointer&lt;vtkOBJReader&gt; objReader =<br>
              vtkSmartPointer&lt;vtkOBJReader&gt;::New();<br>
<br>
      objReader-&gt;SetFileName(&quot;AreaTruth.obj&quot;);<br>
      objReader-&gt;Update();<br>
      polyData = objReader-&gt;GetOutput();<br>
<br>
      hasTexture = true;<br>
<br>
      vtkSmartPointer&lt;vtkJPEGReader&gt; jpgReader =<br>
              vtkSmartPointer&lt;vtkJPEGReader&gt;::New();<br>
      jpgReader-&gt;SetFileName(&quot;AreaTruth_T1.jpg&quot;);<br>
      jpgReader-&gt;Update();<br>
<br>
<br>
      texture-&gt;SetInputConnection(jpgReader-&gt;GetOutputPort());<br>
      texture-&gt;InterpolateOn();<br>
<br>
<br>
  }<br>
<br>
   // Create a mapper and actor<br>
  vtkSmartPointer&lt;vtkPolyDataMapper&gt; mapper =<br>
    vtkSmartPointer&lt;vtkPolyDataMapper&gt;::New();<br>
  mapper-&gt;SetInput(polyData);<br>
  vtkSmartPointer&lt;vtkActor&gt; actor =<br>
    vtkSmartPointer&lt;vtkActor&gt;::New();<br>
  actor-&gt;SetMapper(mapper);<br>
<br>
  if(hasTexture)<br>
      actor-&gt;SetTexture(texture);<br>
<br>
  // A renderer and render window<br>
  vtkSmartPointer&lt;vtkRenderer&gt; renderer =<br>
    vtkSmartPointer&lt;vtkRenderer&gt;::New();<br>
  vtkSmartPointer&lt;vtkRenderWindow&gt; renderWindow =<br>
      vtkSmartPointer&lt;vtkRenderWindow&gt;::New();<br>
  renderWindow-&gt;AddRenderer(renderer);<br>
  renderer-&gt;AddActor(actor);<br>
<br>
  // An interactor<br>
  vtkSmartPointer&lt;vtkRenderWindowInteractor&gt; renderWindowInteractor =<br>
    vtkSmartPointer&lt;vtkRenderWindowInteractor&gt;::New();<br>
  renderWindowInteractor-&gt;SetRenderWindow(renderWindow);<br>
<br>
  vtkSmartPointer&lt;vtkInteractorStyleTrackballCamera&gt; style =<br>
    vtkSmartPointer&lt;vtkInteractorStyleTrackballCamera&gt;::New();<br>
<br>
  renderWindowInteractor-&gt;SetInteractorStyle(style);<br>
<br>
  vtkSmartPointer&lt;vtkCallbackCommand&gt; callback =<br>
    vtkSmartPointer&lt;vtkCallbackCommand&gt;::New();<br>
  callback-&gt;SetCallback(CallbackFunction);<br>
<br>
  vtkSmartPointer&lt;vtkITWCallback&gt; itwCallback =<br>
          vtkSmartPointer&lt;vtkITWCallback&gt;::New();<br>
  itwCallback-&gt;polyData = polyData;<br>
<br>
<br>
<br>
  vtkSmartPointer&lt;vtkImageTracerWidget&gt; tracerWidget;<br>
  tracerWidget = vtkSmartPointer&lt;vtkImageTracerWidget&gt;::New();<br>
  tracerWidget-&gt;SetInteractor(renderWindowInteractor);<br>
  tracerWidget-&gt;SetViewProp(actor);<br>
  tracerWidget-&gt;AutoCloseOn();<br>
  tracerWidget-&gt;AddObserver(vtkCommand::EndInteractionEvent, itwCallback);<br>
  tracerWidget-&gt;On();<br>
  renderWindow-&gt;Render();<br>
<br>
  renderWindowInteractor-&gt;Initialize();<br>
  renderWindow-&gt;Render();<br>
<br>
<br>
<br>
<br>
  // Begin mouse interaction<br>
<br>
  renderWindowInteractor-&gt;Start();<br>
<br>
  return EXIT_SUCCESS;<br>
}<br>
<font color="#888888"><br>
<br>
--<br>
View this message in context: <a href="http://vtk.1045678.n5.nabble.com/Weird-vtkClipPolyData-error-when-using-an-obj-tp4408314p4410434.html" target="_blank">http://vtk.1045678.n5.nabble.com/Weird-vtkClipPolyData-error-when-using-an-obj-tp4408314p4410434.html</a><br>

</font><div><div></div><div class="h5">Sent from the VTK - Users mailing list archive at Nabble.com.<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a 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 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 href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
</div></div></blockquote></div><br>