16 class DepsgraphFromIDsFilter {
18 DepsgraphFromIDsFilter(Span<ID *> ids)
20 ids_.add_multiple(ids);
25 return ids_.contains(
id);
32 class DepsgraphFromIDsNodeBuilder :
public DepsgraphNodeBuilder {
34 DepsgraphFromIDsNodeBuilder(
Main *bmain,
36 DepsgraphBuilderCache *cache,
38 : DepsgraphNodeBuilder(bmain,
graph, cache),
filter_(ids)
42 bool need_pull_base_into_graph(
const Base *base)
override
54 class DepsgraphFromIDsRelationBuilder :
public DepsgraphRelationBuilder {
56 DepsgraphFromIDsRelationBuilder(
Main *bmain,
58 DepsgraphBuilderCache *cache,
60 : DepsgraphRelationBuilder(bmain,
graph, cache),
filter_(ids)
64 bool need_pull_base_into_graph(
const Base *base)
override
90 return std::make_unique<DepsgraphFromIDsRelationBuilder>(
105 for (
ID *
id : ids_) {
struct Depsgraph Depsgraph
DepsgraphBuilderCache builder_cache_
virtual bool need_pull_base_into_graph(const Base *base)
virtual void build_id(ID *id)
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
bool contains(const void *owner, const blender::bke::AttributeIDRef &attribute_id)
DepsgraphFromIDsFilter filter_