X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FInterface%2FProcessObject.cxx;h=5434319fb09c1d9e7a8b47169e15185d83cda862;hb=1b600247da314fe62d007ca8a0ce24d0006931f4;hp=7552e5e1dea890027ee644926240d7ccb66a7cb3;hpb=003b7bc4f88cbe4aa6cc27fcd16b8cda94eba9be;p=cpPlugins.git diff --git a/lib/cpPlugins/Interface/ProcessObject.cxx b/lib/cpPlugins/Interface/ProcessObject.cxx index 7552e5e..5434319 100644 --- a/lib/cpPlugins/Interface/ProcessObject.cxx +++ b/lib/cpPlugins/Interface/ProcessObject.cxx @@ -3,69 +3,62 @@ #ifdef cpPlugins_Interface_QT4 #include #include +#include #endif // cpPlugins_Interface_QT4 #include // ------------------------------------------------------------------------- -void cpPlugins::Interface::ProcessObject:: -Modified( ) const -{ - if( this->m_ITKObject.IsNotNull( ) ) - this->m_ITKObject->Modified( ); - if( this->m_VTKObject.GetPointer( ) != NULL ) - this->m_VTKObject->Modified( ); - this->Superclass::Modified( ); -} - -// ------------------------------------------------------------------------- -void cpPlugins::Interface::ProcessObject:: -GetInputsNames( std::set< std::string >& names ) const +std::set< std::string > cpPlugins::Interface::ProcessObject:: +GetInputsNames( ) const { - names.clear( ); + std::set< std::string > names; auto dIt = this->m_Inputs.begin( ); for( ; dIt != this->m_Inputs.end( ); ++dIt ) names.insert( dIt->first ); + return( names ); } // ------------------------------------------------------------------------- -void cpPlugins::Interface::ProcessObject:: -GetOutputsNames( std::set< std::string >& names ) const +std::set< std::string > cpPlugins::Interface::ProcessObject:: +GetOutputsNames( ) const { - names.clear( ); + std::set< std::string > names; auto dIt = this->m_Outputs.begin( ); for( ; dIt != this->m_Outputs.end( ); ++dIt ) names.insert( dIt->first ); + return( names ); } // ------------------------------------------------------------------------- -bool cpPlugins::Interface::ProcessObject:: -SetOutputObjectName( - const std::string& new_object_name, const std::string& output_name - ) +unsigned int cpPlugins::Interface::ProcessObject:: +GetNumberOfInputs( ) const { - auto oIt = this->m_Outputs.find( output_name ); - if( oIt != this->m_Outputs.end( ) ) - { - this->m_OutputObjectsNames[ output_name ] = new_object_name; - this->Modified( ); - return( true ); - } - else - return( false ); + return( this->m_Inputs.size( ) ); } // ------------------------------------------------------------------------- -void cpPlugins::Interface::ProcessObject:: -SetInput( const std::string& id, cpPlugins::Interface::DataObject* dobj ) +unsigned int cpPlugins::Interface::ProcessObject:: +GetNumberOfOutputs( ) const +{ + return( this->m_Outputs.size( ) ); +} + +// ------------------------------------------------------------------------- +bool cpPlugins::Interface::ProcessObject:: +SetInput( + const std::string& id, cpPlugins::Interface::DataObject::Pointer* dobj + ) { _TDataContainer::iterator i = this->m_Inputs.find( id ); if( i != this->m_Inputs.end( ) ) { i->second = dobj; this->Modified( ); - - } // fi + return( true ); + } + else + return( false ); } // ------------------------------------------------------------------------- @@ -78,26 +71,21 @@ Update( ) _TDataContainer::iterator i = this->m_Inputs.begin( ); for( ; i != this->m_Inputs.end( ) && r == ""; ++i ) { - Self* src = dynamic_cast< Self* >( i->second->GetSource( ) ); - if( src != NULL ) - r = src->Update( ); - + if( i->second->IsNotNull( ) ) + { + Self* src = dynamic_cast< Self* >( ( *( i->second ) )->GetSource( ) ); + if( src != NULL ) + r = src->Update( ); + } + else + r = "cpPlugins::Interface::ProcessObject: No input connected."; + } // rof // Current update if( r == "" ) r = this->_GenerateData( ); - // Configure output names - auto oIt = this->m_Outputs.begin( ); - for( ; oIt != this->m_Outputs.end( ); ++oIt ) - { - auto nIt = this->m_OutputObjectsNames.find( oIt->first ); - if( nIt != this->m_OutputObjectsNames.end( ) ) - oIt->second->SetName( nIt->second ); - - } // rof - // Return error description, if any return( r ); } @@ -108,61 +96,69 @@ DisconnectOutputs( ) { _TDataContainer::iterator i = this->m_Outputs.begin( ); for( ; i != this->m_Outputs.end( ); ++i ) - if( i->second.IsNotNull( ) ) - i->second->DisconnectPipeline( ); + if( i->second->IsNotNull( ) ) + ( *( i->second ) )->DisconnectPipeline( ); +} + +// ------------------------------------------------------------------------- +vtkRenderWindowInteractor* cpPlugins::Interface::ProcessObject:: +GetSingleInteractor( ) +{ + return( this->m_SingleInteractor ); +} + +// ------------------------------------------------------------------------- +const vtkRenderWindowInteractor* cpPlugins::Interface::ProcessObject:: +GetSingleInteractor( ) const +{ + return( this->m_SingleInteractor ); } // ------------------------------------------------------------------------- void cpPlugins::Interface::ProcessObject:: -AddInteractor( vtkRenderWindowInteractor* interactor ) +SetSingleInteractor( vtkRenderWindowInteractor* interactor ) { -#ifdef cpPlugins_Interface_QT4 - if( this->m_ParametersDialog == NULL ) - this->m_ParametersDialog = new ParametersQtDialog( ); - this->m_ParametersDialog->addInteractor( interactor ); -#endif // cpPlugins_Interface_QT4 - this->m_Interactors.insert( interactor ); + this->m_SingleInteractor = interactor; } // ------------------------------------------------------------------------- -cpPlugins::Interface::ProcessObject:: -DialogResult cpPlugins::Interface::ProcessObject:: -ExecConfigurationDialog( QWidget* parent ) +cpPlugins::Interface:: +SimpleMPRWidget* cpPlugins::Interface::ProcessObject:: +GetMPRViewer( ) { - DialogResult r = Self::DialogResult_Cancel; + return( this->m_MPRViewer ); +} -#ifdef cpPlugins_Interface_QT4 +// ------------------------------------------------------------------------- +const cpPlugins::Interface:: +SimpleMPRWidget* cpPlugins::Interface::ProcessObject:: +GetMPRViewer( ) const +{ + return( this->m_MPRViewer ); +} - if( QApplication::instance( ) != NULL ) - { - if( this->m_ParametersDialog == NULL ) - this->m_ParametersDialog = new ParametersQtDialog( ); - this->m_ParametersDialog->setTitle( - this->GetClassName( ) + std::string( " basic configuration" ) - ); +// ------------------------------------------------------------------------- +void cpPlugins::Interface::ProcessObject:: +SetMPRViewer( cpPlugins::Interface::SimpleMPRWidget* wdg ) +{ + this->m_MPRViewer = wdg; +} +// ------------------------------------------------------------------------- +bool cpPlugins::Interface::ProcessObject:: +ExecConfigurationDialog( QWidget* parent ) +{ + bool r = false; +#ifdef cpPlugins_Interface_QT4 + if( this->m_ParametersDialog != NULL ) + { this->m_ParametersDialog->setParent( NULL ); this->m_ParametersDialog->setParameters( this->m_Parameters ); - - if( !( this->m_ParametersDialog->IsModal( ) ) ) - { - this->m_ParametersDialog->show( ); - r = Self::DialogResult_Modal; - } - else - { - if( this->m_ParametersDialog->exec( ) == 1 ) - r = Self::DialogResult_NoModal; - else - r = Self::DialogResult_Cancel; - - } // fi + r = ( this->m_ParametersDialog->exec( ) == 1 ); } else - r = Self::DialogResult_Cancel; - + r = false; #endif // cpPlugins_Interface_QT4 - return( r ); } @@ -170,32 +166,51 @@ ExecConfigurationDialog( QWidget* parent ) cpPlugins::Interface::ProcessObject:: ProcessObject( ) : Superclass( ), - m_ITKObject( NULL ), - m_VTKObject( NULL ), m_ParametersDialog( NULL ), - m_Plugins( NULL ) + m_MPRViewer( NULL ) { this->m_Parameters = TParameters::New( ); this->m_Parameters->SetProcessObject( this ); + +#ifdef cpPlugins_Interface_QT4 + if( QApplication::instance( ) != NULL ) + this->m_ParametersDialog = new ParametersQtDialog( ); +#endif // cpPlugins_Interface_QT4 } // ------------------------------------------------------------------------- cpPlugins::Interface::ProcessObject:: ~ProcessObject( ) { +#ifdef cpPlugins_Interface_QT4 if( this->m_ParametersDialog != NULL ) delete this->m_ParametersDialog; +#endif // cpPlugins_Interface_QT4 + + /* + auto iIt = this->m_Inputs.begin( ); + for( ; iIt != this->m_Inputs.end( ); ++iIt ) + delete iIt->second; + this->m_Inputs.clear( ); + */ + + auto oIt = this->m_Outputs.begin( ); + for( ; oIt != this->m_Outputs.end( ); ++oIt ) + delete oIt->second; + this->m_Outputs.clear( ); } // ------------------------------------------------------------------------- void cpPlugins::Interface::ProcessObject:: _AddInput( const std::string& name ) { - this->m_Inputs[ name ] = NULL; - this->Modified( ); -} + auto i = this->m_Inputs.find( name ); + if( i == this->m_Inputs.end( ) ) + { + this->m_Inputs[ name ] = NULL; + this->Modified( ); -// ------------------------------------------------------------------------- -CPPLUGINS_PROVIDER_SOURCE( cpPlugins::Interface::ProcessObject, 1, 1 ); + } // fi +} // eof - $RCSfile$