//-***************************************************************************** void AddArbitraryStringPropertyToParamListBuilder( ICompoundProperty &parent, const PropertyHeader &propHeader, ISampleSelector &sampleSelector, ParamListBuilder &ParamListBuilder ) { IStringArrayProperty prop( parent, propHeader.getName() ); if ( ! prop.valid() ) { //error message? return; } std::string rmanType = GetPrmanScopeString( GetGeometryScope( propHeader.getMetaData() ) ) + " "; rmanType += "string " + propHeader.getName(); StringArraySamplePtr propSample = prop.getValue( sampleSelector ); RtPointer dataStart = NULL; for ( size_t i = 0; i < propSample->size(); ++i ) { RtPointer data = ParamListBuilder.addStringValue( (*propSample)[i] ); if ( i == 0 ) { dataStart = data; } } ParamListBuilder.add(rmanType, dataStart, propSample); }
void RestoreResource( const std::string & resourceName ) { ParamListBuilder paramListBuilder; paramListBuilder.addStringValue("restore", true); paramListBuilder.add( "string operation", paramListBuilder.finishStringVector() ); paramListBuilder.addStringValue("shading", true); paramListBuilder.add( "string subset", paramListBuilder.finishStringVector() ); RiResourceV( const_cast<char *>( resourceName.c_str() ), const_cast<char *>( "attributes" ), paramListBuilder.n(), paramListBuilder.nms(), paramListBuilder.vals()); }