X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=appli%2FImageMPR%2FImageMPR.cxx;h=76daaa514f58e8bb235b91dceb8b8f09ea9c34b1;hb=cf01030f78d919f66b53a80831e1e89b0cb13397;hp=6181dc673940ca9e2e6e26a735bf5d34b65fabbb;hpb=02010627b7276dc77962719b3e5be13c2a5b4605;p=cpPlugins.git diff --git a/appli/ImageMPR/ImageMPR.cxx b/appli/ImageMPR/ImageMPR.cxx index 6181dc6..76daaa5 100644 --- a/appli/ImageMPR/ImageMPR.cxx +++ b/appli/ImageMPR/ImageMPR.cxx @@ -6,25 +6,13 @@ #include #include -/* -#include -#include -#include - -#include -#include -#include -#include - -#include - -// ------------------------------------------------------------------------- -#define IDMS_QT_ACTION( name ) \ - QObject::connect( \ - this->m_UI->action##name, SIGNAL( triggered( ) ), \ - this, SLOT( _triggered_action##name( ) ) \ - ) -*/ +#ifdef _WIN32 +# define PLUGIN_EXT "dll" +# define PLUGIN_REGEX "Plugins file (*.dll);;All files (*)" +#else +# define PLUGIN_EXT "so" +# define PLUGIN_REGEX "Plugins file (*.so);;All files (*)" +#endif // _WIN32 // ------------------------------------------------------------------------- ImageMPR::ImageMPR( QWidget* parent ) @@ -35,46 +23,14 @@ ImageMPR::ImageMPR( QWidget* parent ) this->m_UI->setupUi( this ); // Create and associate renderers - this->m_3DRenderer = vtkSmartPointer< vtkRenderer >::New( ); - this->m_XPlaneRenderer = vtkSmartPointer< vtkRenderer >::New( ); - this->m_YPlaneRenderer = vtkSmartPointer< vtkRenderer >::New( ); - this->m_ZPlaneRenderer = vtkSmartPointer< vtkRenderer >::New( ); - this->m_3DRenderer->SetBackground( 0.2, 0.2, 0.2 ); - this->m_XPlaneRenderer->SetBackground( 0.1, 0.3, 0.8 ); - this->m_YPlaneRenderer->SetBackground( 0.1, 0.3, 0.8 ); - this->m_ZPlaneRenderer->SetBackground( 0.1, 0.3, 0.8 ); - this->m_UI->m_3DVTK->GetRenderWindow( )-> - AddRenderer( this->m_3DRenderer ); - this->m_UI->m_XPlaneVTK->GetRenderWindow( )-> - AddRenderer( this->m_XPlaneRenderer ); - this->m_UI->m_YPlaneVTK->GetRenderWindow( )-> - AddRenderer( this->m_YPlaneRenderer ); - this->m_UI->m_ZPlaneVTK->GetRenderWindow( )-> - AddRenderer( this->m_ZPlaneRenderer ); - - // Configure MPR actors - this->m_MPRActors = vtkSmartPointer< TMPRActors >::New( ); - - // Prepare interaction - this->m_XStyle = vtkSmartPointer< TStyle >::New( ); - this->m_YStyle = vtkSmartPointer< TStyle >::New( ); - this->m_ZStyle = vtkSmartPointer< TStyle >::New( ); - this->m_XStyle-> - Configure( this->m_MPRActors->GetSliceActors( 0 ), this->m_MPRActors ); - this->m_YStyle-> - Configure( this->m_MPRActors->GetSliceActors( 1 ), this->m_MPRActors ); - this->m_ZStyle-> - Configure( this->m_MPRActors->GetSliceActors( 2 ), this->m_MPRActors ); - this->m_XStyle-> - SetInteractor( this->m_UI->m_XPlaneVTK->GetInteractor( ), 0 ); - this->m_YStyle-> - SetInteractor( this->m_UI->m_YPlaneVTK->GetInteractor( ), 1 ); - this->m_ZStyle-> - SetInteractor( this->m_UI->m_ZPlaneVTK->GetInteractor( ), 2 ); - this->m_XStyle->SetModeToNavigation( ); - this->m_YStyle->SetModeToNavigation( ); - this->m_ZStyle->SetModeToNavigation( ); + this->m_MPR = new TMPR( + this->m_UI->m_XPlaneVTK->GetRenderWindow( ), + this->m_UI->m_YPlaneVTK->GetRenderWindow( ), + this->m_UI->m_ZPlaneVTK->GetRenderWindow( ), + this->m_UI->m_3DVTK->GetRenderWindow( ) + ); + // signals <-> slots QObject::connect( this->m_UI->actionOpenPlugins, SIGNAL( triggered( ) ), this, SLOT( _triggered_actionOpenPlugins( ) ) @@ -97,7 +53,7 @@ ImageMPR:: // Delete objects delete this->m_UI; - if( this->m_InputImage != NULL ) delete this->m_InputImage; + delete this->m_MPR; } // ------------------------------------------------------------------------- @@ -108,10 +64,8 @@ _triggered_actionOpenPlugins( ) QFileDialog dialog( this ); dialog.setFileMode( QFileDialog::ExistingFile ); dialog.setDirectory( "." ); - dialog.setNameFilter( - tr( "Plugins file (*.so);;All files (*)" ) - ); - dialog.setDefaultSuffix( tr( "so" ) ); + dialog.setNameFilter( tr( PLUGIN_REGEX ) ); + dialog.setDefaultSuffix( tr( PLUGIN_EXT ) ); if( !( dialog.exec( ) ) ) return; @@ -150,24 +104,22 @@ _triggered_actionOpenInputImage( ) if( !( dialog.exec( ) ) ) return; - if( this->m_InputImage != NULL ) - delete this->m_InputImage; this->m_InputImage = NULL; unsigned int nFiles = dialog.selectedFiles( ).size( ); if( nFiles == 1 ) { std::string fname = dialog.selectedFiles( ).at( 0 ).toStdString( ); - TPlugin* reader = - dynamic_cast< TPlugin* >( - this->m_Plugins.CreateObject( this->m_BaseClasses[ "ImageReader" ] ) + TPlugin::Pointer reader = + this->m_Plugins.CreateProcessObject( + this->m_BaseClasses[ "ImageReader" ] ); TParameters reader_params = reader->GetDefaultParameters( ); - reader_params[ "FileName" ].second = fname; - reader_params[ "PixelType" ].second = "short"; - reader_params[ "ImageDimension" ].second = "3"; - reader_params[ "IsColorImage" ].second = "0"; + reader_params.SetValueAsString( "FileName", fname ); + reader_params.SetValueAsString( "PixelType", "short" ); + reader_params.SetValueAsUint( "ImageDimension", 3 ); + reader_params.SetValueAsUint( "IsColorImage", 0 ); reader->SetParameters( reader_params ); std::string err = reader->Update( ); @@ -183,7 +135,6 @@ _triggered_actionOpenInputImage( ) tr( "Error reading single image" ), tr( err.c_str( ) ) ); - delete reader; } else if( nFiles > 1 ) { @@ -205,29 +156,8 @@ _triggered_actionOpenInputImage( ) } // fi - if( this->m_InputImage != NULL ) - { - this->m_MPRActors->SetInputData( this->m_InputImage->GetVTKImageData( ) ); - this->m_MPRActors->PushDataInto( - this->m_XPlaneRenderer, - this->m_YPlaneRenderer, - this->m_ZPlaneRenderer, - this->m_3DRenderer - ); - - // Reset all cameras - this->m_3DRenderer->ResetCamera( ); - this->m_XPlaneRenderer->ResetCamera( ); - this->m_YPlaneRenderer->ResetCamera( ); - this->m_ZPlaneRenderer->ResetCamera( ); - - // 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( ); - - } // fi + if( this->m_InputImage.IsNotNull( ) ) + this->m_MPR->SetImage( this->m_InputImage->GetVTKImageData( ) ); } // eof - $RCSfile$