]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Interface/Parameters.cxx
MAC compilation issues solved... Now some tests please
[cpPlugins.git] / lib / cpPlugins / Interface / Parameters.cxx
index b02168b43c60ad92be24bbdc6e03831a975a3474..2e6d36c88b8aba369d36421c22907b47baf296f2 100644 (file)
@@ -1,81 +1,55 @@
 #include <cpPlugins/Interface/Parameters.h>
-
-#include <sstream>
+#include <cpPlugins/Interface/ProcessObject.h>
+#include <third_party/tinyxml/tinyxml.h>
 
 // -------------------------------------------------------------------------
-void cpPlugins::Interface::Parameters::
-Clear( )
+cpPlugins::Interface::
+ProcessObject* cpPlugins::Interface::Parameters::
+GetProcessObject( )
 {
-  this->m_Parameters.clear( );
-  this->Modified( );
+  return( this->m_Process );
 }
 
 // -------------------------------------------------------------------------
-void cpPlugins::Interface::Parameters::
-ConfigureAsString( const TString& name, const TString& v )
+const cpPlugins::Interface::
+ProcessObject* cpPlugins::Interface::Parameters::
+GetProcessObject( ) const
 {
-  this->m_Parameters[ name ] = TParameter( Self::String, TValues( v, v ) );
-  this->Modified( );
+  return( this->m_Process );
 }
 
 // -------------------------------------------------------------------------
-#define cpPlugins_Parameters_Configure( Y )             \
-  void cpPlugins::Interface::Parameters::               \
-  ConfigureAs##Y( const TString& name, const T##Y& v )  \
-  {                                                     \
-    std::stringstream str;                              \
-    str << v;                                           \
-    std::string s = str.str( );                         \
-    this->m_Parameters[ name ] =                        \
-      TParameter( Self::Y, TValues( s, s ) );           \
-    this->Modified( );                                  \
-  }
+void cpPlugins::Interface::Parameters::
+SetProcessObject( ProcessObject* v )
+{
+  if( this->m_Process != v )
+  {
+    this->m_Process = v;
+    this->Modified( );
 
-cpPlugins_Parameters_Configure( Bool );
-cpPlugins_Parameters_Configure( Int );
-cpPlugins_Parameters_Configure( Uint );
-cpPlugins_Parameters_Configure( Real );
+  } // fi
+}
 
 // -------------------------------------------------------------------------
-#define cpPlugins_Parameters_List_Configure( Y )        \
-  void cpPlugins::Interface::Parameters::               \
-  ConfigureAs##Y##List( const TString& name )           \
-  {                                                     \
-    this->m_Parameters[ name ] =                        \
-      TParameter( Self::Y##List, TValues( "", "" ) );   \
-    this->Modified( );                                  \
-  }
-
-cpPlugins_Parameters_List_Configure( String );
-cpPlugins_Parameters_List_Configure( Bool );
-cpPlugins_Parameters_List_Configure( Int );
-cpPlugins_Parameters_List_Configure( Uint );
-cpPlugins_Parameters_List_Configure( Real );
-cpPlugins_Parameters_List_Configure( Index );
-cpPlugins_Parameters_List_Configure( Point );
+void cpPlugins::Interface::Parameters::
+Modified( ) const
+{
+  this->Superclass::Modified( );
+  if( this->m_Process != NULL )
+    this->m_Process->Modified( );
+}
 
 // -------------------------------------------------------------------------
 void cpPlugins::Interface::Parameters::
-ConfigureAsChoices(
-  const TString& name, const std::vector< TString >& choices
-  )
+Clear( )
 {
-  // It is invalid not to give choices when configuring
-  if( choices.size( ) == 0 )
-    return;
-
-  std::stringstream str_choices;
-  str_choices << choices[ 0 ];
-  for( unsigned int i = 1; i < choices.size( ); ++i )
-    str_choices << "#" << choices[ i ];
-  this->m_Parameters[ name ] =
-    TParameter( Self::Choices, TValues( str_choices.str( ), "" ) );
+  this->m_Parameters.clear( );
   this->Modified( );
 }
 
 // -------------------------------------------------------------------------
 void cpPlugins::Interface::Parameters::
-GetNames( std::vector< TString >& container ) const
+GetNames( std::vector< std::string >& container ) const
 {
   container.clear( );
   TParameters::const_iterator i = this->m_Parameters.begin( );
@@ -86,9 +60,9 @@ GetNames( std::vector< TString >& container ) const
 // -------------------------------------------------------------------------
 cpPlugins::Interface::Parameters::
 Type cpPlugins::Interface::Parameters::
-GetType( const TString& name ) const
+GetType( const std::string& name ) const
 {
-  TParameters::const_iterator i = this->m_Parameters.find( name );
+  auto i = this->m_Parameters.find( name );
   if( i != this->m_Parameters.end( ) )
     return( i->second.first );
   else
@@ -96,327 +70,278 @@ GetType( const TString& name ) const
 }
 
 // -------------------------------------------------------------------------
-#define cpPlugins_Parameters_Has( Y )                                   \
-  bool cpPlugins::Interface::Parameters::                               \
-  Has##Y( const TString& name ) const                                   \
-  {                                                                     \
-    TParameters::const_iterator i = this->m_Parameters.find( name );    \
-    if( i != this->m_Parameters.end( ) )                                \
-      return( i->second.first == Self::Y );                             \
-    else                                                                \
-      return( false );                                                  \
-  }
+#define cpPlugins_Parameters_TypeAsString( Y )  \
+  if( i->second.first == Self::Y )              \
+    return( #Y )
 
-cpPlugins_Parameters_Has( String );
-cpPlugins_Parameters_Has( Bool );
-cpPlugins_Parameters_Has( Int );
-cpPlugins_Parameters_Has( Uint );
-cpPlugins_Parameters_Has( Real );
-cpPlugins_Parameters_Has( Index );
-cpPlugins_Parameters_Has( Point );
-cpPlugins_Parameters_Has( StringList );
-cpPlugins_Parameters_Has( BoolList );
-cpPlugins_Parameters_Has( IntList );
-cpPlugins_Parameters_Has( UintList );
-cpPlugins_Parameters_Has( RealList );
-cpPlugins_Parameters_Has( IndexList );
-cpPlugins_Parameters_Has( PointList );
-cpPlugins_Parameters_Has( Choices );
-
-// -------------------------------------------------------------------------
-cpPlugins::Interface::Parameters::
-TString cpPlugins::Interface::Parameters::
-GetString( const TString& name ) const
+std::string cpPlugins::Interface::Parameters::
+GetTypeAsString( const std::string& name ) const
 {
-  TParameters::const_iterator i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-  {
-    if( i->second.first == Self::String )
-      return( i->second.second.second );
-
-  } // fi
-  return( "" );
+  auto i = this->m_Parameters.find( name );
+  cpPlugins_Parameters_TypeAsString( String );
+  else cpPlugins_Parameters_TypeAsString( Bool );
+  else cpPlugins_Parameters_TypeAsString( Int );
+  else cpPlugins_Parameters_TypeAsString( Uint );
+  else cpPlugins_Parameters_TypeAsString( Real );
+  else cpPlugins_Parameters_TypeAsString( OpenFileName );
+  else cpPlugins_Parameters_TypeAsString( SaveFileName );
+  else cpPlugins_Parameters_TypeAsString( PathName );
+  else cpPlugins_Parameters_TypeAsString( StringList );
+  else cpPlugins_Parameters_TypeAsString( BoolList );
+  else cpPlugins_Parameters_TypeAsString( IntList );
+  else cpPlugins_Parameters_TypeAsString( UintList );
+  else cpPlugins_Parameters_TypeAsString( RealList );
+  else cpPlugins_Parameters_TypeAsString( OpenFileNameList );
+  else cpPlugins_Parameters_TypeAsString( SaveFileNameList );
+  else cpPlugins_Parameters_TypeAsString( PathNameList );
+  else cpPlugins_Parameters_TypeAsString( Choices );
+  else return( "NoType" );
 }
 
 // -------------------------------------------------------------------------
+#define cpPlugins_Parameters_TypeFromString( Y, str )   \
+  if( str == std::string( #Y ) )                        \
+    return( Self::Y )
+
 cpPlugins::Interface::Parameters::
-TBool cpPlugins::Interface::Parameters::
-GetBool( const TString& name ) const
+Type cpPlugins::Interface::Parameters::
+GetTypeFromString( const std::string& t )
 {
-  TParameters::const_iterator i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-  {
-    if( i->second.first == Self::Bool )
-      return( std::atoi( i->second.second.second.c_str( ) ) == 1 );
-
-  } // fi
-  return( false );
+  cpPlugins_Parameters_TypeFromString( String, t );
+  else cpPlugins_Parameters_TypeFromString( Bool, t );
+  else cpPlugins_Parameters_TypeFromString( Int, t );
+  else cpPlugins_Parameters_TypeFromString( Uint, t );
+  else cpPlugins_Parameters_TypeFromString( Real, t );
+  else cpPlugins_Parameters_TypeFromString( OpenFileName, t );
+  else cpPlugins_Parameters_TypeFromString( SaveFileName, t );
+  else cpPlugins_Parameters_TypeFromString( PathName, t );
+  else cpPlugins_Parameters_TypeFromString( StringList, t );
+  else cpPlugins_Parameters_TypeFromString( BoolList, t );
+  else cpPlugins_Parameters_TypeFromString( IntList, t );
+  else cpPlugins_Parameters_TypeFromString( UintList, t );
+  else cpPlugins_Parameters_TypeFromString( RealList, t );
+  else cpPlugins_Parameters_TypeFromString( OpenFileNameList, t );
+  else cpPlugins_Parameters_TypeFromString( SaveFileNameList, t );
+  else cpPlugins_Parameters_TypeFromString( PathNameList, t );
+  else cpPlugins_Parameters_TypeFromString( Choices, t );
+  else return( Self::NoType );
 }
 
 // -------------------------------------------------------------------------
-cpPlugins::Interface::Parameters::
-TInt cpPlugins::Interface::Parameters::
-GetInt( const TString& name ) const
+std::string cpPlugins::Interface::Parameters::
+GetString( const std::string& name, bool force ) const
 {
-  TParameters::const_iterator i = this->m_Parameters.find( name );
+  auto i = this->m_Parameters.find( name );
   if( i != this->m_Parameters.end( ) )
   {
-    if( i->second.first == Self::Int )
-      return( TInt( std::atoi( i->second.second.second.c_str( ) ) ) );
-
-  } // fi
-  return( TInt( 0 ) );
+    if( i->second.first == Self::String || force )
+      return( i->second.second );
+    else
+      return( "" );
+  }
+  else
+    return( "" );
 }
 
 // -------------------------------------------------------------------------
-cpPlugins::Interface::Parameters::
-TUint cpPlugins::Interface::Parameters::
-GetUint( const TString& name ) const
+void cpPlugins::Interface::Parameters::
+SetString( const std::string& name, const std::string& v, bool force )
 {
-  TParameters::const_iterator i = this->m_Parameters.find( name );
+  auto i = this->m_Parameters.find( name );
   if( i != this->m_Parameters.end( ) )
   {
-    if( i->second.first == Self::Uint )
-      return( TUint( std::atoi( i->second.second.second.c_str( ) ) ) );
+    if( i->second.first == Self::String || force )
+    {
+      if( i->second.second != v )
+      {
+        i->second.second = v;
+        this->Modified( );
 
-  } // fi
-  return( TUint( 0 ) );
-}
+      } // fi
 
-// -------------------------------------------------------------------------
-cpPlugins::Interface::Parameters::
-TReal cpPlugins::Interface::Parameters::
-GetReal( const TString& name ) const
-{
-  TParameters::const_iterator i = this->m_Parameters.find( name );
-  if( i != this->m_Parameters.end( ) )
-  {
-    if( i->second.first == Self::Real )
-      return( TReal( std::atof( i->second.second.second.c_str( ) ) ) );
+    } // fi
 
   } // fi
-  return( TReal( 0 ) );
 }
 
 // -------------------------------------------------------------------------
 void cpPlugins::Interface::Parameters::
-GetStringList( std::vector< TString >& lst, const TString& name ) const
+ConfigureAsChoices(
+  const std::string& name, const std::vector< std::string >& choices
+  )
 {
-  lst.clear( );
-  TParameters::const_iterator i = this->m_Parameters.find( name );
-  if( i == this->m_Parameters.end( ) )
-    return;
-  if( i->second.first != Self::StringList )
+  // It is invalid not to give choices when configuring
+  if( choices.size( ) == 0 )
     return;
 
-  std::istringstream str( i->second.second.second );
-  std::string token;
-  while( std::getline( str, token, '#' ) )
-    lst.push_back( token );
+  std::stringstream str_choices;
+  str_choices << choices[ 0 ];
+  for( unsigned int i = 1; i < choices.size( ); ++i )
+    str_choices << "#" << choices[ i ];
+  str_choices << "@";
+  this->m_Parameters[ name ] =
+    TParameter( Self::Choices, str_choices.str( ) );
+  this->Modified( );
 }
 
 // -------------------------------------------------------------------------
-void cpPlugins::Interface::Parameters::
-GetBoolList( std::vector< TBool >& lst, const TString& name ) const
+std::vector< std::string > cpPlugins::Interface::Parameters::
+GetChoices( const std::string& name ) const
 {
-  lst.clear( );
+  std::vector< std::string > choices;
+
   TParameters::const_iterator i = this->m_Parameters.find( name );
-  if( i == this->m_Parameters.end( ) )
-    return;
-  if( i->second.first != Self::BoolList )
-    return;
+  if( i != this->m_Parameters.end( ) )
+  {
+    if( i->second.first == Self::Choices )
+    {
+      std::istringstream str_choices( i->second.second );
+      std::string real_choices;
+      std::getline( str_choices, real_choices, '@' );
+      std::istringstream str( real_choices );
+      std::string token;
+      while( std::getline( str, token, '#' ) )
+        choices.push_back( token );
+
+    } // fi
 
-  std::istringstream str( i->second.second.second );
-  std::string token;
-  while( std::getline( str, token, '#' ) )
-    lst.push_back( std::atoi( token.c_str( ) ) == 1 );
+  } // fi
+  return( choices );
 }
 
 // -------------------------------------------------------------------------
-void cpPlugins::Interface::Parameters::
-GetIntList( std::vector< TInt >& lst, const TString& name ) const
+std::string cpPlugins::Interface::Parameters::
+GetSelectedChoice( const std::string& name ) const
 {
-  lst.clear( );
-  TParameters::const_iterator i = this->m_Parameters.find( name );
-  if( i == this->m_Parameters.end( ) )
-    return;
-  if( i->second.first != Self::IntList )
-    return;
-
-  std::istringstream str( i->second.second.second );
-  std::string token;
-  while( std::getline( str, token, '#' ) )
-    lst.push_back( TInt( std::atoi( token.c_str( ) ) ) );
+  auto i = this->m_Parameters.find( name );
+  if( i != this->m_Parameters.end( ) )
+  {
+    if( i->second.first == Self::Choices )
+    {
+      std::istringstream str_choices( i->second.second );
+      std::string real_choice;
+      std::getline( str_choices, real_choice, '@' );
+      std::getline( str_choices, real_choice, '@' );
+      return( real_choice );
+    }
+    else
+      return( "" );
+  }
+  else
+    return( "" );
 }
 
 // -------------------------------------------------------------------------
-void cpPlugins::Interface::Parameters::
-GetUintList( std::vector< TUint >& lst, const TString& name ) const
+bool cpPlugins::Interface::Parameters::
+SetSelectedChoice( const std::string& name, const std::string& choice )
 {
-  lst.clear( );
-  TParameters::const_iterator i = this->m_Parameters.find( name );
-  if( i == this->m_Parameters.end( ) )
-    return;
-  if( i->second.first != Self::UintList )
-    return;
-
-  std::istringstream str( i->second.second.second );
-  std::string token;
-  while( std::getline( str, token, '#' ) )
-    lst.push_back( TUint( std::atoi( token.c_str( ) ) ) );
+  auto i = this->m_Parameters.find( name );
+  if( i != this->m_Parameters.end( ) )
+  {
+    if( i->second.first == Self::Choices )
+    {
+      std::istringstream str_choices( i->second.second );
+      std::string choices;
+      std::getline( str_choices, choices, '@' );
+      if( choices.find( choice ) != std::string::npos )
+      {
+        std::stringstream new_choices;
+        new_choices << choices << "@" << choice;
+        i->second.second = new_choices.str( );
+        this->Modified( );
+        return( true );
+      }
+      else
+        return( false );
+    }
+    else
+      return( false );
+  }
+  else
+    return( false );
 }
 
 // -------------------------------------------------------------------------
-void cpPlugins::Interface::Parameters::
-GetRealList( std::vector< TReal >& lst, const TString& name ) const
+std::string cpPlugins::Interface::Parameters::
+GetAcceptedFileExtensions( const std::string& name ) const
 {
-  lst.clear( );
-  TParameters::const_iterator i = this->m_Parameters.find( name );
-  if( i == this->m_Parameters.end( ) )
-    return;
-  if( i->second.first != Self::RealList )
-    return;
-
-  std::istringstream str( i->second.second.second );
-  std::string token;
-  while( std::getline( str, token, '#' ) )
-    lst.push_back( TReal( std::atof( token.c_str( ) ) ) );
+  auto i = this->m_AcceptedFileExtensions.find( name );
+  if( i != this->m_AcceptedFileExtensions.end( ) )
+    return( i->second );
+  else
+    return( "" );
 }
 
 // -------------------------------------------------------------------------
 void cpPlugins::Interface::Parameters::
-GetChoices( std::vector< TString >& choices, const TString& name ) const
+SetAcceptedFileExtensions(
+  const std::string& name, const std::string& extensions
+  )
 {
-  choices.clear( );
-  TParameters::const_iterator i = this->m_Parameters.find( name );
-  if( i == this->m_Parameters.end( ) )
-    return;
-  if( i->second.first != Self::Choices )
-    return;
+  auto i = this->m_Parameters.find( name );
+  if( i != this->m_Parameters.end( ) )
+  {
+    bool is_valid = ( i->second.first == Self::OpenFileName );
+    is_valid     |= ( i->second.first == Self::SaveFileName );
+    is_valid     |= ( i->second.first == Self::OpenFileNameList );
+    is_valid     |= ( i->second.first == Self::SaveFileNameList );
+    if( is_valid )
+      this->m_AcceptedFileExtensions[ name ] = extensions;
 
-  std::istringstream str( i->second.second.first );
-  std::string token;
-  while( std::getline( str, token, '#' ) )
-    choices.push_back( token );
+  } // fi
 }
 
 // -------------------------------------------------------------------------
-cpPlugins::Interface::Parameters::
-TString cpPlugins::Interface::Parameters::
-GetSelectedChoice( const TString& name ) const
+bool cpPlugins::Interface::Parameters::
+ToXML( TiXmlElement* parent_elem ) const
 {
-  TParameters::const_iterator i = this->m_Parameters.find( name );
-  if( i == this->m_Parameters.end( ) )
-    return( "" );
-  if( i->second.first != Self::Choices )
-    return( "" );
-  return( i->second.second.second );
-}
+  if( parent_elem == NULL )
+    return( false );
 
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Parameters::
-SetString( const TString& name, const TString& v )
-{
-  TParameters::iterator i = this->m_Parameters.find( name );
-  if( i == this->m_Parameters.end( ) )
-    return;
-  if( i->second.first != Self::String )
-    return;
-  i->second.second.second = v;
-  this->Modified( );
+  auto pIt = this->m_Parameters.begin( );
+  for( ; pIt != this->m_Parameters.end( ); ++pIt )
+  {
+    TiXmlElement* p = new TiXmlElement( "parameter" );
+    p->SetAttribute( "name", pIt->first.c_str( ) );
+    p->SetAttribute( "value", pIt->second.second.c_str( ) );
+    p->SetAttribute( "type", this->GetTypeAsString( pIt->first ).c_str( ) );
+    parent_elem->LinkEndChild( p );
+
+  } // rof
+  return( true );
 }
 
-// -------------------------------------------------------------------------
-#define cpPlugins_Parameters_Set( Y )                           \
-  void cpPlugins::Interface::Parameters::                       \
-  Set##Y( const TString& name, const T##Y& v )                  \
-  {                                                             \
-    TParameters::iterator i = this->m_Parameters.find( name );  \
-    if( i == this->m_Parameters.end( ) )                        \
-      return;                                                   \
-    if( i->second.first != Self::Y )                            \
-      return;                                                   \
-    std::stringstream str;                                      \
-    str << v;                                                   \
-    i->second.second.second = str.str( );                       \
-    this->Modified( );                                          \
-  }
-
-cpPlugins_Parameters_Set( Bool );
-cpPlugins_Parameters_Set( Int );
-cpPlugins_Parameters_Set( Uint );
-cpPlugins_Parameters_Set( Real );
-
-// -------------------------------------------------------------------------
-#define cpPlugins_Parameters_Add( Y )                           \
-  void cpPlugins::Interface::Parameters::                       \
-  AddTo##Y##List( const TString& name, const T##Y& v )          \
-  {                                                             \
-    TParameters::iterator i = this->m_Parameters.find( name );  \
-    if( i == this->m_Parameters.end( ) )                        \
-      return;                                                   \
-    if( i->second.first != Self::Y##List )                      \
-      return;                                                   \
-    std::stringstream str;                                      \
-    if( i->second.second.second == "" )                         \
-      str << v;                                                 \
-    else                                                        \
-      str << "#" << v;                                          \
-    i->second.second.second += str.str( );                      \
-    this->Modified( );                                          \
-  }
-
-cpPlugins_Parameters_Add( String );
-cpPlugins_Parameters_Add( Bool );
-cpPlugins_Parameters_Add( Int );
-cpPlugins_Parameters_Add( Uint );
-cpPlugins_Parameters_Add( Real );
-
-// -------------------------------------------------------------------------
-#define cpPlugins_Parameters_Clear( Y )                         \
-  void cpPlugins::Interface::Parameters::                       \
-  Clear##Y##List( const TString& name )                         \
-  {                                                             \
-    TParameters::iterator i = this->m_Parameters.find( name );  \
-    if( i == this->m_Parameters.end( ) )                        \
-      return;                                                   \
-    if( i->second.first != Self::Y##List )                      \
-      return;                                                   \
-    i->second.second.second = "";                               \
-    this->Modified( );                                          \
-  }
-
-cpPlugins_Parameters_Clear( String );
-cpPlugins_Parameters_Clear( Bool );
-cpPlugins_Parameters_Clear( Int );
-cpPlugins_Parameters_Clear( Uint );
-cpPlugins_Parameters_Clear( Real );
-cpPlugins_Parameters_Clear( Index );
-cpPlugins_Parameters_Clear( Point );
-
 // -------------------------------------------------------------------------
 bool cpPlugins::Interface::Parameters::
-SetSelectedChoice( const TString& name, const TString& choice )
+FromXML( const TiXmlElement* filter_elem )
 {
-  TParameters::iterator i = this->m_Parameters.find( name );
-  if( i == this->m_Parameters.end( ) )
-    return( false );
-  if( i->second.first != Self::Choices )
-    return( false );
-  if( i->second.second.first.find( choice ) != std::string::npos )
+  const TiXmlElement* param = filter_elem->FirstChildElement( "parameter" );
+  bool ret = false;
+  while( param != NULL )
   {
-    i->second.second.second = choice;
-    this->Modified( );
-    return( true );
-  }
-  else
-    return( false );
+    const char* param_name = param->Attribute( "name" );
+    const char* param_type = param->Attribute( "type" );
+    if( param_name != NULL && param_type != NULL )
+    {
+      TParameter value;
+      value.second = param->Attribute( "value" );
+      value.first = Self::GetTypeFromString( param_type );
+      this->m_Parameters[ param_name ] = value;
+
+    } // fi
+    param = param->NextSiblingElement( "parameter" );
+    ret = true;
+
+  } // elihw
+  this->Modified( );
+  return( ret );
 }
 
 // -------------------------------------------------------------------------
 cpPlugins::Interface::Parameters::
 Parameters( )
-  : Superclass( )
+  : Superclass( ),
+    m_Process( NULL )
 {
   this->Clear( );
 }
@@ -436,9 +361,24 @@ PrintSelf( std::ostream& os, itk::Indent indent ) const
     os << indent
        << i->first << ": ("
        << i->second.first << " | "
-       << i->second.second.first << " | "
-       << i->second.second.second << ")"
+       << i->second.second << ")"
        << std::endl;
 }
 
+// -------------------------------------------------------------------------
+cpPlugins::Interface::Parameters::
+TParameters& cpPlugins::Interface::Parameters::
+GetRawParameters( )
+{
+  return( this->m_Parameters );
+}
+
+// -------------------------------------------------------------------------
+const cpPlugins::Interface::Parameters::
+TParameters& cpPlugins::Interface::Parameters::
+GetRawParameters( ) const
+{
+  return( this->m_Parameters );
+}
+
 // eof - $RCSfile$