]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Interface/DataObject.cxx
Widget integration (step 3/6).
[cpPlugins.git] / lib / cpPlugins / Interface / DataObject.cxx
index 73ff662f9c423c0891e26a965dc034120d18b57c..536ea811fdeb90c8b124a199f71bdb908a1981d2 100644 (file)
@@ -1,35 +1,9 @@
 #include <cpPlugins/Interface/DataObject.h>
+
+#include <itkDataObject.h>
 #include <vtkImageData.h>
 #include <vtkPolyData.h>
 
-// -------------------------------------------------------------------------
-itk::DataObject* cpPlugins::Interface::DataObject::
-GetITKDataObject( )
-{
-  return( this->m_ITKObject.GetPointer( ) );
-}
-
-// -------------------------------------------------------------------------
-const itk::DataObject* cpPlugins::Interface::DataObject::
-GetITKDataObject( ) const
-{
-  return( this->m_ITKObject.GetPointer( ) );
-}
-
-// -------------------------------------------------------------------------
-vtkDataObject* cpPlugins::Interface::DataObject::
-GetVTKDataObject( )
-{
-  return( this->m_VTKObject.GetPointer( ) );
-}
-
-// -------------------------------------------------------------------------
-const vtkDataObject* cpPlugins::Interface::DataObject::
-GetVTKDataObject( ) const
-{
-  return( this->m_VTKObject.GetPointer( ) );
-}
-
 // -------------------------------------------------------------------------
 cpPlugins::Interface::Object* cpPlugins::Interface::DataObject::
 GetSource( )
@@ -60,42 +34,41 @@ SetSource( cpPlugins::Interface::Object* src )
 void cpPlugins::Interface::DataObject::
 DisconnectPipeline( )
 {
-  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;
-
-    } // fi
+  // Disconnect input pipelines (ITK)
+  itk::DataObject* itk_obj = this->GetITK< itk::DataObject >( );
+  if( itk_obj != NULL )
+    itk_obj->DisconnectPipeline( );
 
-    // Unbind source
-    if( this->m_Source.IsNotNull( ) )
-      this->m_Source->Delete( );
-    this->Register( );
+  // 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;
 }
 
 // -------------------------------------------------------------------------
 cpPlugins::Interface::DataObject::
 DataObject( )
-  : Superclass( )
+  : Superclass( ),
+    m_ITKObject( NULL ),
+    m_VTKObject( NULL ),
+    m_Source( NULL )
 {
   this->m_ClassName = "cpPlugins::Interface::DataObject";
   this->m_ClassCategory = "BasicObject";