17class DepsgraphFromIDsFilter {
19 DepsgraphFromIDsFilter(Span<ID *> ids)
21 ids_.add_multiple(ids);
26 return ids_.contains(
id);
35 DepsgraphFromIDsNodeBuilder(Main *bmain,
37 DepsgraphBuilderCache *cache,
39 : DepsgraphNodeBuilder(bmain, graph, cache), filter_(ids)
43 bool need_pull_base_into_graph(
const Base *base)
override
45 if (!filter_.contains(&base->
object->
id)) {
52 DepsgraphFromIDsFilter filter_;
57 DepsgraphFromIDsRelationBuilder(Main *bmain,
59 DepsgraphBuilderCache *cache,
61 : DepsgraphRelationBuilder(bmain, graph, cache), filter_(ids)
65 bool need_pull_base_into_graph(
const Base *base)
override
67 if (!filter_.contains(&base->
object->
id)) {
74 DepsgraphFromIDsFilter filter_;
91 return std::make_unique<DepsgraphFromIDsRelationBuilder>(
106 for (
ID *
id : ids_) {
DepsgraphBuilderCache builder_cache_
AbstractBuilderPipeline(::Depsgraph *graph)
virtual bool need_pull_base_into_graph(const Base *base)
virtual void build_id(ID *id, bool force_be_visible=false)
virtual void build_view_layer(Scene *scene, ViewLayer *view_layer, eDepsNode_LinkedState_Type linked_state)
virtual void build_view_layer(Scene *scene, ViewLayer *view_layer, eDepsNode_LinkedState_Type linked_state)
virtual void build_id(ID *id)
void build_relations(DepsgraphRelationBuilder &relation_builder) override
FromIDsBuilderPipeline(::Depsgraph *graph, Span< ID * > ids)
std::unique_ptr< DepsgraphRelationBuilder > construct_relation_builder() override
std::unique_ptr< DepsgraphNodeBuilder > construct_node_builder() override
void build_nodes(DepsgraphNodeBuilder &node_builder) override
bool contains(const VArray< bool > &varray, const IndexMask &indices_to_check, bool value)