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