diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-02-07 17:29:58 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-02-07 17:29:58 +0400 |
commit | f282f39f538af7338671abf687a034702e1aea4f (patch) | |
tree | b196ca9981ed7f2f8ecc49b6313e7bac5cfaa5da /source/blender/blenkernel/intern | |
parent | c4542acc8b690a4a3dc558f3c19d4a42f9353400 (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.c | 5 |
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 |