17class DepsgraphFromIDsFilter {
19 DepsgraphFromIDsFilter(Span<ID *> ids)
21 ids_.add_multiple(ids);
26 return ids_.contains(
id);
33class DepsgraphFromIDsNodeBuilder :
public DepsgraphNodeBuilder {
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
55class DepsgraphFromIDsRelationBuilder :
public DepsgraphRelationBuilder {
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
91 return std::make_unique<DepsgraphFromIDsRelationBuilder>(
106 for (
ID *
id : ids_) {
DepsgraphBuilderCache builder_cache_
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)
virtual void build_relations(DepsgraphRelationBuilder &relation_builder) override
FromIDsBuilderPipeline(::Depsgraph *graph, Span< ID * > ids)
virtual unique_ptr< DepsgraphRelationBuilder > construct_relation_builder() override
virtual unique_ptr< DepsgraphNodeBuilder > construct_node_builder() override
virtual void build_nodes(DepsgraphNodeBuilder &node_builder) override
DepsgraphFromCollectionIDsFilter filter_