]> 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< vtkPolyData >( );
55
56   // Unbind source
57   this->m_Source = NULL;
58   this->Modified( );
59 }
60
61 // -------------------------------------------------------------------------
62 cpPlugins::BaseObjects::DataObject::
63 DataObject( )
64   : Superclass( ),
65     m_Source( NULL )
66 {
67 }
68
69 // -------------------------------------------------------------------------
70 cpPlugins::BaseObjects::DataObject::
71 ~DataObject( )
72 {
73 }
74
75 // -------------------------------------------------------------------------
76 template< class _TType >
77 bool cpPlugins::BaseObjects::DataObject::
78 _DisconnectVTK( )
79 {
80   _TType* v = dynamic_cast< _TType* >( this->m_VTK.GetPointer( ) );
81   if( v != NULL )
82   {
83     vtkSmartPointer< _TType > d = vtkSmartPointer< _TType >::New( );
84     d->ShallowCopy( v );
85     this->m_VTK = d;
86     return( true );
87   }
88   else
89     return( false );
90 }
91
92 // eof - $RCSfile$