When entering editmode on Armature, the Pose now defaults to a correct

restposition, also for deform and bone childs.
This commit is contained in:
Ton Roosendaal
2005-07-24 15:16:37 +00:00
parent 495bb4efff
commit aefd9e462f
3 changed files with 4 additions and 17 deletions

View File

@@ -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;

View File

@@ -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);
}
}

View File

@@ -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