| 303 | } |
| 304 | |
| 305 | void CompoundParameter::removeParameter( ParameterPtr parameter ) |
| 306 | { |
| 307 | ParameterVector::iterator it = find( m_parameters.begin(), m_parameters.end(), parameter ); |
| 308 | if( it==m_parameters.end() ) |
| 309 | { |
| 310 | throw Exception( "Parameter to remove doesn't exist" ); |
| 311 | } |
| 312 | m_parameters.erase( it ); |
| 313 | m_namesToParameters.erase( parameter->internedName() ); |
| 314 | |
| 315 | ObjectPtr value = Parameter::getValue(); |
| 316 | CompoundObjectPtr tValue = runTimeCast<CompoundObject>( value ); |
| 317 | if( tValue ) |
| 318 | { |
| 319 | CompoundObject::ObjectMap::iterator oIt = tValue->members().find( parameter->name() ); |
| 320 | if( oIt!=tValue->members().end() ) |
| 321 | { |
| 322 | tValue->members().erase( oIt ); |
| 323 | } |
| 324 | } |
| 325 | |
| 326 | } |
| 327 | |
| 328 | void CompoundParameter::removeParameter( const std::string &name ) |
| 329 | { |