<div dir="ltr">It is correct that SetInputData() does not connect the pipeline. To be more specific, consider 2 examples:<div><br></div><div>1)<br><div><br></div><div>polydata = someFilter->GetOutput();</div><div><br></div>

<div>anotherFilter->SetInputData(polydata)</div><div>anotherFilter->Update();</div><div><br></div><div>someFilter->Modified();</div><div><div>anotherFilter->Update();</div></div></div><div><br></div><div>Update() would not propagate a pipeline request to someFilter. So the output of anotherFilter will not change between the 2 Update() calls.</div>

<div><br></div><div>2)</div><div><br></div><div><div><div>polydata = giveMePolyData();</div><div><br></div><div>anotherFilter->SetInputData(polydata)</div><div>anotherFilter->Update();</div><div><br></div><div>// modify the polydata somehow</div>

<div>polydata->Modified();</div><div><br></div><div>anotherFilter->Update();</div></div></div><div><br></div><div>In this case, because the polydata changed, the second Update() will actually have an effect and the output of anotherFilter will change after the 2nd Update.</div>

<div><br></div><div><br></div><div>So the change to your code will depend on the nature of "polydata". Is it still the output of a filter? Then you must use SetInputConnection(). Unfortunately, this sometimes means that you need to change function signatures to pass an (algorithm, port index) pair around instead of a data object.</div>

<div><br></div><div>If polydata is a stand-alone data object that is modified directly by some code and as a result its mtime is updated, you can use SetInputData(). Keep in mind that the producer of the data object is now completely out of the pipeline and will not see any pipeline updates.</div>

<div><br></div><div>I don't know the details of how data is stored in MRML. If you add a polydata to a MRML node and expect it to represent the output port of a filter such that you can do this:</div><div><br></div><div>

<div style="font-family:arial,sans-serif;font-size:13px">vtkMRMLModelNode->SetAndObservePolyData(vtkTubeFilter->GetOutput())</div></div><div><br></div><div>vtkTubeFilter->SetSomething();</div><div><br></div><div>

polydata = get_MRML_node_somehow();</div><div>polydata->Update(); // should cause vtkTubeFilter to re-execute</div><div><br></div><div>The MRML code will have to change to store the algorithm and output port index instead. There is no longer any way to get from a data object to its producer. In fact, vtkDataObject is now in a module (library) that doesn't know anything about algorithms or pipelines.</div>

<div><br></div><div>Best,</div><div>-berk</div><div><br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jul 22, 2014 at 7:07 PM, Laurent Chauvin <span dir="ltr"><<a href="mailto:lchauvin@bwh.harvard.edu" target="_blank">lchauvin@bwh.harvard.edu</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Sam,<div><br></div><div>Thank you for your answer.</div><div><br></div><div>Here is my pipeline (just an overview):</div>

<div><br></div><div>vtkSplineFilter->SetInputData(polydata)<br><br></div><div>vtkTubeFilter->SetInputConnection(vtkSplineFilter->GetOutputPort())</div>
<div><br></div><div>vtkMRMLModelNode->SetAndObservePolyData(vtkTubeFilter->GetOutput())</div><div><br></div><div>I would like to have one vtkMRMLModelNode with one polydata.</div><div>The problem if I do what you suggested, is all my vtkMRMLModelNodes are gonna observe TubeFilter. So when I will modify my polydata and call vtkSplineFilter->Update() and vtkTubeFilter->Update(), all my vtkMRMLModelNodes will be updated, but I only want the last one to be.</div>


<div>Should I do a copy of the output of vtkTubeFilter instead ? to avoid they all change when I update the TubeFilter ?</div><div><br></div><div>Thank you.</div><div>-Laurent</div><div><br></div></div><div class="gmail_extra">


<br><br><div class="gmail_quote"><div><div class="h5">On Tue, Jul 22, 2014 at 7:02 PM, Sam Raby <span dir="ltr"><<a href="mailto:rabysam28@gmail.com" target="_blank">rabysam28@gmail.com</a>></span> wrote:<br></div>

</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
<div dir="ltr">Hi Laurent,<div><br></div><div>After feeding the vtkPolyData into the vtkSplineFilter by SetInputData and setting the parameters of the filter, did you try to manually update the <span style="font-family:arial,sans-serif;font-size:12.727272033691406px">vtkSplineFilter?</span></div>




<div><span style="font-family:arial,sans-serif;font-size:12.727272033691406px"><br></span></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On Tue, Jul 22, 2014 at 4:55 PM, Laurent Chauvin <span dir="ltr"><<a href="mailto:lchauvin@bwh.harvard.edu" target="_blank">lchauvin@bwh.harvard.edu</a>></span> wrote:<br>




</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">Hello,<div><br></div><div>I created a pipeline with a vtkSplineFilter, with a polydata as input.</div>


<div>

However, now that I try to make it compatible with VTK 6, it's not working anymore.</div><div><br>
</div><div>I replaced SetInput by SetInputData, and I read that SetInputData doesn't create the pipeline. That's probably why now, when I update my polydata, it's not updating the spline.</div><div>But I was wondering then how should I do to keep creating the pipeline then ?</div>





<div><br></div><div>I read to use SetInputConnection, but I think SetInputConnection take as argument the OutputPort of another filter, but the spline is the 'entry point' of my pipeline, taking a polydata as input, and applying some filters on it.</div>





<div><br></div><div>How could I do to update the pipeline when modifying the polydata ?</div><div><br></div><div>Thank you.</div><span><font color="#888888"><div>-Laurent</div><div><br></div><div>-- <br><div dir="ltr">

<div>Laurent Chauvin, MS</div><div>
Surgical Navigation and Robotics Laboratory, Radiology Department</div><div>Brigham And Women's Hospital, Harvard Medical School<br></div><div><a href="http://wiki.ncigt.org/index.php/User:Lchauvin" target="_blank">http://wiki.ncigt.org/index.php/User:Lchauvin</a></div>





</div>
</div></font></span></div>
<br></div></div>_______________________________________________<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://public.kitware.com/mailman/listinfo/vtkusers" target="_blank">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
<br></blockquote></div><br></div>
<p></p>

</div></div><p>The information in this e-mail is intended only for the person to whom it is<br>
addressed. If you believe this e-mail was sent to you in error and the e-mail<br>
contains patient information, please contact the Partners Compliance HelpLine at<br>
<a href="http://www.partners.org/complianceline" target="_blank">http://www.partners.org/complianceline</a> . If the e-mail was sent to you in error<br>
but does not contain patient information, please contact the sender and properly<br>
dispose of the e-mail.</p></blockquote></div><div class=""><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><div>Laurent Chauvin, MS</div><div>Surgical Navigation and Robotics Laboratory, Radiology Department</div>

<div>Brigham And Women's Hospital, Harvard Medical School<br>
</div><div><a href="http://wiki.ncigt.org/index.php/User:Lchauvin" target="_blank">http://wiki.ncigt.org/index.php/User:Lchauvin</a></div></div>
</div></div>
<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://public.kitware.com/mailman/listinfo/vtkusers" target="_blank">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
<br></blockquote></div><br></div>