- // -------------------------------------------------------------------------
- template< class I >
- bool MainWnd::
- _LoadImage( typename I::Pointer& image )
- {
- QStringList qList =
- QFileDialog::getOpenFileNames(
- this,
- tr( "Open an image" ),
- tr( this->m_LastOpenedFile.c_str( ) ),
- tr( "Medical image files (*.mhd *.bin *.dcm);;All files (*)" )
- );
- if( qList.size( ) == 0 )
- return( false );
-
- bool ret = true;
- QStringList::Iterator fIt = qList.begin( );
- if( qList.size( ) == 1 )
- {
- // Read a single image
- std::string fn = fIt->toStdString( );
- this->m_LastOpenedFile = fn;
-
- typename itk::ImageFileReader< I >::Pointer reader =
- itk::ImageFileReader< I >::New( );
- reader->SetFileName( fn );
- try
- {
- reader->Update( );
- }
- catch( itk::ExceptionObject& err )
- {
- QMessageBox::critical(
- this,
- tr( "Error opening single image!" ),
- tr( err.GetDescription( ) )
- );
- ret = false;
-
- } // yrt
- image = reader->GetOutput( );
- image->DisconnectPipeline( );
- }
- else if( qList.size( ) > 1 )
- {
- typedef std::set< std::string > _TOrderedStringList;
-
- // Read a slice set
- _TOrderedStringList filenames;
- for( ; fIt != qList.end( ); ++fIt )
- filenames.insert( fIt->toStdString( ) );
- typename itk::ImageSeriesReader< I >::Pointer reader =
- itk::ImageSeriesReader< I >::New( );
- reader->SetImageIO( itk::GDCMImageIO::New( ) );
- _TOrderedStringList::const_iterator oIt = filenames.begin( );
- for( ; oIt != filenames.end( ); ++oIt )
- {
- reader->AddFileName( *oIt );
- this->m_LastOpenedFile = *oIt;
-
- } // rof
- try
- {
- reader->Update( );
- }
- catch( itk::ExceptionObject& err )
- {
- QMessageBox::critical(
- this,
- tr( "Error opening image series!" ),
- tr( err.GetDescription( ) )
- );
- ret = false;
-
- } // yrt
- image = reader->GetOutput( );
- image->DisconnectPipeline( );
-
- } // fi
- return( ret );
- }
-
-// -------------------------------------------------------------------------
-void MainWnd::
-triggered_aReloadPlugins( )
-{
-}
-
-// -------------------------------------------------------------------------
-void MainWnd::
-triggered_aOpenInputImage( )
-{
- if( this->_LoadImage< TImage >( this->m_Image ) )
- {
- // Connect image to VTK
- this->m_VTKImage = TVTKImage::New( );
- this->m_VTKImage->SetInput( this->m_Image );
- this->m_VTKImage->Update( );
-
- this->m_ImageActors->Configure(
- this->m_VTKImage->GetOutput( ),
- this->m_UI->m_XPlaneVTK->GetInteractor( ),
- this->m_UI->m_YPlaneVTK->GetInteractor( ),
- this->m_UI->m_ZPlaneVTK->GetInteractor( )
- );
- this->m_ImageActors->
- AddAuxiliaryInteractor( this->m_UI->m_3DVTK->GetInteractor( ) );
-
- // Associate actors
- this->m_3DRenderer->AddActor(
- this->m_ImageActors->GetImageOutlineActor( )
- );
- this->m_3DRenderer->AddActor(
- this->m_ImageActors->GetXBoundsActor( )
- );
- this->m_3DRenderer->AddActor(
- this->m_ImageActors->GetYBoundsActor( )
- );
- this->m_3DRenderer->AddActor(
- this->m_ImageActors->GetZBoundsActor( )
- );
-
- // Reset all cameras
- this->m_3DRenderer->ResetCamera( );
- this->m_ImageActors->ResetCameras( );
-
- // Ok, start!
- this->m_UI->m_3DVTK->GetRenderWindow( )->Render( );
- this->m_UI->m_XPlaneVTK->GetRenderWindow( )->Render( );
- this->m_UI->m_YPlaneVTK->GetRenderWindow( )->Render( );
- this->m_UI->m_ZPlaneVTK->GetRenderWindow( )->Render( );
- this->_UpdateEnabledFlags( );
- this->m_UI->aNavigation->setChecked( true );
- this->triggered_aSwitchMode( );
-
- } // fi
-}
-
-// -------------------------------------------------------------------------
-void MainWnd::
-triggered_aOpenSegmentedImage( )
-{
- if( this->_LoadImage< TImage >( this->m_Segmentation ) )
- {
- // Connect image to VTK
- this->m_VTKSegmentation = TVTKImage::New( );
- this->m_VTKSegmentation->SetInput( this->m_Segmentation );
- this->m_VTKSegmentation->Update( );
-
- this->m_ImageActors->SetSegmentation(
- this->m_VTKSegmentation->GetOutput( )
- );
-
- // Ok, start!
- this->m_UI->m_XPlaneVTK->GetRenderWindow( )->Render( );
- this->m_UI->m_YPlaneVTK->GetRenderWindow( )->Render( );
- this->m_UI->m_ZPlaneVTK->GetRenderWindow( )->Render( );
- this->_UpdateEnabledFlags( );
-
- } // fi
-}
-