add margin to view fitting view-all/local-view (wasn't obvious with the models I...
authorCampbell Barton <ideasman42@gmail.com>
Fri, 30 Nov 2012 06:55:36 +0000 (06:55 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 30 Nov 2012 06:55:36 +0000 (06:55 +0000)
release/scripts/templates/script_stub.py
source/blender/editors/include/ED_view3d.h
source/blender/editors/space_view3d/view3d_edit.c
source/blender/editors/space_view3d/view3d_view.c

index 80eca9663df255857c57cba88ca4236ae2d9c1f6..44c7b802e2ce22bffaa0e6e584303663277e0e0e 100644 (file)
@@ -9,6 +9,6 @@ filename = "my_script.py"
 
 filepath = os.path.join(os.path.dirname(bpy.data.filepath), filename)
 global_namespace = {"__file__": filepath, "__name__": "__main__"}
-file_handle = open(filepath, 'rb')
-exec(compile(file_handle.read(), filepath, 'exec'), global_namespace)
-file_handle.close()
+file = open(filepath, 'rb')
+exec(compile(file.read(), filepath, 'exec'), global_namespace)
+file.close()
index 269a932dcf50dea5a9ef816fc48583f11aab15e5..d5c9b9ef01a2f9cb3661d50a4aba32eeb9704871 100644 (file)
@@ -100,11 +100,6 @@ void  ED_view3d_depth_tag_update(struct RegionView3D *rv3d);
 /* Projection */
 #define IS_CLIPPED        12000
 
-/* TODO, these functions work quite differently, we should make them behave in a uniform way
- * otherwise we can't be sure bugs are not added when we need to move from short->float types for eg
- * - Campbell */
-
-
 /* return values for ED_view3d_project_...() */
 typedef enum {
        V3D_PROJ_RET_OK   = 0,
@@ -298,6 +293,7 @@ struct BGpic *ED_view3D_background_image_new(struct View3D *v3d);
 void ED_view3D_background_image_remove(struct View3D *v3d, struct BGpic *bgpic);
 void ED_view3D_background_image_clear(struct View3D *v3d);
 
+#define VIEW3D_MARGIN 1.4f
 float ED_view3d_offset_distance(float mat[4][4], float ofs[3]);
 float ED_view3d_grid_scale(struct Scene *scene, struct View3D *v3d, const char **grid_unit);
 
index 434d8ee338baa51159e8ad2e26808933d7cae090..d45013c40d92187d988acd566cddc1ed5df12e6c 100644 (file)
@@ -2238,7 +2238,7 @@ static void view3d_from_minmax(bContext *C, View3D *v3d, ARegion *ar,
                                lens = v3d->lens;
                                sensor_size = DEFAULT_SENSOR_WIDTH;
                        }
-                       size = ED_view3d_radius_to_persp_dist(focallength_to_fov(lens, sensor_size), size / 2.0f);
+                       size = ED_view3d_radius_to_persp_dist(focallength_to_fov(lens, sensor_size), size / 2.0f) * VIEW3D_MARGIN;
 
                        /* do not zoom closer than the near clipping plane */
                        size = max_ff(size, v3d->near * 1.5f);
@@ -2250,7 +2250,7 @@ static void view3d_from_minmax(bContext *C, View3D *v3d, ARegion *ar,
                        }
                        else {
                                /* adjust zoom so it looks nicer */
-                               size = ED_view3d_radius_to_ortho_dist(v3d->lens, size / 2.0f);
+                               size = ED_view3d_radius_to_ortho_dist(v3d->lens, size / 2.0f) * VIEW3D_MARGIN;
                        }
                }
        }
index c241f77806ef164bf22269d07d0cb8085c81d808..ef15c1e734e839c3505f8a5d80389cec45fb04a4 100644 (file)
@@ -1080,8 +1080,8 @@ static int view3d_localview_init(Main *bmain, Scene *scene, ScrArea *sa, ReportL
                size = max_ff(size, v3d->near * 1.5f);
 
                /* perspective size (we always switch out of camera view so no need to use its lens size) */
-               size_persp = ED_view3d_radius_to_persp_dist(focallength_to_fov(v3d->lens, DEFAULT_SENSOR_WIDTH), size / 2.0f);
-               size_ortho = ED_view3d_radius_to_ortho_dist(v3d->lens, size / 2.0f);
+               size_persp = ED_view3d_radius_to_persp_dist(focallength_to_fov(v3d->lens, DEFAULT_SENSOR_WIDTH), size / 2.0f) * VIEW3D_MARGIN;
+               size_ortho = ED_view3d_radius_to_ortho_dist(v3d->lens, size / 2.0f) * VIEW3D_MARGIN;
        }
        
        if (ok == TRUE) {