Gaffer::CompoundPlug *Outputs::addOutput( const std::string &name, const IECore::Display *output ) { CompoundPlugPtr outputPlug = new CompoundPlug( "output1" ); outputPlug->setFlags( Plug::Dynamic, true ); StringPlugPtr namePlug = new StringPlug( "name" ); namePlug->setValue( name ); namePlug->setFlags( Plug::Dynamic, true ); outputPlug->addChild( namePlug ); BoolPlugPtr activePlug = new BoolPlug( "active", Plug::In, true ); activePlug->setFlags( Plug::Dynamic, true ); outputPlug->addChild( activePlug ); StringPlugPtr fileNamePlug = new StringPlug( "fileName" ); fileNamePlug->setValue( output->getName() ); fileNamePlug->setFlags( Plug::Dynamic, true ); outputPlug->addChild( fileNamePlug ); StringPlugPtr typePlug = new StringPlug( "type" ); typePlug->setValue( output->getType() ); typePlug->setFlags( Plug::Dynamic, true ); outputPlug->addChild( typePlug ); StringPlugPtr dataPlug = new StringPlug( "data" ); dataPlug->setFlags( Plug::Dynamic, true ); outputPlug->addChild( dataPlug ); CompoundDataPlugPtr parametersPlug = new CompoundDataPlug( "parameters" ); parametersPlug->setFlags( Plug::Dynamic, true ); parametersPlug->addMembers( const_cast<Display *>( output )->parametersData(), /* useNameAsPlugName = */ true ); outputPlug->addChild( parametersPlug ); outputsPlug()->addChild( outputPlug ); // set one of the values _after_ adding the plug, otherwise // affects() is not called and we have no opportunity to // propagate dirtiness to our output globals. dataPlug->setValue( output->getData() ); return outputPlug.get(); }
Gaffer::CompoundPlug *Outputs::addOutput( const std::string &name, const IECore::Display *output ) { CompoundPlugPtr outputPlug = new CompoundPlug( "output1" ); outputPlug->setFlags( Plug::Dynamic, true ); StringPlugPtr namePlug = new StringPlug( "name" ); namePlug->setValue( name ); namePlug->setFlags( Plug::Dynamic, true ); outputPlug->addChild( namePlug ); BoolPlugPtr activePlug = new BoolPlug( "active", Plug::In, true ); activePlug->setFlags( Plug::Dynamic, true ); outputPlug->addChild( activePlug ); StringPlugPtr fileNamePlug = new StringPlug( "fileName" ); fileNamePlug->setValue( output->getName() ); fileNamePlug->setFlags( Plug::Dynamic, true ); outputPlug->addChild( fileNamePlug ); StringPlugPtr typePlug = new StringPlug( "type" ); typePlug->setValue( output->getType() ); typePlug->setFlags( Plug::Dynamic, true ); outputPlug->addChild( typePlug ); StringPlugPtr dataPlug = new StringPlug( "data" ); dataPlug->setValue( output->getData() ); dataPlug->setFlags( Plug::Dynamic, true ); outputPlug->addChild( dataPlug ); CompoundDataPlugPtr parametersPlug = new CompoundDataPlug( "parameters" ); parametersPlug->setFlags( Plug::Dynamic, true ); parametersPlug->addMembers( const_cast<Display *>( output )->parametersData(), /* useNameAsPlugName = */ true ); outputPlug->addChild( parametersPlug ); outputsPlug()->addChild( outputPlug ); return outputPlug.get(); }
Gaffer::CompoundPlug *Displays::addDisplay( const std::string &label, const IECore::Display *display ) { CompoundPlugPtr displayPlug = new CompoundPlug( "display1" ); displayPlug->setFlags( Plug::Dynamic, true ); StringPlugPtr labelPlug = new StringPlug( "label" ); labelPlug->setValue( label ); labelPlug->setFlags( Plug::Dynamic, true ); displayPlug->addChild( labelPlug ); BoolPlugPtr activePlug = new BoolPlug( "active", Plug::In, true ); activePlug->setFlags( Plug::Dynamic, true ); displayPlug->addChild( activePlug ); StringPlugPtr namePlug = new StringPlug( "name" ); namePlug->setValue( display->getName() ); namePlug->setFlags( Plug::Dynamic, true ); displayPlug->addChild( namePlug ); StringPlugPtr typePlug = new StringPlug( "type" ); typePlug->setValue( display->getType() ); typePlug->setFlags( Plug::Dynamic, true ); displayPlug->addChild( typePlug ); StringPlugPtr dataPlug = new StringPlug( "data" ); dataPlug->setValue( display->getData() ); dataPlug->setFlags( Plug::Dynamic, true ); displayPlug->addChild( dataPlug ); CompoundDataPlugPtr parametersPlug = new CompoundDataPlug( "parameters" ); parametersPlug->setFlags( Plug::Dynamic, true ); parametersPlug->addMembers( const_cast<Display *>( display )->parametersData() ); displayPlug->addChild( parametersPlug ); displaysPlug()->addChild( displayPlug ); return displayPlug; }