From 9592cade86b8ca15b72584f038508278434f8d89 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Thu, 24 Jan 2013 11:21:40 +0000 Subject: Armature rigging: Added more clear warning print for cases when a Proxy cannot be resolved. --- source/blender/blenkernel/BKE_action.h | 2 +- source/blender/blenkernel/intern/action.c | 9 +++++---- source/blender/blenkernel/intern/object.c | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) (limited to 'source') diff --git a/source/blender/blenkernel/BKE_action.h b/source/blender/blenkernel/BKE_action.h index 2d7030b2d42..2d20672a015 100644 --- a/source/blender/blenkernel/BKE_action.h +++ b/source/blender/blenkernel/BKE_action.h @@ -220,7 +220,7 @@ void BKE_pose_remove_group(struct Object *ob); void what_does_obaction(struct Object *ob, struct Object *workob, struct bPose *pose, struct bAction *act, char groupname[], float cframe); /* for proxy */ -void BKE_pose_copy_result(struct bPose *to, struct bPose *from); +int BKE_pose_copy_result(struct bPose *to, struct bPose *from); /* clear all transforms */ void BKE_pose_rest(struct bPose *pose); diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index 63e12dfb99d..1aceca0bbd5 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -1118,18 +1118,18 @@ void BKE_pose_rest(bPose *pose) } /* both poses should be in sync */ -void BKE_pose_copy_result(bPose *to, bPose *from) +int BKE_pose_copy_result(bPose *to, bPose *from) { bPoseChannel *pchanto, *pchanfrom; if (to == NULL || from == NULL) { - printf("pose result copy error to:%p from:%p\n", (void *)to, (void *)from); /* debug temp */ - return; + printf("Pose copy error, pose to:%p from:%p\n", (void *)to, (void *)from); /* debug temp */ + return 0; } if (to == from) { printf("BKE_pose_copy_result source and target are the same\n"); - return; + return 0; } @@ -1153,6 +1153,7 @@ void BKE_pose_copy_result(bPose *to, bPose *from) pchanto->protectflag = pchanfrom->protectflag; } } + return 1; } /* For the calculation of the effects of an Action at the given frame on an object diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 0c1a23bf41d..555fa0791fd 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -2711,8 +2711,8 @@ void BKE_object_handle_update(Scene *scene, Object *ob) case OB_ARMATURE: if (ob->id.lib && ob->proxy_from) { - // printf("pose proxy copy, lib ob %s proxy %s\n", ob->id.name, ob->proxy_from->id.name); - BKE_pose_copy_result(ob->pose, ob->proxy_from->pose); + if (0 == BKE_pose_copy_result(ob->pose, ob->proxy_from->pose)) + printf("Proxy copy error, lib Object: %s proxy Object: %s\n", ob->id.name+2, ob->proxy_from->id.name+2); } else { BKE_pose_where_is(scene, ob); -- cgit v1.2.3