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
path: root/source
diff options
context:
space:
mode:
authorDaniel Genrich <daniel.genrich@gmx.net>2012-07-04 20:55:17 +0400
committerDaniel Genrich <daniel.genrich@gmx.net>2012-07-04 20:55:17 +0400
commit958cf139f6587df631944f6ec0fcb4111c7e58fa (patch)
tree880570727330df2b02e90416541754a793ec193c /source
parent6829f613c27012f7095817b2b7464f4d72d8927b (diff)
Bugfix Smoke / DynamicPaint: Missing update call from depsgraph was missing when force fields were used.
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/BKE_modifier.h1
-rw-r--r--source/blender/blenkernel/intern/depsgraph.c6
-rw-r--r--source/blender/blenkernel/intern/modifier.c7
3 files changed, 13 insertions, 1 deletions
diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h
index 551a31509a3..3b675f3b620 100644
--- a/source/blender/blenkernel/BKE_modifier.h
+++ b/source/blender/blenkernel/BKE_modifier.h
@@ -345,6 +345,7 @@ void modifiers_clearErrors(struct Object *ob);
int modifiers_getCageIndex(struct Scene *scene, struct Object *ob,
int *lastPossibleCageIndex_r, int virtual_);
+int modifiers_isModifierEnabled(struct Object *ob, int modifierType);
int modifiers_isSoftbodyEnabled(struct Object *ob);
int modifiers_isClothEnabled(struct Object *ob);
int modifiers_isParticleEnabled(struct Object *ob);
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
index a1553a24ad2..2faa882e3ea 100644
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ b/source/blender/blenkernel/intern/depsgraph.c
@@ -559,7 +559,11 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O
/* softbody collision */
if ((ob->type == OB_MESH) || (ob->type == OB_CURVE) || (ob->type == OB_LATTICE)) {
- if (modifiers_isSoftbodyEnabled(ob) || modifiers_isClothEnabled(ob) || ob->particlesystem.first)
+ if (modifiers_isModifierEnabled(ob, eModifierType_Softbody)
+ || modifiers_isModifierEnabled(ob, eModifierType_Cloth)
+ || modifiers_isModifierEnabled(ob, eModifierType_Smoke)
+ || modifiers_isModifierEnabled(ob, eModifierType_DynamicPaint)
+ || ob->particlesystem.first)
dag_add_collision_field_relation(dag, scene, ob, node); /* TODO: use effectorweight->group */
}
diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c
index b4c30203000..65538e5bea2 100644
--- a/source/blender/blenkernel/intern/modifier.c
+++ b/source/blender/blenkernel/intern/modifier.c
@@ -331,6 +331,13 @@ int modifiers_isClothEnabled(Object *ob)
return (md && md->mode & (eModifierMode_Realtime | eModifierMode_Render));
}
+int modifiers_isModifierEnabled(Object *ob, int modifierType)
+{
+ ModifierData *md = modifiers_findByType(ob, modifierType);
+
+ return (md && md->mode & (eModifierMode_Realtime | eModifierMode_Render));
+}
+
int modifiers_isParticleEnabled(Object *ob)
{
ModifierData *md = modifiers_findByType(ob, eModifierType_ParticleSystem);