PlugPtr CompoundDataPlug::createCounterpart( const std::string &name, Direction direction ) const { CompoundDataPlugPtr result = new CompoundDataPlug( name, direction, getFlags() ); for( PlugIterator it( this ); it != it.end(); it++ ) { result->addChild( (*it)->createCounterpart( (*it)->getName(), direction ) ); } return result; }
static CompoundDataPlugPtr compoundDataPlugConstructor( const char *name, Plug::Direction direction, unsigned flags, tuple children ) { CompoundDataPlugPtr result = new CompoundDataPlug( name, direction, flags ); size_t s = extract<size_t>( children.attr( "__len__" )() ); for( size_t i=0; i<s; i++ ) { Gaffer::PlugPtr c = extract<Gaffer::PlugPtr>( children[i] ); result->addChild( c ); } return result; }
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; }