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:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-02-07 17:29:58 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-02-07 17:29:58 +0400
commitf282f39f538af7338671abf687a034702e1aea4f (patch)
treeb196ca9981ed7f2f8ecc49b6313e7bac5cfaa5da /source/blender/blenkernel/intern
parentc4542acc8b690a4a3dc558f3c19d4a42f9353400 (diff)
Fix #30094: Subdivision Surfaces Modifier corrupts Copy Location
Issue was caused because of missed MDeformVert layer on subdivided cube. If regular object is constrained to mesh object, extra customdata mask is adding to such target. But armature bones are handling separately and there was no such thing happens. Ideally this code should be deduplicated to avoid such kind of issues, but better not to do it so close before release.
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r--source/blender/blenkernel/intern/depsgraph.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c
index e67056cdd9e..19fc75a88fe 100644
--- a/source/blender/blenkernel/intern/depsgraph.c
+++ b/source/blender/blenkernel/intern/depsgraph.c
@@ -398,8 +398,11 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Scene *scene, O
// fprintf(stderr,"armature %s target :%s \n", ob->id.name, target->id.name);
node3 = dag_get_node(dag, ct->tar);
- if (ct->subtarget[0])
+ if (ct->subtarget[0]) {
dag_add_relation(dag,node3,node, DAG_RL_OB_DATA|DAG_RL_DATA_DATA, cti->name);
+ if(ct->tar->type == OB_MESH)
+ node3->customdata_mask |= CD_MASK_MDEFORMVERT;
+ }
else if(ELEM3(con->type, CONSTRAINT_TYPE_FOLLOWPATH, CONSTRAINT_TYPE_CLAMPTO, CONSTRAINT_TYPE_SPLINEIK))
dag_add_relation(dag,node3,node, DAG_RL_DATA_DATA|DAG_RL_OB_DATA, cti->name);
else