/*
- * ***** 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
*/
/* ------------------------------------------------ */
struct CacheFile;
-struct EffectorWeights;
struct Collection;
+struct CustomData_MeshMasks;
+struct EffectorWeights;
+struct ID;
struct Main;
struct ModifierData;
struct Object;
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,
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,
/* Bone Component - Child/Subcomponent of Pose */
DEG_OB_COMP_BONE,
- /* Particle Systems Component */
- DEG_OB_COMP_EVAL_PARTICLES,
/* Material Shading Component */
DEG_OB_COMP_SHADING,
/* Cache Component */
DEG_OB_COMP_CACHE,
} eDepsObjectComponentType;
-void DEG_add_scene_relation(struct DepsNodeHandle *node,
+void DEG_add_scene_relation(struct DepsNodeHandle *node_handle,
struct Scene *scene,
eDepsSceneComponentType component,
const char *description);
-void DEG_add_object_relation(struct DepsNodeHandle *node,
+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,
- 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,
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. */
+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 Depsgraph *DEG_get_graph_from_handle(struct DepsNodeHandle *handle);
+struct ID *DEG_get_id_from_handle(struct DepsNodeHandle *node_handle);
+struct Depsgraph *DEG_get_graph_from_handle(struct DepsNodeHandle *node_handle);
/* ************************************************ */