]> Creatis software - cpPlugins.git/blob - lib/cpPlugins/BaseObjects/DataObject.cxx
...
[cpPlugins.git] / lib / cpPlugins / BaseObjects / DataObject.cxx
1 #include <cpPlugins/BaseObjects/DataObject.h>
2
3 #include <itkDataObject.h>
4 #include <vtkImageData.h>
5 #include <vtkPolyData.h>
6 #include <vtkUnstructuredGrid.h>
7
8 // -------------------------------------------------------------------------
9 bool cpPlugins::BaseObjects::DataObject::
10 IsCompatible( const Self* other ) const
11 {
12   return( true );
13 }
14
15 // -------------------------------------------------------------------------
16 cpPlugins::BaseObjects::ProcessObject*
17 cpPlugins::BaseObjects::DataObject::
18 GetSource( )
19 {
20   return( this->m_Source );
21 }
22
23 // -------------------------------------------------------------------------
24 const cpPlugins::BaseObjects::ProcessObject*
25 cpPlugins::BaseObjects::DataObject::
26 GetSource( ) const
27 {
28   return( this->m_Source );
29 }
30
31 // -------------------------------------------------------------------------
32 void cpPlugins::BaseObjects::DataObject::
33 SetSource( cpPlugins::BaseObjects::ProcessObject* src )
34 {
35   if( this->m_Source != src )
36   {
37     this->m_Source = src;
38     this->Modified( );
39
40   } // fi
41 }
42
43 // -------------------------------------------------------------------------
44 void cpPlugins::BaseObjects::DataObject::
45 DisconnectFromPipeline( )
46 {
47   // Disconnect input pipelines (ITK)
48   itk::DataObject::Pointer itk_obj = this->GetITK< itk::DataObject >( );
49   if( itk_obj.IsNotNull( ) )
50     itk_obj->DisconnectPipeline( );
51
52   // Disconnect input pipelines (VTK)
53   bool      ok = this->_DisconnectVTK< vtkImageData >( );
54   if( !ok ) ok = this->_DisconnectVTK< vtkUnstructuredGrid >( );
55   if( !ok ) ok = this->_DisconnectVTK< vtkPolyData >( );
56
57   // Unbind source
58   this->m_Source = NULL;
59   this->Modified( );
60 }
61
62 // -------------------------------------------------------------------------
63 cpPlugins::BaseObjects::DataObject::
64 DataObject( )
65   : Superclass( ),
66     m_Source( NULL )
67 {
68 }
69
70 // -------------------------------------------------------------------------
71 cpPlugins::BaseObjects::DataObject::
72 ~DataObject( )
73 {
74 }
75
76 // -------------------------------------------------------------------------
77 template< class _TType >
78 bool cpPlugins::BaseObjects::DataObject::
79 _DisconnectVTK( )
80 {
81   _TType* v = this->GetVTK< _TType >( );
82   if( v != NULL )
83   {
84     vtkSmartPointer< _TType > d = vtkSmartPointer< _TType >::New( );
85     d->ShallowCopy( v );
86     this->m_VTK = d;
87     return( true );
88   }
89   else
90     return( false );
91 }
92
93 // eof - $RCSfile$