]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Interface/DataObject.cxx
Widget integration (step 3/6). WARNING: IT DOES NOT COMPILE YET
[cpPlugins.git] / lib / cpPlugins / Interface / DataObject.cxx
1 #include <cpPlugins/Interface/DataObject.h>
2
3 #include <itkDataObject.h>
4 #include <vtkImageData.h>
5 #include <vtkPolyData.h>
6
7 // -------------------------------------------------------------------------
8 cpPlugins::Interface::Object* cpPlugins::Interface::DataObject::
9 GetSource( )
10 {
11   return( this->m_Source );
12 }
13
14 // -------------------------------------------------------------------------
15 const cpPlugins::Interface::Object* cpPlugins::Interface::DataObject::
16 GetSource( ) const
17 {
18   return( this->m_Source );
19 }
20
21 // -------------------------------------------------------------------------
22 void cpPlugins::Interface::DataObject::
23 SetSource( cpPlugins::Interface::Object* src )
24 {
25   if( this->m_Source.GetPointer( ) != src )
26   {
27     this->m_Source = src;
28     this->Modified( );
29
30   } // fi
31 }
32
33 // -------------------------------------------------------------------------
34 void cpPlugins::Interface::DataObject::
35 DisconnectPipeline( )
36 {
37   // Disconnect input pipelines (ITK)
38   itk::DataObject* itk_obj = this->GetITK< itk::DataObject >( );
39   if( itk_obj != NULL )
40     itk_obj->DisconnectPipeline( );
41
42   // Disconnect input pipelines (VTK)
43   vtkImageData* vtk_image = this->GetVTK< vtkImageData >( );
44   vtkPolyData* vtk_pd = this->GetVTK< vtkPolyData >( );
45   if( vtk_image != NULL )
46   {
47     vtkSmartPointer< vtkImageData > d =
48       vtkSmartPointer< vtkImageData >::New( );
49     d->ShallowCopy( vtk_image );
50     this->m_VTKObject = d;
51   }
52   else if( vtk_pd != NULL )
53   {
54     vtkSmartPointer< vtkPolyData > d =
55       vtkSmartPointer< vtkPolyData >::New( );
56     d->ShallowCopy( vtk_pd );
57     this->m_VTKObject = d;
58
59   } // fi
60
61   // Unbind source
62   this->m_Source = NULL;
63 }
64
65 // -------------------------------------------------------------------------
66 cpPlugins::Interface::DataObject::
67 DataObject( )
68   : Superclass( ),
69     m_ITKObject( NULL ),
70     m_VTKObject( NULL ),
71     m_Source( NULL )
72 {
73   this->m_ClassName = "cpPlugins::Interface::DataObject";
74   this->m_ClassCategory = "BasicObject";
75 }
76
77 // -------------------------------------------------------------------------
78 cpPlugins::Interface::DataObject::
79 ~DataObject( )
80 {
81 }
82
83 // eof - $RCSfile$