Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Poirier <theeth@yahoo.com>2010-01-10 23:31:23 +0300
committerMartin Poirier <theeth@yahoo.com>2010-01-10 23:31:23 +0300
commit0f4741050963e5f2928fc537818890de1a206525 (patch)
tree0b972defc3a7808300d7d2c187a89b87749834ab
parent0185e248619b883aa818d136ee1b8bd4bfa9f8ef (diff)
[#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).
-rw-r--r--source/blender/editors/space_view3d/view3d_edit.c2
-rw-r--r--source/blender/editors/space_view3d/view3d_select.c9
2 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c
index 74362d29e40..1e23d27fe77 100644
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@ -2075,7 +2075,7 @@ static int view3d_clipping_exec(bContext *C, wmOperator *op)
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;
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c
index 0ed7f4c0d0a..331d3c4fefe 100644
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.c
@@ -124,12 +124,19 @@ void view3d_get_view_aligned_coordinate(ViewContext *vc, float *fp, short mval[2
}
}
+/*
+ * 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) {