]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/Interface/DataObject.cxx
Major refactoring: API-HCI bug corrected.
[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     // Unbind source
88     if( this->m_Source.IsNotNull( ) )
89       this->m_Source->Delete( );
90     this->Register( );
91
92   } // fi
93 }
94
95 // -------------------------------------------------------------------------
96 cpPlugins::Interface::DataObject::
97 DataObject( )
98   : Superclass( )
99 {
100   this->m_ClassName = "cpPlugins::Interface::DataObject";
101   this->m_ClassCategory = "BasicObject";
102 }
103
104 // -------------------------------------------------------------------------
105 cpPlugins::Interface::DataObject::
106 ~DataObject( )
107 {
108 }
109
110 // eof - $RCSfile$