]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Interface/DataObject.cxx
808aa2bc9cc0939542fbb5480ac397f4948272c9
[cpPlugins.git] / lib / cpPlugins / Interface / DataObject.cxx
1 #include <cpPlugins/Interface/DataObject.h>
2 #include <vtkImageData.h>
3 #include <vtkPolyData.h>
4
5 // -------------------------------------------------------------------------
6 itk::DataObject* cpPlugins::Interface::DataObject::
7 GetITKDataObject( )
8 {
9   return( this->m_ITKObject.GetPointer( ) );
10 }
11
12 // -------------------------------------------------------------------------
13 const itk::DataObject* cpPlugins::Interface::DataObject::
14 GetITKDataObject( ) const
15 {
16   return( this->m_ITKObject.GetPointer( ) );
17 }
18
19 // -------------------------------------------------------------------------
20 vtkDataObject* cpPlugins::Interface::DataObject::
21 GetVTKDataObject( )
22 {
23   return( this->m_VTKObject.GetPointer( ) );
24 }
25
26 // -------------------------------------------------------------------------
27 const vtkDataObject* cpPlugins::Interface::DataObject::
28 GetVTKDataObject( ) const
29 {
30   return( this->m_VTKObject.GetPointer( ) );
31 }
32
33 // -------------------------------------------------------------------------
34 cpPlugins::Interface::Object* cpPlugins::Interface::DataObject::
35 GetSource( )
36 {
37   return( this->m_Source );
38 }
39
40 // -------------------------------------------------------------------------
41 const cpPlugins::Interface::Object* cpPlugins::Interface::DataObject::
42 GetSource( ) const
43 {
44   return( this->m_Source );
45 }
46
47 // -------------------------------------------------------------------------
48 void cpPlugins::Interface::DataObject::
49 SetSource( cpPlugins::Interface::Object* src )
50 {
51   if( this->m_Source.GetPointer( ) != src )
52   {
53     this->m_Source = src;
54     this->Modified( );
55
56   } // fi
57 }
58
59 // -------------------------------------------------------------------------
60 void cpPlugins::Interface::DataObject::
61 DisconnectPipeline( )
62 {
63   if( this->m_ITKObject.IsNotNull( ) )
64   {
65     // Disconnect input pipelines
66     this->m_ITKObject->DisconnectPipeline( );
67     vtkImageData* vtk_image =
68       dynamic_cast< vtkImageData* >( this->m_VTKObject.GetPointer( ) );
69     vtkPolyData* vtk_pd =
70       dynamic_cast< vtkPolyData* >( this->m_VTKObject.GetPointer( ) );
71     if( vtk_image != NULL )
72     {
73       vtkSmartPointer< vtkImageData > d =
74         vtkSmartPointer< vtkImageData >::New( );
75       d->ShallowCopy( vtk_image );
76       this->m_VTKObject = d;
77     }
78     else if( vtk_pd != NULL )
79     {
80       vtkSmartPointer< vtkPolyData > d =
81         vtkSmartPointer< vtkPolyData >::New( );
82       d->ShallowCopy( vtk_pd );
83       this->m_VTKObject = d;
84
85     } // fi
86
87   } // fi
88
89   // Unbind source
90   this->m_Source = NULL;
91 }
92
93 // -------------------------------------------------------------------------
94 cpPlugins::Interface::DataObject::
95 DataObject( )
96   : Superclass( )
97 {
98   this->m_ClassName = "cpPlugins::Interface::DataObject";
99   this->m_ClassCategory = "BasicObject";
100 }
101
102 // -------------------------------------------------------------------------
103 cpPlugins::Interface::DataObject::
104 ~DataObject( )
105 {
106 }
107
108 // eof - $RCSfile$