Revision: 24792
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24792
Author:   aligorith
Date:     2009-11-23 00:11:32 +0100 (Mon, 23 Nov 2009)

Log Message:
-----------
Bugfixes:

* Restored Center View to 3D Cursor. For now, I've mapped this to QKEY since 
all other nice combinations of CKEY have been taken now.

* Fixed bug introduced in commit last night where parenting lattice to 
armatures with deforms would no longer work.

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/space_view3d.py
    trunk/blender/source/blender/editors/object/object_relations.c
    trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
    trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
    trunk/blender/source/blender/editors/space_view3d/view3d_ops.c
    trunk/blender/source/blender/editors/space_view3d/view3d_view.c

Modified: trunk/blender/release/scripts/ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/ui/space_view3d.py    2009-11-22 22:42:57 UTC 
(rev 24791)
+++ trunk/blender/release/scripts/ui/space_view3d.py    2009-11-22 23:11:32 UTC 
(rev 24792)
@@ -266,6 +266,7 @@
         layout.item_booleanO("view3d.view_all", "center", True, text="Center 
Cursor and View All")
         layout.itemO("view3d.camera_to_view", text="Align Active Camera to 
View")
         layout.itemO("view3d.view_center")
+        layout.itemO("view3d.view_center_cursor")
 
 
 class VIEW3D_MT_view_align_selected(bpy.types.Menu):

Modified: trunk/blender/source/blender/editors/object/object_relations.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_relations.c      
2009-11-22 22:42:57 UTC (rev 24791)
+++ trunk/blender/source/blender/editors/object/object_relations.c      
2009-11-22 23:11:32 UTC (rev 24792)
@@ -653,8 +653,8 @@
                                        //ob->partype= PARSKEL; /* note, dna 
define, not operator property */
                                        
                                        /* BUT, to keep the deforms, we need a 
modifier, and then we need to set the object that it uses */
-                                       // XXX currently this should only 
happen for meshes, curves and surfaces - this stuff isn't available for metas 
yet
-                                       if (ELEM4(ob->type, OB_MESH, OB_CURVE, 
OB_SURF, OB_FONT)) 
+                                       // XXX currently this should only 
happen for meshes, curves, surfaces, and lattices - this stuff isn't available 
for metas yet
+                                       if (ELEM5(ob->type, OB_MESH, OB_CURVE, 
OB_SURF, OB_FONT, OB_LATTICE)) 
                                        {
                                                switch (partype) 
                                                {

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c     
2009-11-22 22:42:57 UTC (rev 24791)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c     
2009-11-22 23:11:32 UTC (rev 24792)
@@ -1232,6 +1232,52 @@
        ot->flag= 0;
 }
 
+static int viewcenter_cursor_exec(bContext *C, wmOperator *op)
+{
+       View3D *v3d = CTX_wm_view3d(C);
+       ARegion *ar= CTX_wm_region(C);
+       RegionView3D *rv3d= CTX_wm_region_view3d(C);
+       Scene *scene= CTX_data_scene(C);
+       
+       if (rv3d) {
+               if (rv3d->persp==RV3D_CAMOB) {
+                       /* center the camera offset */
+                       rv3d->camdx= rv3d->camdy= 0.0;
+               }
+               else {
+                       /* non camera center */
+                       float *curs= give_cursor(scene, v3d);
+                       float new_ofs[3];
+                       
+                       new_ofs[0]= -curs[0];
+                       new_ofs[1]= -curs[1];
+                       new_ofs[2]= -curs[2];
+                       
+                       smooth_view(C, NULL, NULL, new_ofs, NULL, NULL, NULL);
+               }
+               
+               if (rv3d->viewlock & RV3D_BOXVIEW)
+                       view3d_boxview_copy(CTX_wm_area(C), ar);
+       }
+       
+       return OPERATOR_FINISHED;
+}
+
+void VIEW3D_OT_view_center_cursor(wmOperatorType *ot)
+{
+       /* identifiers */
+       ot->name= "Center View to Cursor";
+       ot->description= "Centers the view so that the cursor is in the middle 
of the view.";
+       ot->idname= "VIEW3D_OT_view_center_cursor";
+       
+       /* api callbacks */
+       ot->exec= viewcenter_cursor_exec;
+       ot->poll= ED_operator_view3d_active;
+       
+       /* flags */
+       ot->flag= OPTYPE_REGISTER/*|OPTYPE_UNDO*/;
+}
+
 /* ********************* Set render border operator ****************** */
 
 static int render_border_exec(bContext *C, wmOperator *op)

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_intern.h   
2009-11-22 22:42:57 UTC (rev 24791)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_intern.h   
2009-11-22 23:11:32 UTC (rev 24792)
@@ -71,6 +71,7 @@
 void VIEW3D_OT_view_all(struct wmOperatorType *ot);
 void VIEW3D_OT_viewnumpad(struct wmOperatorType *ot);
 void VIEW3D_OT_view_center(struct wmOperatorType *ot);
+void VIEW3D_OT_view_center_cursor(struct wmOperatorType *ot);
 void VIEW3D_OT_view_pan(struct wmOperatorType *ot);
 void VIEW3D_OT_view_persportho(struct wmOperatorType *ot);
 void VIEW3D_OT_view_orbit(struct wmOperatorType *ot);

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_ops.c      
2009-11-22 22:42:57 UTC (rev 24791)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_ops.c      
2009-11-22 23:11:32 UTC (rev 24792)
@@ -71,6 +71,7 @@
        WM_operatortype_append(VIEW3D_OT_view_pan);
        WM_operatortype_append(VIEW3D_OT_view_persportho);
        WM_operatortype_append(VIEW3D_OT_view_center);
+       WM_operatortype_append(VIEW3D_OT_view_center_cursor);
        WM_operatortype_append(VIEW3D_OT_select);
        WM_operatortype_append(VIEW3D_OT_select_border);
        WM_operatortype_append(VIEW3D_OT_clip_border);
@@ -127,6 +128,7 @@
        WM_keymap_verify_item(keymap, "VIEW3D_OT_move", MIDDLEMOUSE, KM_PRESS, 
KM_SHIFT, 0);
        WM_keymap_verify_item(keymap, "VIEW3D_OT_zoom", MIDDLEMOUSE, KM_PRESS, 
KM_CTRL, 0);
        WM_keymap_verify_item(keymap, "VIEW3D_OT_view_center", PADPERIOD, 
KM_PRESS, 0, 0);
+       WM_keymap_verify_item(keymap, "VIEW3D_OT_view_center_cursor", QKEY, 
KM_PRESS, 0, 0);
        
        WM_keymap_verify_item(keymap, "VIEW3D_OT_fly", FKEY, KM_PRESS, 
KM_SHIFT, 0);
 

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_view.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_view.c     
2009-11-22 22:42:57 UTC (rev 24791)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_view.c     
2009-11-22 23:11:32 UTC (rev 24792)
@@ -190,6 +190,7 @@
 
 
 /* ****************** smooth view operator ****************** */
+/* This operator is one of the 'timer refresh' ones like animation playback */
 
 struct SmoothViewStore {
        float orig_dist, new_dist;
@@ -386,6 +387,8 @@
        ot->poll= ED_operator_view3d_active;
 }
 
+/* ****************** change view operators ****************** */
+
 static void setcameratoview3d(View3D *v3d, RegionView3D *rv3d, Object *ob)
 {
        float dvec[3];
@@ -445,6 +448,7 @@
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 }
 
+
 static int view3d_setobjectascamera_exec(bContext *C, wmOperator *op)
 {
        View3D *v3d = CTX_wm_view3d(C);
@@ -479,6 +483,7 @@
        /* flags */
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 }
+
 /* ********************************** */
 
 /* create intersection coordinates in view Z direction at mouse coordinates */


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to