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