-void PipelineEditor::
-_slotView( const std::string& name, bool show )
-{
- typedef cpExtensions::QT::ActorsWidgetInterface _TViewer;
-
- // Get filter parameters
- std::vector< std::string > tokens =
- cpPlugins::OS::String::Tokenize( name, "@" );
- if( tokens.size( ) != 2 )
- return;
- auto filter_name = tokens[ 1 ];
- auto output_name = tokens[ 0 ];
-
- // Process data
- if( show )
- {
- try
- {
- auto ws = this->workspace( );
- 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 )
- {
- viewer =
- this->_configureViewer< cpExtensions::QT::SimpleMPRWidget >(
- this->m_UI->Viewer
- );
-
- } // fi
- if(
- dynamic_cast< QWidget* >( viewer ) !=
- dynamic_cast< QWidget* >( this->m_UI->Viewer ) &&
- viewer != NULL
- )
- {
- 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( );