Blender  V3.3
pipeline_from_ids.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2020 Blender Foundation. All rights reserved. */
3 
8 #pragma once
9 
10 #include "pipeline.h"
11 
12 namespace blender::deg {
13 
14 /* Optimized builders for dependency graph built from a given set of IDs.
15  *
16  * General notes:
17  *
18  * - We pull in all bases if their objects are in the set of IDs. This allows to have proper
19  * visibility and other flags assigned to the objects.
20  * All other bases (the ones which points to object which is outside of the set of IDs) are
21  * completely ignored.
22  */
23 
25  public:
27 
28  protected:
29  virtual unique_ptr<DepsgraphNodeBuilder> construct_node_builder() override;
30  virtual unique_ptr<DepsgraphRelationBuilder> construct_relation_builder() override;
31 
32  virtual void build_nodes(DepsgraphNodeBuilder &node_builder) override;
33  virtual void build_relations(DepsgraphRelationBuilder &relation_builder) override;
34 
35  private:
36  Span<ID *> ids_;
37 };
38 
39 } // namespace blender::deg
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
Depsgraph * graph