Esempio n. 1
0
//-*****************************************************************************
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);

}
Esempio n. 2
0
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());
}