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; }