<div dir="ltr">You might try and bypass the problem by setting the actor for the point cloud to be non pickable.<div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>David E DeMarle<br>Kitware, Inc.<br>Principal Engineer<br>21 Corporate Drive<br>Clifton Park, NY 12065-8662<br>Phone: 518-881-4909</div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Sep 17, 2018 at 4:38 PM Jaspar Löchte <<a href="mailto:jstach@uni-osnabrueck.de">jstach@uni-osnabrueck.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hello there!<div><br></div><div>I use VTK 6.3 in a project for my thesis in an Qt desktop application.</div><div><br></div><div>I am storing Pointclouds and do some manipulation, calculating hulls, etc.</div><div>For the hulls I display some vtkLines in an extra vtkActor and wanted to create a possiblity to modify the polygon.</div><div><br></div><div>Therfore i want to be able to move points AND want to pick lines and create a new Point on the line to be able to move that one to.</div><div><br></div><div>So I wanted to use the <font face="Courier New">vtkCellPicker</font> to pick the lines (which works quite well so far …).</div><div><br></div><div>Since I needed a ContextMenu in Qt I manipulated the MouseEvents and use them allready in the Qt MainWindow. Like this: <a href="https://www.vtk.org/Wiki/VTK/Examples/Cxx/Qt/EventQtSlotConnect" target="_blank">https://www.vtk.org/Wiki/VTK/Examples/Cxx/Qt/EventQtSlotConnect</a></div><div><br></div><div>In my Code I want to detect a <font face="Courier New">vtkLine</font> with this <font face="Courier New">vtkCellPicker</font>, like this:</div><div><br></div><div><div><font face="PT Mono">m_picker->Pick(x, y, 0, m_mainStyle->GetDefaultRenderer());</font></div><div><font face="PT Mono">long l = m_cicker->GetCellId();</font></div><div><font face="PT Mono">if(l > 0)</font></div><div><font face="PT Mono">{</font></div><div><font face="PT Mono">  vtkSmartPointer<vtkActor> actor = m_picker->GetActor();</font></div><div><font face="PT Mono">  long O = actor->GetMapper()->GetInput()->GetCellType(l);</font></div><div><font face="PT Mono"><br></font></div><div><font face="PT Mono">  if(O == 3)</font></div><div><font face="PT Mono">  {</font></div><div><font face="PT Mono">    vtkSmartPointer<vtkLine> line = vtkLine::SafeDownCast(actor->GetMapper()->GetInput()->GetCell(l));</font></div><div><font face="PT Mono">    vtkSmartPointer<vtkPoints> points = line->GetPoints();</font></div><div><font face="PT Mono">    double p[3];</font></div><div><font face="PT Mono">    if(points->GetNumberOfPoints() > 0)</font></div><div><font face="PT Mono">    {</font></div><div><font face="PT Mono">      for(int i = 0; i < points->GetNumberOfPoints(); i++)</font></div><div><font face="PT Mono">      {</font></div><div><font face="PT Mono">        points->GetPoint(i, p);</font></div><div><font face="PT Mono">        std::cout << "(" << p[0] << ", " << p[1] << ", " << p[2] << ")" << std::endl;</font></div><div><font face="PT Mono">      }</font></div><div><font face="PT Mono">    }</font></div><div><font face="PT Mono">  }</font></div><div><font face="PT Mono">}</font></div></div><div><br></div><div>As I said … this works pretty well, except for any random points, the CellPicker also picks vertices from the Pointcloud (<font face="PT Mono">CellType == 1</font>) and on random points my program crashes, because of an assertion fail …</div><div><br></div><div>I found out that the call to <font face="PT Mono">vtkCellPicker::Pick() </font>calls superclass <font face="PT Mono">vtkPicker::Pick() </font>and there is a call to <span style="white-space:pre-wrap;background-color:rgb(255,255,255)"><font face="PT Mono">IntersectWithLine()</font></span> from the CellPicker, in this function the call to <span style="white-space:pre-wrap;background-color:rgb(255,255,255)"><font face="PT Mono">IntersectActorWithLine()</font></span> calls in line 414 this one <span class="m_-8037874445238017594pl-k" style="box-sizing:border-box;color:rgb(215,58,73);font-family:SFMono-Regular,Consolas,'Liberation Mono',Menlo,Courier,monospace;white-space:pre-wrap">int</span><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,'Liberation Mono',Menlo,Courier,monospace;white-space:pre-wrap;background-color:rgb(255,255,255)"> cellType = data-></span><span class="m_-8037874445238017594pl-c1" style="box-sizing:border-box;color:rgb(0,92,197);font-family:SFMono-Regular,Consolas,'Liberation Mono',Menlo,Courier,monospace;white-space:pre-wrap">GetCellType</span><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,'Liberation Mono',Menlo,Courier,monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">(cellId); </span>… and here I get the assertion fail:</div><div><br></div><div><span style="font-variant-ligatures:normal;white-space:pre-wrap;background-color:rgb(255,255,255)"><font face="PT Mono">viewer: /build/vtk6-YpT4yb/vtk6-6.2.0+dfsg1/Common/Core/vtkDataArrayTemplate.h:191: T vtkDataArrayTemplate<T>::GetValue(vtkIdType) [with T = unsigned char; vtkIdType = long long int]: Assertion `id >= 0 && id < this->Size' failed.</font></span></div><div><br></div><div>Refered to <a href="https://github.com/Kitware/VTK/blob/release-6.3/Rendering/Core/vtkCellPicker.cxx#L414" target="_blank">https://github.com/Kitware/VTK/blob/release-6.3/Rendering/Core/vtkCellPicker.cxx#L414</a></div><div><br></div><div>I really don’t know how to debug this, and why this happens.</div><div><br></div><div>Any Ideas for me?</div><div><br></div><div>If there is anything not clear - ask me, I can try to go more into detail, give more Code, or something like that.</div><div><br></div><div>Thank you!</div><div><br></div><div>Jaspar</div></div>_______________________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" 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" rel="noreferrer" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Search the list archives at: <a href="http://markmail.org/search/?q=vtkusers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=vtkusers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="https://public.kitware.com/mailman/listinfo/vtkusers" rel="noreferrer" target="_blank">https://public.kitware.com/mailman/listinfo/vtkusers</a><br>
</blockquote></div>