[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25880] trunk/blender/source/blender/ editors/space_view3d: [#20522] alt+b in object mode has an offset depending on the selected object' s origin

Martin Poirier theeth at yahoo.com
Sun Jan 10 21:31:23 CET 2010


Revision: 25880
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25880
Author:   theeth
Date:     2010-01-10 21:31:23 +0100 (Sun, 10 Jan 2010)

Log Message:
-----------
[#20522] alt+b in object mode has an offset depending on the selected object's origin

View clipping doesn't need object matrix in view transformation (permit NULL object pointer to get global transformation).

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
    trunk/blender/source/blender/editors/space_view3d/view3d_select.c

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2010-01-10 20:23:59 UTC (rev 25879)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2010-01-10 20:31:23 UTC (rev 25880)
@@ -2075,7 +2075,7 @@
 	view3d_operator_needs_opengl(C);
 
 	view3d_set_viewcontext(C, &vc);
-	view3d_get_transformation(vc.ar, vc.rv3d, vc.obact, &mats);
+	view3d_get_transformation(vc.ar, vc.rv3d, NULL, &mats); /* NULL because we don't want it in object space */
 	view3d_calculate_clipping(rv3d->clipbb, rv3d->clip, &mats, &rect);
 
 	return OPERATOR_FINISHED;

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_select.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_select.c	2010-01-10 20:23:59 UTC (rev 25879)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_select.c	2010-01-10 20:31:23 UTC (rev 25880)
@@ -124,12 +124,19 @@
 	}
 }
 
+/*
+ * ob == NULL if you want global matrices
+ * */
 void view3d_get_transformation(ARegion *ar, RegionView3D *rv3d, Object *ob, bglMats *mats)
 {
 	float cpy[4][4];
 	int i, j;
 
-	mul_m4_m4m4(cpy, ob->obmat, rv3d->viewmat);
+	if (ob) {
+		mul_m4_m4m4(cpy, ob->obmat, rv3d->viewmat);
+	} else {
+		copy_m4_m4(cpy, rv3d->viewmat);
+	}
 
 	for(i = 0; i < 4; ++i) {
 		for(j = 0; j < 4; ++j) {





More information about the Bf-blender-cvs mailing list