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