Here is a example, which may not be very common, but I had it in my code...<br><br>void foo(vtkAlgorithm* aFilter, vtkDataObject* aData)<br>{<br>  vtkDataObject* aDataCopy = copyData(aData);<br>  aFilter->SetInputConnection(aDataCopy->GetProducerPort());<br>

  ...<br>}<br><br>In VTK 6, I can't find a generic way to connect a data object to an algorithm.<br>I have to create a trivial producer (reimplement vtkAlgorithm::SetInputDataInternal)<br><br>I'm curious if there is a reason not to change protected SetInputDataInternal to public SetInputData?<br>

<br>Most subclasses define SetInputData as:<br><br>void vtkPolyDataAlgorithm::SetInputData(int index, vtkDataObject* input)<br>{<br>  this->SetInputDataInternal(index, input);<br>}<br><br><br>Pat<br>