diff options
author | Joerg Mueller <nexyon@gmail.com> | 2011-07-12 17:09:22 +0400 |
---|---|---|
committer | Joerg Mueller <nexyon@gmail.com> | 2011-07-12 17:09:22 +0400 |
commit | d9cf98573050fa10f586ed121f514986e688e609 (patch) | |
tree | 6916742b8cb0b67387198592414d52860bf000cf /source/blender/editors | |
parent | 9132754dc1ed77429a6e870c479b69ac8829d845 (diff) | |
parent | b90535cc334bb8ae3a51f8023732b8c786019ac7 (diff) |
Merging trunk up to r38329.
Diffstat (limited to 'source/blender/editors')
4 files changed, 18 insertions, 3 deletions
diff --git a/source/blender/editors/armature/poseUtils.c b/source/blender/editors/armature/poseUtils.c index 0f001751a96..e1e346ab920 100644 --- a/source/blender/editors/armature/poseUtils.c +++ b/source/blender/editors/armature/poseUtils.c @@ -121,7 +121,7 @@ static void fcurves_to_pchan_links_get (ListBase *pfLinks, Object *ob, bAction * pfl->oldangle = pchan->rotAngle; /* make copy of custom properties */ - if (transFlags & ACT_TRANS_PROP) + if (pchan->prop && (transFlags & ACT_TRANS_PROP)) pfl->oldprops = IDP_CopyProperty(pchan->prop); } } diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index 285b08c521b..f21241b6e7a 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -1319,7 +1319,7 @@ void OBJECT_OT_make_links_scene(wmOperatorType *ot) /* identifiers */ ot->name= "Link Objects to Scene"; - ot->description = "Make linked data local to each object"; + ot->description = "Link selection to another scene"; ot->idname= "OBJECT_OT_make_links_scene"; /* api callbacks */ diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index aadb355f743..eeaf87757ce 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -468,8 +468,9 @@ void VIEW3D_OT_object_as_camera(wmOperatorType *ot) void ED_view3d_calc_clipping(BoundBox *bb, float planes[4][4], bglMats *mats, rcti *rect) { + float modelview[4][4]; double xs, ys, p[3]; - short val; + int val, flip_sign, a; /* near zero floating point values can give issues with gluUnProject in side view on some implementations */ @@ -493,11 +494,21 @@ void ED_view3d_calc_clipping(BoundBox *bb, float planes[4][4], bglMats *mats, rc VECCOPY(bb->vec[4+val], p); } + /* verify if we have negative scale. doing the transform before cross + product flips the sign of the vector compared to doing cross product + before transform then, so we correct for that. */ + for(a=0; a<16; a++) + ((float*)modelview)[a] = mats->modelview[a]; + flip_sign = is_negative_m4(modelview); + /* then plane equations */ for(val=0; val<4; val++) { normal_tri_v3(planes[val], bb->vec[val], bb->vec[val==3?0:val+1], bb->vec[val+4]); + if(flip_sign) + negate_v3(planes[val]); + planes[val][3]= - planes[val][0]*bb->vec[val][0] - planes[val][1]*bb->vec[val][1] - planes[val][2]*bb->vec[val][2]; diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 30010aad3d7..faf8c16f991 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -4988,6 +4988,10 @@ void special_aftertrans_update(bContext *C, TransInfo *t) where_is_pose(t->scene, pose_ob); } + /* set BONE_TRANSFORM flags for autokey, manipulator draw might have changed them */ + if (!cancelled && (t->mode != TFM_DUMMY)) + count_set_pose_transflags(&t->mode, t->around, ob); + /* if target-less IK grabbing, we calculate the pchan transforms and clear flag */ if (!cancelled && t->mode==TFM_TRANSLATION) targetless_ik= apply_targetless_ik(ob); |