When entering editmode on Armature, the Pose now defaults to a correct
restposition, also for deform and bone childs.
This commit is contained in:
@@ -1069,7 +1069,6 @@ void where_is_pose (Object *ob)
|
||||
Bone *bone;
|
||||
bPoseChannel *pchan, *next;
|
||||
float imat[4][4];
|
||||
// float ctime= (float)G.scene->r.cfra; /* time only applies constraint location on curve path (now) */
|
||||
|
||||
arm = get_armature(ob);
|
||||
|
||||
@@ -1077,10 +1076,8 @@ void where_is_pose (Object *ob)
|
||||
if(ob->pose==NULL || (ob->pose->flag & POSE_RECALC))
|
||||
armature_rebuild_pose(ob, arm);
|
||||
|
||||
// printf("re-evaluate pose %s\n", ob->id.name);
|
||||
|
||||
/* In restposition we read the data from the bones */
|
||||
if(arm->flag & ARM_RESTPOS) {
|
||||
if(ob==G.obedit || (arm->flag & ARM_RESTPOS)) {
|
||||
|
||||
for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
|
||||
bone= pchan->bone;
|
||||
|
||||
@@ -281,11 +281,8 @@ void mesh_modifier(Object *ob, float (**vertexCos_r)[3])
|
||||
lattice_deform_verts(ob->parent, ob, vertexCos, me->totvert);
|
||||
}
|
||||
else if(ob->parent->type==OB_ARMATURE && ob->partype==PARSKEL) {
|
||||
// misleading making displists... very bad
|
||||
if (ob->parent!=G.obedit) {
|
||||
if (!vertexCos) vertexCos = mesh_getVertexCos(me, NULL);
|
||||
armature_deform_verts(ob->parent, ob, vertexCos, me->totvert);
|
||||
}
|
||||
if (!vertexCos) vertexCos = mesh_getVertexCos(me, NULL);
|
||||
armature_deform_verts(ob->parent, ob, vertexCos, me->totvert);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1435,15 +1435,8 @@ static void solve_parenting (Object *ob, Object *par, float slowmat[][4], int si
|
||||
break;
|
||||
|
||||
case PARSKEL:
|
||||
#if 0
|
||||
if (ob!=G.obedit)
|
||||
Mat4One(totmat);
|
||||
else
|
||||
Mat4CpyMat4(totmat, par->obmat);
|
||||
Mat4CpyMat4(totmat, par->obmat);
|
||||
break;
|
||||
#else
|
||||
Mat4CpyMat4(totmat, par->obmat);
|
||||
#endif
|
||||
}
|
||||
|
||||
// total
|
||||
|
||||
Reference in New Issue
Block a user