Merge branch 'master' into blender2.8
authorCampbell Barton <ideasman42@gmail.com>
Wed, 14 Mar 2018 07:08:37 +0000 (18:08 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Wed, 14 Mar 2018 07:08:37 +0000 (18:08 +1100)
1  2 
doc/python_api/sphinx_doc_gen.py
source/blender/editors/mesh/editmesh_select.c
source/blender/editors/mesh/editmesh_tools.c

Simple merge
index ca1002c72687337e78515d6430111e35ca79b1c9,c84ba93ec0ddcc2fbcd4bbb2d1dd9461bc3a0664..a6bbebb834e6ac2ed64d063f039365f80f8e5c05
@@@ -207,8 -218,8 +222,8 @@@ bool EDBM_backbuf_border_init
        if (vc->obedit == NULL || !V3D_IS_ZBUF(vc->v3d)) {
                return false;
        }
-       
 -      buf = ED_view3d_backbuf_read(vc, xmin, ymin, xmax, ymax);
 +      buf = ED_view3d_backbuf_read(eval_ctx, vc, xmin, ymin, xmax, ymax);
        if ((buf == NULL) || (bm_vertoffs == 0)) {
                return false;
        }
@@@ -267,20 -278,20 +282,20 @@@ static void edbm_mask_lasso_px_cb(int x
  
  /* mcords is a polygon mask
   * - grab backbuffer,
-  * - draw with black in backbuffer, 
+  * - draw with black in backbuffer,
   * - grab again and compare
-  * returns 'OK' 
+  * returns 'OK'
   */
 -bool EDBM_backbuf_border_mask_init(ViewContext *vc, const int mcords[][2], short tot, short xmin, short ymin, short xmax, short ymax)
 +bool EDBM_backbuf_border_mask_init(const struct EvaluationContext *eval_ctx, ViewContext *vc, const int mcords[][2], short tot, short xmin, short ymin, short xmax, short ymax)
  {
        unsigned int *dr, *dr_mask, *dr_mask_arr;
        struct ImBuf *buf;
        int a;
        struct LassoMaskData lasso_mask_data;
-       
        /* method in use for face selecting too */
        if (vc->obedit == NULL) {
 -              if (!BKE_paint_select_elem_test(vc->obact)) {
 +              if (!BKE_paint_select_elem_test(vc->obact, eval_ctx->object_mode)) {
                        return false;
                }
        }
@@@ -329,10 -338,10 +344,10 @@@ bool EDBM_backbuf_circle_init
        unsigned int *dr;
        short xmin, ymin, xmax, ymax, xc, yc;
        int radsq;
-       
        /* method in use for face selecting too */
        if (vc->obedit == NULL) {
 -              if (!BKE_paint_select_elem_test(vc->obact)) {
 +              if (!BKE_paint_select_elem_test(vc->obact, eval_ctx->object_mode)) {
                        return false;
                }
        }
@@@ -451,14 -460,14 +466,14 @@@ BMVert *EDBM_vert_find_nearest_ex
                float dist_test;
                unsigned int index;
                BMVert *eve;
-               
                /* No afterqueue (yet), so we check it now, otherwise the bm_xxxofs indices are bad. */
 -              ED_view3d_backbuf_validate(vc);
 +              ED_view3d_backbuf_validate(eval_ctx, vc);
  
                index = ED_view3d_backbuf_sample_rect(
 -                      vc, vc->mval, dist_px, bm_wireoffs, 0xFFFFFF, &dist_test);
 +                      eval_ctx, vc, vc->mval, dist_px, bm_wireoffs, 0xFFFFFF, &dist_test);
                eve = index ? BM_vert_at_index_find_or_table(bm, index - 1) : NULL;
-               
                if (eve) {
                        if (dist_test < *r_dist) {
                                *r_dist = dist_test;
@@@ -813,11 -822,11 +828,11 @@@ BMFace *EDBM_face_find_nearest_ex
                unsigned int index;
                BMFace *efa;
  
 -              ED_view3d_backbuf_validate(vc);
 +              ED_view3d_backbuf_validate(eval_ctx, vc);
  
 -              index = ED_view3d_backbuf_sample(vc, vc->mval[0], vc->mval[1]);
 +              index = ED_view3d_backbuf_sample(eval_ctx, vc, vc->mval[0], vc->mval[1]);
                efa = index ? BM_face_at_index_find_or_table(bm, index - 1) : NULL;
-               
                if (r_efa_zbuf) {
                        *r_efa_zbuf = efa;
                }
@@@ -1572,10 -1591,8 +1599,9 @@@ static void mouse_mesh_loop_edge(BMEdit
        }
  }
  
  static bool mouse_mesh_loop(bContext *C, const int mval[2], bool extend, bool deselect, bool toggle, bool ring)
  {
 +      EvaluationContext eval_ctx;
        ViewContext vc;
        BMEditMesh *em;
        BMEdge *eed;
@@@ -1839,13 -1873,17 +1883,18 @@@ void MESH_OT_select_interior_faces(wmOp
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
  }
  
+ /** \} */
+ /* -------------------------------------------------------------------- */
+ /** \name Select Picking API
+  *
+  * Here actual select happens,
+  * Gets called via generic mouse select operator.
+  * \{ */
  
- /* ************************************************** */
- /* here actual select happens */
- /* gets called via generic mouse select operator */
  bool EDBM_select_pick(bContext *C, const int mval[2], bool extend, bool deselect, bool toggle)
  {
 +      EvaluationContext eval_ctx;
        ViewContext vc;
        BMVert *eve = NULL;
        BMEdge *eed = NULL;
index a71b03b6ff7a2f290d9600358b25c9193d33b9e6,84299f12cefe62b7e37054ede5fb468773a69fbe..ce7610b5d699bd4554d0fc90a672c1b697ebb343
@@@ -868,10 -905,14 +910,16 @@@ void MESH_OT_mark_seam(wmOperatorType *
  
        prop = RNA_def_boolean(ot->srna, "clear", 0, "Clear", "");
        RNA_def_property_flag(prop, PROP_SKIP_SAVE);
 +
 +      WM_operatortype_props_advanced_begin(ot);
  }
  
+ /** \} */
+ /* -------------------------------------------------------------------- */
+ /** \name Mark Edge (Sharp) Operator
+  * \{ */
  static int edbm_mark_sharp_exec(bContext *C, wmOperator *op)
  {
        Object *obedit = CTX_data_edit_object(C);
@@@ -3301,10 -3452,9 +3468,10 @@@ static int edbm_separate_exec(bContext 
  {
        Main *bmain = CTX_data_main(C);
        Scene *scene = CTX_data_scene(C);
 +      ViewLayer *view_layer = CTX_data_view_layer(C);
        const int type = RNA_enum_get(op->ptr, "type");
        int retval = 0;
-       
        if (ED_operator_editmesh(C)) {
                Base *base = CTX_data_active_base(C);
                BMEditMesh *em = BKE_editmesh_from_object(base->object);