MCPcopy Create free account
hub / github.com/ImageEngine/cortex / execute

Method execute

src/IECoreScene/SceneAlgo.cpp:68–100  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

66 }
67
68 task *execute() override
69 {
70 m_locationFn( m_src, m_dst, m_time, m_flags );
71
72 SceneInterface::NameList childNames;
73 m_src->childNames( childNames );
74
75 set_ref_count( 1 + childNames.size() );
76
77 std::vector<SceneInterfacePtr> childSceneInterfaces;
78 childSceneInterfaces.reserve( childNames.size() );
79
80 std::vector<ConstSceneInterfacePtr> srcChildSceneInterfaces;
81 srcChildSceneInterfaces.reserve( childNames.size() );
82
83 for( const auto &childName : childNames )
84 {
85 SceneInterfacePtr dstChild = m_dst ? m_dst->child( childName, SceneInterface::CreateIfMissing ) : nullptr;
86 if( dstChild )
87 {
88 childSceneInterfaces.push_back( dstChild );
89 }
90
91 ConstSceneInterfacePtr srcChild = m_src->child( childName );
92 srcChildSceneInterfaces.push_back( srcChild );
93
94 Task *t = new( allocate_child() ) Task( srcChild.get(), dstChild.get(), m_locationFn, m_time, m_flags );
95 spawn( *t );
96 }
97 wait_for_all();
98
99 return nullptr;
100 }
101
102 private :
103

Callers

nothing calls this directly

Calls 4

childNamesMethod · 0.45
sizeMethod · 0.45
childMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected