]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/DataObject.cxx
9e6bdca57a55264d986a3a8d719f0143048df8dd
[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.GetPointer( ) == NULL )
73     this->_CreateVTKActor( );
74   return( this->m_Actor.GetPointer( ) );
75 }
76
77 // -------------------------------------------------------------------------
78 const vtkProp* cpPlugins::DataObject::
79 GetVTKActor( ) const
80 {
81   if( this->m_Actor.GetPointer( ) == NULL )
82     this->_CreateVTKActor( );
83   return( this->m_Actor.GetPointer( ) );
84 }
85
86 // -------------------------------------------------------------------------
87 cpPlugins::DataObject::
88 DataObject( )
89   : Superclass( ),
90     m_Source( NULL )
91     /* TODO
92        ,
93        m_Actor( NULL )
94     */
95 {
96 }
97
98 // -------------------------------------------------------------------------
99 cpPlugins::DataObject::
100 ~DataObject( )
101 {
102   /* TODO
103      if( this->m_Actor != NULL )
104      this->m_Actor->Delete( );
105   */
106 }
107
108 // -------------------------------------------------------------------------
109 void cpPlugins::DataObject::
110 _CreateVTKActor( ) const
111 {
112 }
113
114 // eof - $RCSfile$