X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FInterface%2FParameters.cxx;h=e584b5e5d36cbd5d7f2719fe46f9ffb481f77302;hb=f4aeff15ebb41183d4b89f41b29ec26043848722;hp=f63fbbc1b802cb89d9e2c9da2b3391a855b6f4bf;hpb=b099c70da465fb2066928a0977899a40bdfff8e3;p=cpPlugins.git diff --git a/lib/cpPlugins/Interface/Parameters.cxx b/lib/cpPlugins/Interface/Parameters.cxx index f63fbbc..e584b5e 100644 --- a/lib/cpPlugins/Interface/Parameters.cxx +++ b/lib/cpPlugins/Interface/Parameters.cxx @@ -47,7 +47,8 @@ Clear( ) void cpPlugins::Interface::Parameters:: ConfigureAsString( const TString& name, const TString& v ) { - this->m_Parameters[ name ] = TParameter( Self::String, TValues( v, v ) ); + this->m_Parameters[ name ] = + TParameter( Self::String, TValues( v, v ) ); this->Modified( ); } @@ -86,6 +87,7 @@ cpPlugins_Parameters_List_Configure( Uint ); cpPlugins_Parameters_List_Configure( Real ); cpPlugins_Parameters_List_Configure( Index ); cpPlugins_Parameters_List_Configure( Point ); +cpPlugins_Parameters_List_Configure( Vector ); // ------------------------------------------------------------------------- void cpPlugins::Interface::Parameters:: @@ -147,6 +149,7 @@ cpPlugins_Parameters_Has( Uint ); cpPlugins_Parameters_Has( Real ); cpPlugins_Parameters_Has( Index ); cpPlugins_Parameters_Has( Point ); +cpPlugins_Parameters_Has( Vector ); cpPlugins_Parameters_Has( StringList ); cpPlugins_Parameters_Has( BoolList ); cpPlugins_Parameters_Has( IntList ); @@ -154,17 +157,18 @@ cpPlugins_Parameters_Has( UintList ); cpPlugins_Parameters_Has( RealList ); cpPlugins_Parameters_Has( IndexList ); cpPlugins_Parameters_Has( PointList ); +cpPlugins_Parameters_Has( VectorList ); cpPlugins_Parameters_Has( Choices ); // ------------------------------------------------------------------------- cpPlugins::Interface::Parameters:: TString cpPlugins::Interface::Parameters:: -GetString( const TString& name ) const +GetString( const TString& name, bool force ) const { TParameters::const_iterator i = this->m_Parameters.find( name ); if( i != this->m_Parameters.end( ) ) { - if( i->second.first == Self::String ) + if( i->second.first == Self::String || !force ) return( i->second.second.second ); } // fi @@ -225,7 +229,13 @@ GetReal( const TString& name ) const if( i != this->m_Parameters.end( ) ) { if( i->second.first == Self::Real ) - return( TReal( std::atof( i->second.second.second.c_str( ) ) ) ); + { + std::istringstream tok_str( i->second.second.second ); + float v; + tok_str >> v; + return( TReal( v ) ); + + } // fi } // fi return( TReal( 0 ) ); @@ -313,7 +323,13 @@ GetRealList( std::vector< TReal >& lst, const TString& name ) const std::istringstream str( i->second.second.second ); std::string token; while( std::getline( str, token, '#' ) ) - lst.push_back( TReal( std::atof( token.c_str( ) ) ) ); + { + std::istringstream tok_str( token ); + float v; + tok_str >> v; + lst.push_back( TReal( v ) ); + + } // elihw } // ------------------------------------------------------------------------- @@ -348,12 +364,12 @@ GetSelectedChoice( const TString& name ) const // ------------------------------------------------------------------------- void cpPlugins::Interface::Parameters:: -SetString( const TString& name, const TString& v ) +SetString( const TString& name, const TString& v, bool force ) { TParameters::iterator i = this->m_Parameters.find( name ); if( i == this->m_Parameters.end( ) ) return; - if( i->second.first != Self::String ) + if( i->second.first != Self::String && force ) return; i->second.second.second = v; this->Modified( ); @@ -426,6 +442,7 @@ cpPlugins_Parameters_Clear( Uint ); cpPlugins_Parameters_Clear( Real ); cpPlugins_Parameters_Clear( Index ); cpPlugins_Parameters_Clear( Point ); +cpPlugins_Parameters_Clear( Vector ); // ------------------------------------------------------------------------- bool cpPlugins::Interface::Parameters::