[Bf-blender-cvs] [2f2420709c9] blender2.8: Remove local view toggle operator

Luca Rood noreply at git.blender.org
Wed Apr 19 16:53:18 CEST 2017


Commit: 2f2420709c95c1af27967daa257553edf9096c7a
Author: Luca Rood
Date:   Wed Apr 19 14:27:21 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB2f2420709c95c1af27967daa257553edf9096c7a

Remove local view toggle operator

===================================================================

M	source/blender/editors/object/object_relations.c
M	source/blender/editors/space_view3d/view3d_intern.h
M	source/blender/editors/space_view3d/view3d_ops.c
M	source/blender/editors/space_view3d/view3d_view.c

===================================================================

diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c
index f1a6bca8217..7095d8406a0 100644
--- a/source/blender/editors/object/object_relations.c
+++ b/source/blender/editors/object/object_relations.c
@@ -1765,11 +1765,9 @@ static void new_id_matar(Main *bmain, Material **matar, const int totcol)
 
 static void single_obdata_users(Main *bmain, Scene *scene, const int flag)
 {
-	Object *ob;
 	Lamp *la;
 	Curve *cu;
 	/* Camera *cam; */
-	BaseLegacy *base;
 	Mesh *me;
 	Lattice *lat;
 	ID *id;
diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h
index 721215a1281..e97f186e4f1 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -235,7 +235,6 @@ void VIEW3D_OT_smoothview(struct wmOperatorType *ot);
 void VIEW3D_OT_camera_to_view(struct wmOperatorType *ot);
 void VIEW3D_OT_camera_to_view_selected(struct wmOperatorType *ot);
 void VIEW3D_OT_object_as_camera(struct wmOperatorType *ot);
-void VIEW3D_OT_localview(struct wmOperatorType *ot);
 void VIEW3D_OT_game_start(struct wmOperatorType *ot);
 
 
diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c
index e14a0c63ee4..f6abc40959b 100644
--- a/source/blender/editors/space_view3d/view3d_ops.c
+++ b/source/blender/editors/space_view3d/view3d_ops.c
@@ -200,7 +200,6 @@ void view3d_operatortypes(void)
 	WM_operatortype_append(VIEW3D_OT_camera_to_view);
 	WM_operatortype_append(VIEW3D_OT_camera_to_view_selected);
 	WM_operatortype_append(VIEW3D_OT_object_as_camera);
-	WM_operatortype_append(VIEW3D_OT_localview);
 	WM_operatortype_append(VIEW3D_OT_game_start);
 	WM_operatortype_append(VIEW3D_OT_fly);
 	WM_operatortype_append(VIEW3D_OT_walk);
@@ -354,8 +353,6 @@ void view3d_keymap(wmKeyConfig *keyconf)
 	kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
 	RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BOTTOM);
 	RNA_boolean_set(kmi->ptr, "align_active", true);
-
-	WM_keymap_add_item(keymap, "VIEW3D_OT_localview", PADSLASHKEY, KM_PRESS, 0, 0);
 	
 #ifdef WITH_INPUT_NDOF
 	/* note: positioned here so keymaps show keyboard keys if assigned */
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index e83927b074b..4cfb30a9dd7 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -1211,42 +1211,6 @@ finally:
 	return hits;
 }
 
-/* ********************** local view operator ******************** */
-
-static unsigned int free_localbit(Main *bmain)
-{
-	unsigned int lay;
-	ScrArea *sa;
-	bScreen *sc;
-	
-	lay = 0;
-	
-	/* sometimes we loose a localview: when an area is closed */
-	/* check all areas: which localviews are in use? */
-	for (sc = bmain->screen.first; sc; sc = sc->id.next) {
-		for (sa = sc->areabase.first; sa; sa = sa->next) {
-			SpaceLink *sl = sa->spacedata.first;
-			for (; sl; sl = sl->next) {
-				if (sl->spacetype == SPACE_VIEW3D) {
-					View3D *v3d = (View3D *) sl;
-					lay |= v3d->lay;
-				}
-			}
-		}
-	}
-	
-	if ((lay & 0x01000000) == 0) return 0x01000000;
-	if ((lay & 0x02000000) == 0) return 0x02000000;
-	if ((lay & 0x04000000) == 0) return 0x04000000;
-	if ((lay & 0x08000000) == 0) return 0x08000000;
-	if ((lay & 0x10000000) == 0) return 0x10000000;
-	if ((lay & 0x20000000) == 0) return 0x20000000;
-	if ((lay & 0x40000000) == 0) return 0x40000000;
-	if ((lay & 0x80000000) == 0) return 0x80000000;
-	
-	return 0;
-}
-
 int ED_view3d_scene_layer_set(int lay, const int *values, int *active)
 {
 	int i, tot = 0;
@@ -1285,270 +1249,6 @@ int ED_view3d_scene_layer_set(int lay, const int *values, int *active)
 	return lay;
 }
 
-static bool view3d_localview_init(
-        wmWindowManager *wm, wmWindow *win,
-        Main *bmain, Scene *scene, SceneLayer *sl, ScrArea *sa, const int smooth_viewtx,
-        ReportList *reports)
-{
-	View3D *v3d = sa->spacedata.first;
-	Base *base;
-	float min[3], max[3], box[3], mid[3];
-	float size = 0.0f;
-	unsigned int locallay;
-	bool ok = false;
-
-	if (v3d->localvd) {
-		return ok;
-	}
-
-	INIT_MINMAX(min, max);
-
-	locallay = free_localbit(bmain);
-
-	if (locallay == 0) {
-		BKE_report(reports, RPT_ERROR, "No more than 8 local views");
-		ok = false;
-	}
-	else {
-		if (scene->obedit) {
-			BKE_object_minmax(scene->obedit, min, max, false);
-			
-			ok = true;
-		
-			BASACT_NEW->lay |= locallay;
-			scene->obedit->lay = BASACT_NEW->lay;
-		}
-		else {
-			for (base = FIRSTBASE_NEW; base; base = base->next) {
-				if (TESTBASE_NEW(base)) {
-					BKE_object_minmax(base->object, min, max, false);
-					base->lay |= locallay;
-					base->object->lay = base->lay;
-					ok = true;
-				}
-			}
-		}
-
-		sub_v3_v3v3(box, max, min);
-		size = max_fff(box[0], box[1], box[2]);
-	}
-	
-	if (ok == true) {
-		ARegion *ar;
-		
-		v3d->localvd = MEM_mallocN(sizeof(View3D), "localview");
-		
-		memcpy(v3d->localvd, v3d, sizeof(View3D));
-
-		mid_v3_v3v3(mid, min, max);
-
-		copy_v3_v3(v3d->cursor, mid);
-
-		for (ar = sa->regionbase.first; ar; ar = ar->next) {
-			if (ar->regiontype == RGN_TYPE_WINDOW) {
-				RegionView3D *rv3d = ar->regiondata;
-				bool ok_dist = true;
-
-				/* new view values */
-				Object *camera_old = NULL;
-				float dist_new, ofs_new[3];
-
-				rv3d->localvd = MEM_mallocN(sizeof(RegionView3D), "localview region");
-				memcpy(rv3d->localvd, rv3d, sizeof(RegionView3D));
-
-				negate_v3_v3(ofs_new, mid);
-
-				if (rv3d->persp == RV3D_CAMOB) {
-					rv3d->persp = RV3D_PERSP;
-					camera_old = v3d->camera;
-				}
-
-				if (rv3d->persp == RV3D_ORTHO) {
-					if (size < 0.0001f) {
-						ok_dist = false;
-					}
-				}
-
-				if (ok_dist) {
-					dist_new = ED_view3d_radius_to_dist(v3d, ar, rv3d->persp, true, (size / 2) * VIEW3D_MARGIN);
-					if (rv3d->persp == RV3D_PERSP) {
-						/* don't zoom closer than the near clipping plane */
-						dist_new = max_ff(dist_new, v3d->near * 1.5f);
-					}
-				}
-
-				ED_view3d_smooth_view_ex(
-				        wm, win, sa, v3d, ar, smooth_viewtx,
-				            &(const V3D_SmoothParams) {
-				                .camera_old = camera_old,
-				                .ofs = ofs_new, .quat = rv3d->viewquat,
-				                .dist = ok_dist ? &dist_new : NULL, .lens = &v3d->lens});
-			}
-		}
-		
-		v3d->lay = locallay;
-	}
-	else {
-		/* clear flags */ 
-		for (base = FIRSTBASE_NEW; base; base = base->next) {
-			if (base->lay & locallay) {
-				base->lay -= locallay;
-				if (base->lay == 0) base->lay = v3d->layact;
-				if (base->object != scene->obedit) base->flag |= BASE_SELECTED;
-				base->object->lay = base->lay;
-			}
-		}
-	}
-
-	DAG_on_visible_update(bmain, false);
-
-	return ok;
-}
-
-static void restore_localviewdata(wmWindowManager *wm, wmWindow *win, Main *bmain, Scene *scene, ScrArea *sa, const int smooth_viewtx)
-{
-	const bool free = true;
-	ARegion *ar;
-	View3D *v3d = sa->spacedata.first;
-	Object *camera_old, *camera_new;
-	
-	if (v3d->localvd == NULL) return;
-	
-	camera_old = v3d->camera;
-	camera_new = v3d->localvd->camera;
-
-	v3d->near = v3d->localvd->near;
-	v3d->far = v3d->localvd->far;
-	v3d->lay = v3d->localvd->lay;
-	v3d->layact = v3d->localvd->layact;
-	v3d->drawtype = v3d->localvd->drawtype;
-	v3d->camera = v3d->localvd->camera;
-	
-	if (free) {
-		MEM_freeN(v3d->localvd);
-		v3d->localvd = NULL;
-	}
-	
-	for (ar = sa->regionbase.first; ar; ar = ar->next) {
-		if (ar->regiontype == RGN_TYPE_WINDOW) {
-			RegionView3D *rv3d = ar->regiondata;
-			
-			if (rv3d->localvd) {
-				Object *camera_old_rv3d, *camera_new_rv3d;
-
-				camera_old_rv3d = (rv3d->persp          == RV3D_CAMOB) ? camera_old : NULL;
-				camera_new_rv3d = (rv3d->localvd->persp == RV3D_CAMOB) ? camera_new : NULL;
-
-				rv3d->view = rv3d->localvd->view;
-				rv3d->persp = rv3d->localvd->persp;
-				rv3d->camzoom = rv3d->localvd->camzoom;
-
-				ED_view3d_smooth_view_ex(
-				        wm, win, sa,
-				        v3d, ar, smooth_viewtx,
-				        &(const V3D_SmoothParams) {
-				            .camera_old = camera_old_rv3d, .camera = camera_new_rv3d,
-				            .ofs = rv3d->localvd->ofs, .quat = rv3d->localvd->viewquat,
-				            .dist = &rv3d->localvd->dist});
-
-				if (free) {
-					MEM_freeN(rv3d->localvd);
-					rv3d->localvd = NULL;
-				}
-			}
-
-			ED_view3d_shade_update(bmain, scene, v3d, sa);
-		}
-	}
-}
-
-static bool view3d_localview_exit(
-        wmWindowManager *wm, wmWindow *win,
-        Main *bmain, Scene *scene, ScrArea *sa, const int smooth_viewtx)
-{
-	View3D *v3d = sa->spacedata.first;
-	struct BaseLegacy *base;
-	unsigned int locallay;
-	
-	if (v3d->localvd) {
-		
-		locallay = v3d->lay & 0xFF000000;
-
-		restore_localviewdata(wm, win, bmain, scene, sa, smooth_viewtx);
-
-		/* for when in other window the layers have changed */
-		if (v3d->scenelock) v3d->lay = scene->lay;
-		
-		for (base = FIRSTBASE; base; base = base->next) {
-			if (base->lay & locallay) {
-				base->lay -= locallay;
-				if (base->lay == 0) base->lay = v3d->layact;
-				if (base->object != scene->obedit) {
-					base->flag_legacy |= SELECT;
-					base->object->flag |= SELECT;
-				}
-				base->object->lay = base->lay;
-			}
-		}
-		
-		DAG_on_visible_update(bmain, false);
-
-		return true;
-	}
-	else {
-		return false;
-	}
-}
-
-static int localview_exec(bContext *C, wmOperator *op)
-{
-	const int smooth_viewtx = WM_operator_smooth_viewtx_get(op);
-	wmWindowManager *wm = CTX_wm_manager(C);
-	wmWindow *win = CTX_wm_window(C);
-	Main *bmain = CTX_data_main(C);
-	Scene *scene = CTX_data_scene(C);
-	SceneLayer *sl = CTX_data_scene_layer(C);
-	ScrArea *sa = CTX_wm_area(C);
-	View3D *v3d = CTX_wm_view3d(C);
-	bool changed;
-	
-	if (v3d->localvd) {
-		changed = view3d_localview_exit(wm, win, bmain, scene, sa, smooth_viewtx);
-	}
-	else {
-		changed = view3d_localview_init(wm, win, bmain, scene, sl, sa, smooth_viewtx, op->reports);
-	}
-
-	if (changed) {
-		DAG_id_type_tag(bmain, ID_OB);
-		ED_area_tag_redraw(sa);
-
-		/* unselected objects become selected when exiting */
-		if (v3d->localvd == NULL) {
-		

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list