[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36450] trunk/blender: =trunk=

joe joeedh at gmail.com
Tue May 3 04:51:47 CEST 2011


You have to turn on WITH_ELTOPO in cmake or WITH_BF_ELTOPO in scons,
of course.  It's off by default; I'd accidentally left in on by
default in cmake before.

Joe

On Mon, May 2, 2011 at 7:48 PM, Joseph Eagar <joeedh at gmail.com> wrote:
> Revision: 36450
>          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36450
> Author:   joeedh
> Date:     2011-05-03 01:48:15 +0000 (Tue, 03 May 2011)
> Log Message:
> -----------
> =trunk=
> Recommitted eltopo collision code (but disabled by default)
> with Genscher's permission.
>
> To use, you need to install liblapack and libblas
>
> Modified Paths:
> --------------
>    trunk/blender/release/scripts/startup/bl_ui/space_userpref.py
>    trunk/blender/source/blender/editors/mesh/loopcut.c
>    trunk/blender/source/blender/editors/mesh/mesh_ops.c
>    trunk/blender/source/blender/editors/transform/transform.c
>    trunk/blender/source/blender/editors/transform/transform_ops.c
>    trunk/blender/source/blender/makesdna/DNA_userdef_types.h
>    trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h
>    trunk/blender/source/blender/makesrna/intern/rna_userdef.c
>    trunk/blender/source/blender/windowmanager/intern/wm_operators.c
>
> Modified: trunk/blender/release/scripts/startup/bl_ui/space_userpref.py
> ===================================================================
> --- trunk/blender/release/scripts/startup/bl_ui/space_userpref.py       2011-05-03 00:13:01 UTC (rev 36449)
> +++ trunk/blender/release/scripts/startup/bl_ui/space_userpref.py       2011-05-03 01:48:15 UTC (rev 36450)
> @@ -795,6 +795,9 @@
>
>         sub.separator()
>
> +        sub.label(text="Loop Cut:")
> +        sub.prop(inputs, "loopcut_finish_on_release")
> +
>         sub.label(text="Orbit Style:")
>         sub.row().prop(inputs, "view_rotate_method", expand=True)
>
>
> Modified: trunk/blender/source/blender/editors/mesh/loopcut.c
> ===================================================================
> --- trunk/blender/source/blender/editors/mesh/loopcut.c 2011-05-03 00:13:01 UTC (rev 36449)
> +++ trunk/blender/source/blender/editors/mesh/loopcut.c 2011-05-03 01:48:15 UTC (rev 36450)
> @@ -100,6 +100,7 @@
>
>        int extend;
>        int do_cut;
> +       wmTimer *timer;
>  } tringselOpData;
>
>  /* modal loop selection drawing callback */
> @@ -315,10 +316,13 @@
>  }
>
>  /* called when modal loop selection is done... */
> -static void ringsel_exit(wmOperator *op)
> +static void ringsel_exit(bContext *C, wmOperator *op)
>  {
>        tringselOpData *lcd= op->customdata;
>
> +       if (lcd->timer)
> +               WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), lcd->timer);
> +
>        /* deactivate the extra drawing stuff in 3D-View */
>        ED_region_draw_cb_exit(lcd->ar->type, lcd->draw_handle);
>
> @@ -354,10 +358,10 @@
>        return 1;
>  }
>
> -static int ringcut_cancel (bContext *UNUSED(C), wmOperator *op)
> +static int ringcut_cancel (bContext *C, wmOperator *op)
>  {
>        /* this is just a wrapper around exit() */
> -       ringsel_exit(op);
> +       ringsel_exit(C, op);
>        return OPERATOR_CANCELLED;
>  }
>
> @@ -375,7 +379,7 @@
>        lcd = op->customdata;
>
>        if (lcd->em->selectmode == SCE_SELECT_FACE) {
> -               ringsel_exit(op);
> +               ringsel_exit(C, op);
>                WM_operator_name_call(C, "MESH_OT_loop_select", WM_OP_INVOKE_REGION_WIN, NULL);
>                return OPERATOR_CANCELLED;
>        }
> @@ -385,7 +389,7 @@
>
>        edge = findnearestedge(&lcd->vc, &dist);
>        if(!edge) {
> -               ringsel_exit(op);
> +               ringsel_exit(C, op);
>                return OPERATOR_CANCELLED;
>        }
>
> @@ -393,7 +397,7 @@
>        ringsel_find_edge(lcd, 1);
>
>        ringsel_finish(C, op);
> -       ringsel_exit(op);
> +       ringsel_exit(C, op);
>
>        return OPERATOR_FINISHED;
>  }
> @@ -404,7 +408,11 @@
>        tringselOpData *lcd;
>        EditEdge *edge;
>        int dist = 75;
> -
> +
> +       /*if we're in the cut-n-slide macro, set release_confirm based on user pref*/
> +       if (op->opm)
> +               RNA_boolean_set(op->next->ptr, "release_confirm", U.loopcut_finish_on_release);
> +
>        if(modifiers_isDeformedByLattice(obedit) || modifiers_isDeformedByArmature(obedit))
>                BKE_report(op->reports, RPT_WARNING, "Loop cut doesn't work well on deformed edit mesh display");
>
> @@ -437,22 +445,34 @@
>
>        view3d_operator_needs_opengl(C);
>
> -
>        switch (event->type) {
>                case LEFTMOUSE: /* confirm */ // XXX hardcoded
> -                       if (event->val == KM_PRESS) {
> +                       if (event->val == KM_RELEASE) {
>                                /* finish */
>                                ED_region_tag_redraw(lcd->ar);
>
>                                ringsel_finish(C, op);
> -                               ringsel_exit(op);
> +                               ringsel_exit(C, op);
>                                ED_area_headerprint(CTX_wm_area(C), NULL);
>
> -                               return OPERATOR_FINISHED;
> +                               return OPERATOR_FINISHED|OPERATOR_ABORT_MACRO;
> +                       }else {
> +                               lcd->timer = WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER2, 0.12);
>                        }
>
>                        ED_region_tag_redraw(lcd->ar);
>                        break;
> +
> +               case TIMER2:
> +                       /* finish */
> +                       ED_region_tag_redraw(lcd->ar);
> +
> +                       ringsel_finish(C, op);
> +                       ringsel_exit(C, op);
> +
> +                       ED_area_headerprint(CTX_wm_area(C), NULL);
> +
> +                       return OPERATOR_FINISHED;
>                case RIGHTMOUSE: /* abort */ // XXX hardcoded
>                case ESCKEY:
>                        if (event->val == KM_RELEASE) {
>
> Modified: trunk/blender/source/blender/editors/mesh/mesh_ops.c
> ===================================================================
> --- trunk/blender/source/blender/editors/mesh/mesh_ops.c        2011-05-03 00:13:01 UTC (rev 36449)
> +++ trunk/blender/source/blender/editors/mesh/mesh_ops.c        2011-05-03 01:48:15 UTC (rev 36450)
> @@ -175,8 +175,10 @@
>        ot= WM_operatortype_append_macro("MESH_OT_loopcut_slide", "Loop Cut and Slide", OPTYPE_UNDO|OPTYPE_REGISTER);
>        ot->description = "Cut mesh loop and slide it";
>        WM_operatortype_macro_define(ot, "MESH_OT_loopcut");
> -       WM_operatortype_macro_define(ot, "TRANSFORM_OT_edge_slide");
> -
> +       otmacro= WM_operatortype_macro_define(ot, "TRANSFORM_OT_edge_slide");
> +       RNA_boolean_set(otmacro->ptr, "release_confirm", 1);
> +       RNA_int_set(otmacro->ptr, "launch_event", LEFTMOUSE);
> +
>        ot= WM_operatortype_append_macro("MESH_OT_duplicate_move", "Add Duplicate", OPTYPE_UNDO|OPTYPE_REGISTER);
>        ot->description = "Duplicate mesh and move";
>        WM_operatortype_macro_define(ot, "MESH_OT_duplicate");
>
> Modified: trunk/blender/source/blender/editors/transform/transform.c
> ===================================================================
> --- trunk/blender/source/blender/editors/transform/transform.c  2011-05-03 00:13:01 UTC (rev 36449)
> +++ trunk/blender/source/blender/editors/transform/transform.c  2011-05-03 01:48:15 UTC (rev 36450)
> @@ -1521,7 +1521,9 @@
>        t->mode = mode;
>
>        t->launch_event = event ? event->type : -1;
> -
> +       if (RNA_property_is_set(op->ptr, "launch_event"))
> +               t->launch_event = RNA_int_get(op->ptr, "launch_event");
> +
>        if (t->launch_event == EVT_TWEAK_R)
>        {
>                t->launch_event = RIGHTMOUSE;
>
> Modified: trunk/blender/source/blender/editors/transform/transform_ops.c
> ===================================================================
> --- trunk/blender/source/blender/editors/transform/transform_ops.c      2011-05-03 00:13:01 UTC (rev 36449)
> +++ trunk/blender/source/blender/editors/transform/transform_ops.c      2011-05-03 01:48:15 UTC (rev 36450)
> @@ -495,10 +495,11 @@
>        {
>                RNA_def_boolean(ot->srna, "texture_space", 0, "Edit Object data texture space", "");
>        }
> -
> +
>        // Add confirm method all the time. At the end because it's not really that important and should be hidden only in log, not in keymap edit
>        /*prop =*/ RNA_def_boolean(ot->srna, "release_confirm", 0, "Confirm on Release", "Always confirm operation when releasing button");
>        //RNA_def_property_flag(prop, PROP_HIDDEN);
> +       RNA_def_int(ot->srna, "launch_event", 0, 0, INT_MAX, "Launch Event", "", 0, INT_MAX);
>  }
>
>  void TRANSFORM_OT_translate(struct wmOperatorType *ot)
> @@ -742,7 +743,7 @@
>        ot->poll   = ED_operator_editmesh;
>
>        RNA_def_float_factor(ot->srna, "value", 0, -1.0f, 1.0f, "Factor", "", -1.0f, 1.0f);
> -
> +
>        Transform_Properties(ot, P_MIRROR|P_SNAP);
>  }
>
>
> Modified: trunk/blender/source/blender/makesdna/DNA_userdef_types.h
> ===================================================================
> --- trunk/blender/source/blender/makesdna/DNA_userdef_types.h   2011-05-03 00:13:01 UTC (rev 36449)
> +++ trunk/blender/source/blender/makesdna/DNA_userdef_types.h   2011-05-03 01:48:15 UTC (rev 36450)
> @@ -383,13 +383,13 @@
>        short autokey_mode;             /* autokeying mode */
>        short autokey_flag;             /* flags for autokeying */
>
> -       short text_render, pad9;                /*options for text rendering*/
> +       short text_render, dsm_maxmem;          /*options for text rendering*/
>        float pad10;
>
>        struct ColorBand coba_weight;   /* from texture.h */
>
>        float sculpt_paint_overlay_col[3];
> -       int pad3;
> +       int loopcut_finish_on_release;
>
>        char author[80];        /* author name for file formats supporting it */
>  } UserDef;
>
> Modified: trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h
> ===================================================================
> --- trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h     2011-05-03 00:13:01 UTC (rev 36449)
> +++ trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h     2011-05-03 01:48:15 UTC (rev 36450)
> @@ -312,6 +312,7 @@
>  #define OPERATOR_PASS_THROUGH  8
>  /* in case operator got executed outside WM code... like via fileselect */
>  #define OPERATOR_HANDLED               16
> +#define OPERATOR_ABORT_MACRO   32
>
>  /* wmOperator flag */
>  #define OP_GRAB_POINTER                        1
>
> Modified: trunk/blender/source/blender/makesrna/intern/rna_userdef.c
> ===================================================================
> --- trunk/blender/source/blender/makesrna/intern/rna_userdef.c  2011-05-03 00:13:01 UTC (rev 36449)
> +++ trunk/blender/source/blender/makesrna/intern/rna_userdef.c  2011-05-03 01:48:15 UTC (rev 36450)
> @@ -2676,6 +2676,10 @@
>        RNA_def_property_enum_items(prop, view_zoom_axes);
>        RNA_def_property_ui_text(prop, "Zoom Axis", "Axis of mouse movement to zoom in or out on");
>
> +       prop= RNA_def_property(srna, "loopcut_finish_on_release", PROP_BOOLEAN, PROP_NONE);
> +       RNA_def_property_boolean_sdna(prop, NULL, "loopcut_finish_on_release", 1);
> +       RNA_def_property_ui_text(prop, "End Loopcut Slide On Release", "End Loopcut Slide On Mouse Release, a 'click-drag-and-hold' workflow");
> +
>        prop= RNA_def_property(srna, "invert_mouse_zoom", PROP_BOOLEAN, PROP_NONE);
>        RNA_def_property_boolean_sdna(prop, NULL, "uiflag", USER_ZOOM_INVERT);
>        RNA_def_property_ui_text(prop, "Invert Zoom Direction", "Invert the axis of mouse movement for zooming");
>
> Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c
> ===================================================================
> --- trunk/blender/source/blender/windowmanager/intern/wm_operators.c    2011-05-03 00:13:01 UTC (rev 36449)
> +++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c    2011-05-03 01:48:15 UTC (rev 36450)
> @@ -214,6 +214,9 @@
>                        } else {
>                                break; /* operator didn't finish, end macro */
>                        }
> +
> +                       if (retval & OPERATOR_ABORT_MACRO)
> +                               break;
>                }
>        }
>
> @@ -239,6 +242,9 @@
>                } else {
>                        break; /* operator didn't finish, end macro */
>                }
> +
> +               if (retval & OPERATOR_ABORT_MACRO)
> +                       break;
>        }
>
>        return wm_macro_end(op, retval);
> @@ -265,43 +271,45 @@
>                        MacroData *md = op->customdata;
>
>                        md->retval = OPERATOR_FINISHED; /* keep in mind that at least one operator finished */
> -
> -                       retval = wm_macro_invoke_internal(C, op, event, opm->next);
> -
> -                       /* if new operator is modal and also added its own handler */
> -                       if (retval & OPERATOR_RUNNING_MODAL && op->opm != opm) {
> -                               wmWindow *win = CTX_wm_window(C);
> -                               wmEventHandler *handler = NULL;
> -
> -                               for (handler = win->modalhandlers.first; handler; handler = handler->next) {
> -                                       /* first handler in list is the new one */
> -                                       if (handler->op == op)
> -                                               break;
> -                               }
> -
> -                               if (handler) {
> -                                       BLI_remlink(&win->modalhandlers, handler);
> -                                       wm_event_free_handler(handler);
> -                               }
> -
> -                               /* if operator is blocking, grab cursor
> -                                * This may end up grabbing twice, but we don't care.
>
> @@ Diff output truncated at 10240 characters. @@
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>



More information about the Bf-blender-cvs mailing list