+ // Disconnect input pipelines (ITK)
+ itk::DataObject* itk_obj = this->GetITK< itk::DataObject >( );
+ if( itk_obj != NULL )
+ itk_obj->DisconnectPipeline( );
+
+ // Disconnect input pipelines (VTK)
+ vtkImageData* vtk_image = this->GetVTK< vtkImageData >( );
+ vtkPolyData* vtk_pd = this->GetVTK< vtkPolyData >( );
+ if( vtk_image != NULL )
+ {
+ vtkSmartPointer< vtkImageData > d =
+ vtkSmartPointer< vtkImageData >::New( );
+ d->ShallowCopy( vtk_image );
+ this->m_VTKObject = d;
+ }
+ else if( vtk_pd != NULL )
+ {
+ vtkSmartPointer< vtkPolyData > d =
+ vtkSmartPointer< vtkPolyData >::New( );
+ d->ShallowCopy( vtk_pd );
+ this->m_VTKObject = d;
+
+ } // fi
+
+ // Unbind source
+ this->m_Source = NULL;