[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55990] trunk/blender/source/blender/ editors/space_view3d/view3d_fly.c: Fix #34961: camera fly mode would reset camera scale.

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Apr 12 16:25:08 CEST 2013


Revision: 55990
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55990
Author:   blendix
Date:     2013-04-12 14:25:08 +0000 (Fri, 12 Apr 2013)
Log Message:
-----------
Fix #34961: camera fly mode would reset camera scale.

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

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_fly.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_fly.c	2013-04-12 13:01:50 UTC (rev 55989)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_fly.c	2013-04-12 14:25:08 UTC (rev 55990)
@@ -735,12 +735,17 @@
 		float prev_view_imat[4][4];
 		float diff_mat[4][4];
 		float parent_mat[4][4];
+		float size_mat[4][4];
 
 		ED_view3d_to_m4(prev_view_mat, fly->rv3d->ofs, fly->rv3d->viewquat, fly->rv3d->dist);
 		invert_m4_m4(prev_view_imat, prev_view_mat);
 		ED_view3d_to_m4(view_mat, rv3d->ofs, rv3d->viewquat, rv3d->dist);
 		mult_m4_m4m4(diff_mat, view_mat, prev_view_imat);
 		mult_m4_m4m4(parent_mat, diff_mat, fly->root_parent->obmat);
+
+		size_to_mat4(size_mat, fly->root_parent->size);
+		mult_m4_m4m4(parent_mat, parent_mat, size_mat);
+
 		BKE_object_apply_mat4(fly->root_parent, parent_mat, true, false);
 
 		// BKE_object_where_is_calc(scene, fly->root_parent);
@@ -755,8 +760,14 @@
 	}
 	else {
 		float view_mat[4][4];
+		float size_mat[4][4];
+
 		ED_view3d_to_m4(view_mat, rv3d->ofs, rv3d->viewquat, rv3d->dist);
+		size_to_mat4(size_mat, v3d->camera->size);
+		mult_m4_m4m4(view_mat, view_mat, size_mat);
+
 		BKE_object_apply_mat4(v3d->camera, view_mat, true, false);
+
 		id_key = &v3d->camera->id;
 	}
 




More information about the Bf-blender-cvs mailing list