add back view 1:1 operator from 2.4x (Shift+PadEnter)
authorCampbell Barton <ideasman42@gmail.com>
Wed, 23 Feb 2011 06:48:47 +0000 (06:48 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 23 Feb 2011 06:48:47 +0000 (06:48 +0000)
release/scripts/ui/space_view3d.py
source/blender/editors/object/object_constraint.c
source/blender/editors/space_view3d/view3d_draw.c
source/blender/editors/space_view3d/view3d_edit.c
source/blender/editors/space_view3d/view3d_intern.h
source/blender/editors/space_view3d/view3d_ops.c

index 69dfb7c99a957c84e26a9162e23a2126c853cec0..730c442ad25aaa355d88ded154e57ecbb526104b 100644 (file)
@@ -327,6 +327,7 @@ class VIEW3D_MT_view_navigation(bpy.types.Menu):
 
         layout.operator("view3d.zoom", text="Zoom In").delta = 1
         layout.operator("view3d.zoom", text="Zoom Out").delta = -1
+        layout.operator("view3d.zoom_camera_1_to_1", text="Zoom Camera 1:1")
 
         layout.separator()
 
index 2358df3780639cef6036902c28103cddbb9e4bf7..1e01ff8e621e181b34dc568fff10816c1e4635a9 100644 (file)
@@ -198,6 +198,7 @@ static char *buildmenu_pyconstraints (Text *con_text, int *pyconindex)
 }
 #endif /* WITH_PYTHON */
 
+#if 0 // UNUSED, until pyconstraints are added back.
 /* this callback gets called when the 'refresh' button of a pyconstraint gets pressed */
 static void update_pyconstraint_cb (void *arg1, void *arg2)
 {
@@ -211,6 +212,7 @@ static void update_pyconstraint_cb (void *arg1, void *arg2)
                BPY_pyconstraint_update(owner, con);
 #endif
 }
+#endif // UNUSED
 
 /* helper function for add_constriant - sets the last target for the active constraint */
 static void set_constraint_nth_target (bConstraint *con, Object *target, const char subtarget[], int index)
index 006605b08f9dffced9cb41a60a0405f9271ef4c4..cb31dc7160c03b73e3acb595bf9d42f840843422 100644 (file)
@@ -850,7 +850,7 @@ static void draw_selected_name(Scene *scene, Object *ob, View3D *v3d)
        BLF_draw_default(offset,  10, 0.0f, info, sizeof(info)-1);
 }
 
-static void view3d_get_viewborder_size(Scene *scene, ARegion *ar, float size_r[2])
+void view3d_viewborder_size_get(Scene *scene, ARegion *ar, float size_r[2])
 {
        float winmax= MAX2(ar->winx, ar->winy);
        float aspect= (scene->r.xsch*scene->r.xasp) / (scene->r.ysch*scene->r.yasp);
@@ -869,7 +869,7 @@ void view3d_calc_camera_border(Scene *scene, ARegion *ar, RegionView3D *rv3d, Vi
        float zoomfac, size[2];
        float dx= 0.0f, dy= 0.0f;
        
-       view3d_get_viewborder_size(scene, ar, size);
+       view3d_viewborder_size_get(scene, ar, size);
        
        if (rv3d == NULL)
                rv3d = ar->regiondata;
@@ -917,19 +917,6 @@ void view3d_calc_camera_border(Scene *scene, ARegion *ar, RegionView3D *rv3d, Vi
        }
 }
 
-/* sets the view to 1:1 camera/render-pixel */
-static void view3d_set_1_to_1_viewborder(Scene *scene, ARegion *ar)
-{
-       RegionView3D *rv3d= ar->regiondata;
-       float size[2];
-       int im_width= (scene->r.size*scene->r.xsch)/100;
-       
-       view3d_get_viewborder_size(scene, ar, size);
-       
-       rv3d->camzoom= (sqrt(4.0*im_width/size[0]) - M_SQRT2)*50.0;
-       rv3d->camzoom= CLAMPIS(rv3d->camzoom, RV3D_CAMZOOM_MIN, RV3D_CAMZOOM_MAX);
-}
-
 static void drawviewborder(Scene *scene, ARegion *ar, View3D *v3d)
 {
        float fac, a;
index 7842707d7e8025377fe257de0a484ade2b8e2109..9b26cae434d453661257606a5f044835b2f83cea 100644 (file)
@@ -1843,6 +1843,47 @@ void VIEW3D_OT_zoom_border(wmOperatorType *ot)
        RNA_def_int(ot->srna, "ymax", 0, INT_MIN, INT_MAX, "Y Max", "", INT_MIN, INT_MAX);
 
 }
+
+/* sets the view to 1:1 camera/render-pixel */
+static void view3d_set_1_to_1_viewborder(Scene *scene, ARegion *ar)
+{
+       RegionView3D *rv3d= ar->regiondata;
+       float size[2];
+       int im_width= (scene->r.size*scene->r.xsch)/100;
+       
+       view3d_viewborder_size_get(scene, ar, size);
+       
+       rv3d->camzoom= (sqrt(4.0*im_width/size[0]) - M_SQRT2)*50.0;
+       rv3d->camzoom= CLAMPIS(rv3d->camzoom, RV3D_CAMZOOM_MIN, RV3D_CAMZOOM_MAX);
+}
+
+static int view3d_zoom_1_to_1_camera_exec(bContext *C, wmOperator *UNUSED(op))
+{
+       Scene *scene= CTX_data_scene(C);
+       ARegion *ar= CTX_wm_region(C);
+
+       view3d_set_1_to_1_viewborder(scene, ar);
+
+       WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, CTX_wm_view3d(C));
+
+       return OPERATOR_FINISHED;
+}
+
+void VIEW3D_OT_zoom_camera_1_to_1(wmOperatorType *ot)
+{
+       /* identifiers */
+       ot->name= "Zoom Camera 1:1";
+       ot->description = "Match the camera to 1:1 to the render output";
+       ot->idname= "VIEW3D_OT_zoom_camera_1_to_1";
+
+       /* api callbacks */
+       ot->exec= view3d_zoom_1_to_1_camera_exec;
+       ot->poll= view3d_camera_active_poll;
+
+       /* flags */
+       ot->flag= 0;
+}
+
 /* ********************* Changing view operator ****************** */
 
 static EnumPropertyItem prop_view_items[] = {
index b7efa7fced7b163299511f942c84bcff6315bc06..8b23955dcc7c90ad36d2e8571b4391e5a807722b 100644 (file)
@@ -63,6 +63,7 @@ void view3d_operatortypes(void);
 
 /* view3d_edit.c */
 void VIEW3D_OT_zoom(struct wmOperatorType *ot);
+void VIEW3D_OT_zoom_camera_1_to_1(struct wmOperatorType *ot);
 void VIEW3D_OT_move(struct wmOperatorType *ot);
 void VIEW3D_OT_rotate(struct wmOperatorType *ot);
 void VIEW3D_OT_view_all(struct wmOperatorType *ot);
@@ -126,6 +127,7 @@ void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d);
 void view3d_clr_clipping(void);
 void view3d_set_clipping(RegionView3D *rv3d);
 void add_view3d_after(ListBase *lb, Base *base, int flag);
+void view3d_viewborder_size_get(struct Scene *scene, struct ARegion *ar, float size_r[2]);
 
 void circf(float x, float y, float rad);
 void circ(float x, float y, float rad);
index cb6eee26df50a68360ffab7fecdc7b815f5db1e4..f38dac77df1a8b2cacd0ef77d3a9e8a72ff12149 100644 (file)
@@ -57,6 +57,7 @@ void view3d_operatortypes(void)
        WM_operatortype_append(VIEW3D_OT_rotate);
        WM_operatortype_append(VIEW3D_OT_move);
        WM_operatortype_append(VIEW3D_OT_zoom);
+       WM_operatortype_append(VIEW3D_OT_zoom_camera_1_to_1);
        WM_operatortype_append(VIEW3D_OT_view_all);
        WM_operatortype_append(VIEW3D_OT_viewnumpad);
        WM_operatortype_append(VIEW3D_OT_view_orbit);
@@ -147,6 +148,8 @@ void view3d_keymap(wmKeyConfig *keyconf)
        RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", WHEELINMOUSE, KM_PRESS, 0, 0)->ptr, "delta", 1);
        RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", WHEELOUTMOUSE, KM_PRESS, 0, 0)->ptr, "delta", -1);
 
+       WM_keymap_add_item(keymap, "VIEW3D_OT_zoom_camera_1_to_1", PADENTER, KM_PRESS, KM_SHIFT, 0);
+
        WM_keymap_add_item(keymap, "VIEW3D_OT_view_center_camera", HOMEKEY, KM_PRESS, 0, 0); /* only with camera view */
        RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", HOMEKEY, KM_PRESS, 0, 0)->ptr, "center", 0); /* only without camera view */
        RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", CKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "center", 1);