]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/DataObject.cxx
06806b56fd483ec689154d733c05fd710802bd6d
[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 #include <vtkProp.h>
8
9 // -------------------------------------------------------------------------
10 cpPlugins::ProcessObject* cpPlugins::DataObject::
11 GetSource( )
12 {
13   return( this->m_Source );
14 }
15
16 // -------------------------------------------------------------------------
17 const cpPlugins::ProcessObject* cpPlugins::DataObject::
18 GetSource( ) const
19 {
20   return( this->m_Source );
21 }
22
23 // -------------------------------------------------------------------------
24 void cpPlugins::DataObject::
25 SetSource( cpPlugins::ProcessObject* src )
26 {
27   if( this->m_Source != src )
28   {
29     this->m_Source = src;
30     this->Modified( );
31
32   } // fi
33 }
34
35 // -------------------------------------------------------------------------
36 void cpPlugins::DataObject::
37 DisconnectFromPipeline( )
38 {
39   // Disconnect input pipelines (ITK)
40   itk::DataObject* itk_obj = this->GetITK< itk::DataObject >( );
41   if( itk_obj != NULL )
42     itk_obj->DisconnectPipeline( );
43
44   // Disconnect input pipelines (VTK)
45   vtkImageData* vtk_image = this->GetVTK< vtkImageData >( );
46   vtkPolyData* vtk_pd = this->GetVTK< vtkPolyData >( );
47   if( vtk_image != NULL )
48   {
49     vtkSmartPointer< vtkImageData > d =
50       vtkSmartPointer< vtkImageData >::New( );
51     d->ShallowCopy( vtk_image );
52     this->m_VTKObject = d;
53   }
54   else if( vtk_pd != NULL )
55   {
56     vtkSmartPointer< vtkPolyData > d =
57       vtkSmartPointer< vtkPolyData >::New( );
58     d->ShallowCopy( vtk_pd );
59     this->m_VTKObject = d;
60
61   } // fi
62
63   // Unbind source
64   this->m_Source = NULL;
65   this->Modified( );
66 }
67
68 // -------------------------------------------------------------------------
69 vtkProp* cpPlugins::DataObject::
70 GetVTKActor( )
71 {
72   if( this->m_Actor == NULL )
73     this->_CreateVTKActor( );
74   return( this->m_Actor );
75 }
76
77 // -------------------------------------------------------------------------
78 const vtkProp* cpPlugins::DataObject::
79 GetVTKActor( ) const
80 {
81   if( this->m_Actor == NULL )
82     this->_CreateVTKActor( );
83   return( this->m_Actor );
84 }
85
86 // -------------------------------------------------------------------------
87 cpPlugins::DataObject::
88 DataObject( )
89   : Superclass( ),
90     m_Source( NULL ),
91     m_Actor( NULL )
92 {
93 }
94
95 // -------------------------------------------------------------------------
96 cpPlugins::DataObject::
97 ~DataObject( )
98 {
99   if( this->m_Actor != NULL )
100     this->m_Actor->Delete( );
101 }
102
103 // -------------------------------------------------------------------------
104 void cpPlugins::DataObject::
105 _CreateVTKActor( ) const
106 {
107 }
108
109 // eof - $RCSfile$