ExecutableNode::ExecutableNode( const std::string &name ) : Node( name ) { storeIndexOfNextChild( g_firstPlugIndex ); addChild( new ArrayPlug( "requirements", Plug::In, new Plug( "requirement0" ) ) ); addChild( new Plug( "requirement", Plug::Out ) ); CompoundPlugPtr dispatcherPlug = new CompoundPlug( "dispatcher", Plug::In ); addChild( dispatcherPlug ); Dispatcher::setupPlugs( dispatcherPlug.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->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(), /* useNameAsPlugName = */ true ); displayPlug->addChild( parametersPlug ); displaysPlug()->addChild( displayPlug ); return displayPlug.get(); }