+ auto ws = this->workspace( this->m_ActiveWS );
+ auto filter = ws->GetFilter( filter_name );
+ cpBaseQtApplication_Execute( filter->Update( ) );
+ auto image = filter->GetOutputData< vtkImageData >( output_name );
+ auto mesh = filter->GetOutputData< vtkPolyData >( output_name );
+ _TViewer* viewer = NULL;
+ if( image != NULL )
+ {
+ int dim = image->GetDataDimension( );
+ if( dim == 2 )
+ viewer =
+ this->_configureViewer< cpExtensions::QT::ImageWidget >(
+ this->m_UI->Viewer
+ );
+ else if( dim == 3 )
+ viewer =
+ this->_configureViewer< cpExtensions::QT::SimpleMPRWidget >(
+ this->m_UI->Viewer
+ );
+ }
+ else if( mesh != NULL )
+ {
+ // TODO
+
+ } // fi
+ if(
+ dynamic_cast< QWidget* >( viewer ) !=
+ dynamic_cast< QWidget* >( this->m_UI->Viewer )
+ )
+ {
+ delete this->m_UI->Viewer;
+ this->m_UI->Viewer = dynamic_cast< QWidget* >( viewer );
+ this->m_UI->MainSplitter->insertWidget( 0, this->m_UI->Viewer );
+ this->setViewer( viewer );
+
+ } // fi
+ if( image != NULL )
+ {
+ this->m_Blocker.block( );
+ auto mpr = dynamic_cast< cpExtensions::QT::SimpleMPRWidget* >( viewer );
+ auto imv = dynamic_cast< cpExtensions::QT::ImageWidget* >( viewer );
+ if( mpr != NULL )
+ mpr->SetImage( image, name );
+ else if( imv != NULL )
+ imv->SetImage( image, name );
+ this->m_Blocker.unblock( );
+ }
+ else if( mesh != NULL )
+ {
+ this->m_Blocker.block( );
+ auto mpr = dynamic_cast< cpExtensions::QT::SimpleMPRWidget* >( viewer );
+ if( mpr != NULL )
+ mpr->Add( mesh, name );
+ this->m_Blocker.unblock( );
+
+ } // fi