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 void cpPlugins::DataObject::
89 AddVTKActor( vtkProp* actor, vtkRenderer* renderer )
91 if( actor != NULL && renderer != NULL )
95 v.Renderer = renderer;
96 this->m_Actors.insert( v );
102 // -------------------------------------------------------------------------
103 void cpPlugins::DataObject::
106 this->m_Actors.clear( );
110 // -------------------------------------------------------------------------
111 void cpPlugins::DataObject::
114 for( auto i = this->m_Actors.begin( ); i != this->m_Actors.end( ); ++i )
115 i->Renderer->GetRenderWindow( )->Render( );
118 // -------------------------------------------------------------------------
119 cpPlugins::DataObject::TDataViews::
120 iterator cpPlugins::DataObject::
123 return( this->m_Actors.begin( ) );
126 // -------------------------------------------------------------------------
127 cpPlugins::DataObject::TDataViews::
128 iterator cpPlugins::DataObject::
131 return( this->m_Actors.end( ) );
134 // -------------------------------------------------------------------------
135 cpPlugins::DataObject::TDataViews::
136 const_iterator cpPlugins::DataObject::
137 BeginVTKActors( ) const
139 return( this->m_Actors.begin( ) );
142 // -------------------------------------------------------------------------
143 cpPlugins::DataObject::TDataViews::
144 const_iterator cpPlugins::DataObject::
145 EndVTKActors( ) const
147 return( this->m_Actors.end( ) );
150 // -------------------------------------------------------------------------
151 cpPlugins::DataObject::
158 // -------------------------------------------------------------------------
159 cpPlugins::DataObject::