Merge branch 'master' into blender2.8
[blender.git] / source / blender / depsgraph / intern / builder / deg_builder_relations.h
index de13ee191229b464745ece715f3f277f4ba589aa..30b3219f9890fb1286bc485f01e922357157a9e9 100644 (file)
@@ -56,6 +56,7 @@ struct ID;
 struct FCurve;
 struct Group;
 struct Key;
+struct LayerCollection;
 struct Main;
 struct Mask;
 struct Material;
@@ -67,10 +68,12 @@ struct Object;
 struct bPoseChannel;
 struct bConstraint;
 struct Scene;
+struct ViewLayer;
 struct Tex;
 struct World;
 struct EffectorWeights;
 struct ParticleSystem;
+struct ParticleSettings;
 
 struct PropertyRNA;
 
@@ -189,9 +192,10 @@ struct DepsgraphRelationBuilder
                                      const char *description,
                                      bool check_unique = false);
 
-       void build_scene(Scene *scene);
+       void build_view_layer(Scene *scene, ViewLayer *view_layer);
        void build_group(Object *object, Group *group);
-       void build_object(Object *object);
+       void build_object(Base *base, Object *object);
+       void build_object_flags(Base *base, Object *object);
        void build_object_data(Object *object);
        void build_object_parent(Object *object);
        void build_constraints(ID *id,
@@ -209,6 +213,7 @@ struct DepsgraphRelationBuilder
        void build_world(World *world);
        void build_rigidbody(Scene *scene);
        void build_particles(Object *object);
+       void build_particle_settings(ParticleSettings *part);
        void build_cloth(Object *object, ModifierData *md);
        void build_ik_pose(Object *object,
                           bPoseChannel *pchan,
@@ -233,12 +238,12 @@ struct DepsgraphRelationBuilder
        void build_cachefile(CacheFile *cache_file);
        void build_mask(Mask *mask);
        void build_movieclip(MovieClip *clip);
+       void build_lightprobe(Object *object);
 
        void add_collision_relations(const OperationKey &key,
                                     Scene *scene,
                                     Object *object,
                                     Group *group,
-                                    int layer,
                                     bool dupli,
                                     const char *name);
        void add_forcefield_relations(const OperationKey &key,
@@ -246,8 +251,24 @@ struct DepsgraphRelationBuilder
                                      Object *object,
                                      ParticleSystem *psys,
                                      EffectorWeights *eff,
-                                     bool add_absorption,
-                                     const char *name);
+                                     bool add_absorption, const char *name);
+
+       struct LayerCollectionState {
+               int index;
+               OperationKey init_key;
+               OperationKey done_key;
+               OperationKey prev_key;
+       };
+       void build_layer_collection(ID *owner_id,
+                                   LayerCollection *layer_collection,
+                                   LayerCollectionState *state);
+       void build_layer_collections(ID *owner_id,
+                                    ListBase *layer_collections,
+                                    LayerCollectionState *state);
+       void build_view_layer_collections(struct ID *owner_id, ViewLayer *view_layer);
+
+       void build_copy_on_write_relations();
+       void build_copy_on_write_relations(IDDepsNode *id_node);
 
        template <typename KeyType>
        OperationDepsNode *find_operation_node(const KeyType &key);