Two orange reports;

- Copy Location Constraint didn't update Object when it was copying from a
  Bone
- Deleting bone in editmode, and connecting bones crashed due to evaluation
  of deformation code (only allowed for pose).
This commit is contained in:
Ton Roosendaal
2005-11-14 19:57:51 +00:00
parent c21eb9322f
commit 46f2d85374
2 changed files with 11 additions and 3 deletions

View File

@@ -669,6 +669,8 @@ void armature_deform_verts(Object *armOb, Object *target, float (*vertexCos)[3],
int numGroups= 0; /* safety for vertexgroup index overflow too */
int i;
if(armOb==G.obedit) return;
Mat4Invert(obinv, target->obmat);
Mat4CpyMat4(premat, target->obmat);
Mat4MulMat4(postmat, armOb->obmat, obinv);

View File

@@ -495,11 +495,17 @@ struct DagForest *build_dag(struct Scene *sce, short mask)
for (con = ob->constraints.first; con; con=con->next){
if (constraint_has_target(con)) {
char *str;
node2 = dag_get_node(dag, get_constraint_target(con, &str));
Object *obt= get_constraint_target(con, &str);
node2 = dag_get_node(dag, obt);
if(con->type==CONSTRAINT_TYPE_FOLLOWPATH)
dag_add_relation(dag, node2, node, DAG_RL_DATA_OB|DAG_RL_OB_OB);
else
dag_add_relation(dag, node2, node, DAG_RL_OB_OB);
else {
if(obt->type==OB_ARMATURE && str[0])
dag_add_relation(dag, node2, node, DAG_RL_DATA_OB|DAG_RL_OB_OB);
else
dag_add_relation(dag, node2, node, DAG_RL_OB_OB);
}
addtoroot = 0;
}
}