- // Read parameters
- TParameters* parameters = this->GetParameters( name_value );
- TiXmlElement* param = filter->FirstChildElement( "parameter" );
- while( param != NULL )
- {
- const char* param_name = param->Attribute( "name" );
- const char* param_type = param->Attribute( "type" );
- if( param_name != NULL && param_type != NULL )
- {
- std::string param_type_str( param_type );
- const char* value = param->Attribute( "value" );
- if( value != NULL )
- {
- std::istringstream value_str( value );
- if( param_type_str == "String" )
- parameters->SetString( param_name, value );
- else if( param_type_str == "Bool" )
- parameters->SetBool( param_name, value[ 0 ] != '0' );
- else if( param_type_str == "Int" )
- {
- TParameters::TInt v;
- value_str >> v;
- parameters->SetInt( param_name, v );
- }
- else if( param_type_str == "Uint" )
- {
- TParameters::TUint v;
- value_str >> v;
- parameters->SetUint( param_name, v );
- }
- else if( param_type_str == "Real" )
- {
- TParameters::TReal v;
- value_str >> v;
- parameters->SetReal( param_name, v );
- }
- /* TODO
- else if( param_type_str == "Index" )
- else if( param_type_str == "Point" )
- else if( param_type_str == "Vector" )
- */
- }
- else
- {
- if( param_type_str == "StringList" )
- {
- TiXmlElement* item = param->FirstChildElement( "item" );
- while( item != NULL )
- {
- value = item->Attribute( "value" );
- if( value != NULL )
- parameters->AddToStringList( param_name, value );
- item = item->NextSiblingElement( "item" );
-
- } // elihw
- }
- else if( param_type_str == "BoolList" )
- {
- TiXmlElement* item = param->FirstChildElement( "item" );
- while( item != NULL )
- {
- value = item->Attribute( "value" );
- if( value != NULL )
- parameters->AddToBoolList( param_name, value[ 0 ] != '0' );
- item = item->NextSiblingElement( "item" );
-
- } // elihw
- }
- else if( param_type_str == "IntList" )
- {
- TiXmlElement* item = param->FirstChildElement( "item" );
- while( item != NULL )
- {
- value = item->Attribute( "value" );
- if( value != NULL )
- {
- std::istringstream value_str( value );
- TParameters::TInt v;
- value_str >> v;
- parameters->AddToIntList( param_name, v );
-
- } // fi
- item = item->NextSiblingElement( "item" );
-
- } // elihw
- }
- else if( param_type_str == "UintList" )
- {
- TiXmlElement* item = param->FirstChildElement( "item" );
- while( item != NULL )
- {
- value = item->Attribute( "value" );
- if( value != NULL )
- {
- std::istringstream value_str( value );
- TParameters::TUint v;
- value_str >> v;
- parameters->AddToUintList( param_name, v );
-
- } // fi
- item = item->NextSiblingElement( "item" );
-
- } // elihw
- }
- else if( param_type_str == "RealList" )
- {
- TiXmlElement* item = param->FirstChildElement( "item" );
- while( item != NULL )
- {
- value = item->Attribute( "value" );
- if( value != NULL )
- {
- std::istringstream value_str( value );
- TParameters::TReal v;
- value_str >> v;
- parameters->AddToRealList( param_name, v );
-
- } // fi
- item = item->NextSiblingElement( "item" );
-
- } // elihw
- }
- /* TODO
- else if( param_type_str == "IndexList" )
- else if( param_type_str == "PointList" )
- else if( param_type_str == "VectorList" )
- else if( param_type_str == "Choices" );
- */
- } // fi
-
- } // fi
- param = param->NextSiblingElement( "parameter" );
-
- } // elihw