- if( this->m_ITKObject.IsNotNull( ) )
- {
- // Disconnect input pipelines
- this->m_ITKObject->DisconnectPipeline( );
- vtkImageData* vtk_image =
- dynamic_cast< vtkImageData* >( this->m_VTKObject.GetPointer( ) );
- vtkPolyData* vtk_pd =
- dynamic_cast< vtkPolyData* >( this->m_VTKObject.GetPointer( ) );
- 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;
+ // Disconnect input pipelines (ITK)
+ itk::DataObject* itk_obj = this->GetITK< itk::DataObject >( );
+ if( itk_obj != NULL )
+ itk_obj->DisconnectPipeline( );