Merge branch 'blender2.7'
[blender.git] / source / blender / depsgraph / DEG_depsgraph_build.h
index 93e9b5be2cccc53c29b7ce1727e6079cccceafd9..62315391e95c2c0c451ff634248e95e118d23e2b 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  *
  * The Original Code is Copyright (C) 2013 Blender Foundation.
  * All rights reserved.
- *
- * Original Author: Joshua Leung
- * Contributor(s): Lukas Toenne
- *
- * ***** END GPL LICENSE BLOCK *****
  */
 
-/** \file blender/depsgraph/DEG_depsgraph_build.h
- *  \ingroup depsgraph
+/** \file
+ * \ingroup depsgraph
  *
  * Public API for Depsgraph
  */
@@ -41,8 +34,10 @@ struct Depsgraph;
 /* ------------------------------------------------ */
 
 struct CacheFile;
-struct EffectorWeights;
 struct Collection;
+struct CustomData_MeshMasks;
+struct EffectorWeights;
+struct ID;
 struct Main;
 struct ModifierData;
 struct Object;
@@ -88,12 +83,10 @@ struct DepsNodeHandle;
 
 typedef enum eDepsSceneComponentType {
        /* Parameters Component - Default when nothing else fits
-        * (i.e. just SDNA property setting).
-        */
+        * (i.e. just SDNA property setting). */
        DEG_SCENE_COMP_PARAMETERS,
        /* Animation Component
-        * TODO(sergey): merge in with parameters?
-        */
+        * TODO(sergey): merge in with parameters?  */
        DEG_SCENE_COMP_ANIMATION,
        /* Sequencer Component (Scene Only). */
        DEG_SCENE_COMP_SEQUENCER,
@@ -101,17 +94,14 @@ typedef enum eDepsSceneComponentType {
 
 typedef enum eDepsObjectComponentType {
        /* Parameters Component - Default when nothing else fits
-        * (i.e. just SDNA property setting).
-        */
+        * (i.e. just SDNA property setting). */
        DEG_OB_COMP_PARAMETERS,
        /* Generic "Proxy-Inherit" Component.
-        * TODO(sergey): Also for instancing of subgraphs?
-        */
+        * TODO(sergey): Also for instancing of subgraphs? */
        DEG_OB_COMP_PROXY,
        /* Animation Component.
         *
-        * TODO(sergey): merge in with parameters?
-        */
+        * TODO(sergey): merge in with parameters? */
        DEG_OB_COMP_ANIMATION,
        /* Transform Component (Parenting/Constraints) */
        DEG_OB_COMP_TRANSFORM,
@@ -139,11 +129,6 @@ void DEG_add_object_relation(struct DepsNodeHandle *node_handle,
                              struct Object *object,
                              eDepsObjectComponentType component,
                              const char *description);
-void DEG_add_object_relation_with_customdata(struct DepsNodeHandle *node_handle,
-                                             struct Object *object,
-                                             eDepsObjectComponentType component,
-                                             uint64_t customdata_mask,
-                                             const char *description);
 void DEG_add_bone_relation(struct DepsNodeHandle *handle,
                            struct Object *object,
                            const char *bone_name,
@@ -153,16 +138,31 @@ void DEG_add_object_cache_relation(struct DepsNodeHandle *handle,
                                    struct CacheFile *cache_file,
                                    eDepsObjectComponentType component,
                                    const char *description);
+/* Adds relation from DEG_OPCODE_GENERIC_DATABLOCK_UPDATE of a given ID.
+ * Is used for such entities as textures and images. */
+void DEG_add_generic_id_relation(struct DepsNodeHandle *node_handle,
+                                 struct ID *id,
+                                 const char *description);
+
+/* Special function which is used from modifiers' updateDepsgraph() callback
+ * to indicate that the modifietr needs to know transformation of the object
+ * which that modifier belongs to.
+ * This function will take care of checking which operation is required to
+ * have transformation for the modifier, taking into account possible simulation
+ * solvers. */
+void DEG_add_modifier_to_transform_relation(
+        struct DepsNodeHandle *node_handle,
+        const char *description);
 
 /* Adds relations from the given component of a given object to the given node
- * handle AND the component to the point cache component of the node's ID.
- */
+ * handle AND the component to the point cache component of the node's ID. */
 void DEG_add_object_pointcache_relation(struct DepsNodeHandle *node_handle,
                                         struct Object *object,
                                         eDepsObjectComponentType component,
                                         const char *description);
 
 void DEG_add_special_eval_flag(struct DepsNodeHandle *handle, struct ID *id, uint32_t flag);
+void DEG_add_customdata_mask(struct DepsNodeHandle *handle, struct Object *object, const struct CustomData_MeshMasks *masks);
 
 struct ID *DEG_get_id_from_handle(struct DepsNodeHandle *node_handle);
 struct Depsgraph *DEG_get_graph_from_handle(struct DepsNodeHandle *node_handle);