1 #include <cpPlugins/DataObject.h>
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>
10 // -------------------------------------------------------------------------
11 cpPlugins::ProcessObject* cpPlugins::DataObject::
14 return( this->m_Source );
17 // -------------------------------------------------------------------------
18 const cpPlugins::ProcessObject* cpPlugins::DataObject::
21 return( this->m_Source );
24 // -------------------------------------------------------------------------
25 void cpPlugins::DataObject::
26 SetSource( cpPlugins::ProcessObject* src )
28 if( this->m_Source != src )
36 // -------------------------------------------------------------------------
37 void cpPlugins::DataObject::
38 DisconnectFromPipeline( )
40 // Disconnect input pipelines (ITK)
41 itk::DataObject* itk_obj = this->GetITK< itk::DataObject >( );
43 itk_obj->DisconnectPipeline( );
45 // Disconnect input pipelines (VTK)
46 vtkImageData* vtk_image = this->GetVTK< vtkImageData >( );
47 vtkPolyData* vtk_pd = this->GetVTK< vtkPolyData >( );
48 if( vtk_image != NULL )
50 vtkSmartPointer< vtkImageData > d =
51 vtkSmartPointer< vtkImageData >::New( );
52 d->ShallowCopy( vtk_image );
53 this->m_VTKObject = d;
55 else if( vtk_pd != NULL )
57 vtkSmartPointer< vtkPolyData > d =
58 vtkSmartPointer< vtkPolyData >::New( );
59 d->ShallowCopy( vtk_pd );
60 this->m_VTKObject = d;
65 this->m_Source = NULL;
69 // -------------------------------------------------------------------------
70 cpPlugins::DataObjectVisualizationQtDialog* cpPlugins::DataObject::
74 DataObjectVisualizationQtDialog* dlg = NULL;
75 if( QApplication::instance( ) != NULL )
77 dlg = new DataObjectVisualizationQtDialog( );
78 dlg->setDataObject( this );
82 #else // cpPlugins_QT4
84 #endif // cpPlugins_QT4
87 // -------------------------------------------------------------------------
88 vtkProp* cpPlugins::DataObject::
94 // -------------------------------------------------------------------------
95 cpPlugins::DataObject::
102 // -------------------------------------------------------------------------
103 cpPlugins::DataObject::