From 9b1e70140d07abd6fc0a5466a39eef355da66835 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 30 Apr 2011 03:36:59 +0000 Subject: fix for minor glitch when setting the camera in local view (camera could try to smooth view into its self). --- source/blender/editors/space_view3d/view3d_view.c | 2 +- source/blender/makesdna/DNA_scene_types.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c index 15f6fae8c71..8a975eec40f 100644 --- a/source/blender/editors/space_view3d/view3d_view.c +++ b/source/blender/editors/space_view3d/view3d_view.c @@ -472,7 +472,7 @@ static int view3d_setobjectascamera_exec(bContext *C, wmOperator *UNUSED(op)) Object *ob = CTX_data_active_object(C); if(ob) { - Object *camera_old= (rv3d->persp == RV3D_CAMOB && scene->camera) ? scene->camera : NULL; + Object *camera_old= (rv3d->persp == RV3D_CAMOB) ? V3D_CAMERA_SCENE(scene, v3d) : NULL; rv3d->persp= RV3D_CAMOB; v3d->camera= ob; if(v3d->scenelock) diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index b1586068220..b3d66e61f3d 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1053,6 +1053,9 @@ typedef struct Scene { #define BASACT (scene->basact) #define OBACT (BASACT? BASACT->object: NULL) +#define V3D_CAMERA_LOCAL(v3d) ((!(v3d)->scenelock && (v3d)->camera) ? (v3d)->camera : NULL) +#define V3D_CAMERA_SCENE(scene, v3d) ((!(v3d)->scenelock && (v3d)->camera) ? (v3d)->camera : (scene)->camera) + #define ID_NEW(a) if( (a) && (a)->id.newid ) (a)= (void *)(a)->id.newid #define ID_NEW_US(a) if( (a)->id.newid) {(a)= (void *)(a)->id.newid; (a)->id.us++;} #define ID_NEW_US2(a) if( ((ID *)a)->newid) {(a)= ((ID *)a)->newid; ((ID *)a)->us++;} -- cgit v1.2.3