32 class DepsgraphFromIDsFilter {
34 DepsgraphFromIDsFilter(Span<ID *> ids)
36 ids_.add_multiple(ids);
41 return ids_.contains(
id);
48 class DepsgraphFromIDsNodeBuilder :
public DepsgraphNodeBuilder {
50 DepsgraphFromIDsNodeBuilder(
Main *bmain,
52 DepsgraphBuilderCache *cache,
54 : DepsgraphNodeBuilder(bmain,
graph, cache),
filter_(ids)
58 bool need_pull_base_into_graph(
Base *base)
override
66 void build_object_proxy_group(
Object *
object,
bool is_visible)
override
81 class DepsgraphFromIDsRelationBuilder :
public DepsgraphRelationBuilder {
83 DepsgraphFromIDsRelationBuilder(
Main *bmain,
85 DepsgraphBuilderCache *cache,
87 : DepsgraphRelationBuilder(bmain,
graph, cache),
filter_(ids)
91 bool need_pull_base_into_graph(
Base *base)
override
99 void build_object_proxy_group(
Object *
object)
override
111 DepsgraphFromIDsFilter
filter_;
128 return std::make_unique<DepsgraphFromIDsRelationBuilder>(
135 for (
ID *
id : ids_) {
143 for (
ID *
id : ids_) {
struct Depsgraph Depsgraph
DepsgraphBuilderCache builder_cache_
virtual bool need_pull_base_into_graph(Base *base)
virtual void build_object_proxy_group(Object *object, bool is_object_visible)
virtual void build_view_layer(Scene *scene, ViewLayer *view_layer, eDepsNode_LinkedState_Type linked_state)
virtual void build_object_proxy_group(Object *object)
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
DepsgraphNodeBuilder * node_builder
DepsgraphFromIDsFilter filter_
struct Object * proxy_group