Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2018-06-25 17:04:56 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-06-25 18:15:07 +0300
commit2c9b32949bc00e73603bcabadb74e5b3176a161a (patch)
treef6bb1ee5b514cce92db337c3116ac967821a4c65 /source/blender/depsgraph/DEG_depsgraph_physics.h
parent26251282e093d4c0d04c4c667b0b32ad66d329b2 (diff)
Cleanup: refactor depsgraph physics API functions.
Diffstat (limited to 'source/blender/depsgraph/DEG_depsgraph_physics.h')
-rw-r--r--source/blender/depsgraph/DEG_depsgraph_physics.h34
1 files changed, 31 insertions, 3 deletions
diff --git a/source/blender/depsgraph/DEG_depsgraph_physics.h b/source/blender/depsgraph/DEG_depsgraph_physics.h
index c90f66838cc..fd35a7fb2c0 100644
--- a/source/blender/depsgraph/DEG_depsgraph_physics.h
+++ b/source/blender/depsgraph/DEG_depsgraph_physics.h
@@ -34,21 +34,49 @@
struct Colllection;
struct Depsgraph;
+struct DepsNodeHandle;
+struct EffectorWeights;
struct ListBase;
+struct Object;
#ifdef __cplusplus
extern "C" {
#endif
+typedef enum ePhysicsRelationType {
+ DEG_PHYSICS_EFFECTOR = 0,
+ DEG_PHYSICS_COLLISION = 1,
+ DEG_PHYSICS_SMOKE_COLLISION = 2,
+ DEG_PHYSICS_DYNAMIC_BRUSH = 3,
+ DEG_PHYSICS_RELATIONS_NUM = 4
+} ePhysicsRelationType;
+
/* Get collision/effector relations from collection or entire scene. These
* created during depsgraph relations building and should only be accessed
* during evaluation. */
struct ListBase *DEG_get_effector_relations(const struct Depsgraph *depsgraph,
struct Collection *collection);
struct ListBase *DEG_get_collision_relations(const struct Depsgraph *depsgraph,
- struct Collection *collection);
-struct ListBase *DEG_get_smoke_collision_relations(const struct Depsgraph *depsgraph,
- struct Collection *collection);
+ struct Collection *collection,
+ unsigned int modifier_type);
+
+
+/* Build collision/effector relations for depsgraph. */
+typedef bool (*DEG_CollobjFilterFunction)(struct Object *obj,
+ struct ModifierData *md);
+
+void DEG_add_collision_relations(struct DepsNodeHandle *handle,
+ struct Object *object,
+ struct Collection *collection,
+ unsigned int modifier_type,
+ DEG_CollobjFilterFunction fn,
+ const char *name);
+void DEG_add_forcefield_relations(struct DepsNodeHandle *handle,
+ struct Object *object,
+ struct EffectorWeights *eff,
+ bool add_absorption,
+ int skip_forcefield,
+ const char *name);
#ifdef __cplusplus
} /* extern "C" */