[Bf-blender-cvs] [a6b37d8c88f] refactor-mesh-hide-generic: Merge branch 'master' into refactor-mesh-hide-generic

Hans Goudey noreply at git.blender.org
Sun May 15 17:52:22 CEST 2022


Commit: a6b37d8c88f916b59a4196ac634b33285834fba0
Author: Hans Goudey
Date:   Sun May 15 15:46:48 2022 +0200
Branches: refactor-mesh-hide-generic
https://developer.blender.org/rBa6b37d8c88f916b59a4196ac634b33285834fba0

Merge branch 'master' into refactor-mesh-hide-generic

===================================================================



===================================================================

diff --cc source/blender/blenkernel/intern/bvhutils.cc
index a639a1acd8f,4d95cdd1e02..15eda7797ce
--- a/source/blender/blenkernel/intern/bvhutils.cc
+++ b/source/blender/blenkernel/intern/bvhutils.cc
@@@ -1217,10 -1212,11 +1217,10 @@@ static BLI_bitmap *looptri_no_hidden_ma
  
    int looptri_no_hidden_len = 0;
    int looptri_iter = 0;
-   int poly_index = 0;
+   int i_poly = 0;
    while (looptri_iter != looptri_len) {
-     int mp_totlooptri = mpoly[poly_index].totloop - 2;
-     if (face_hide[poly_index]) {
+     int mp_totlooptri = mpoly[i_poly].totloop - 2;
 -    const MPoly &mp = mpoly[i_poly];
 -    if (mp.flag & ME_HIDE) {
++    if (face_hide[i_poly]) {
        looptri_iter += mp_totlooptri;
      }
      else {
diff --cc source/blender/editors/mesh/editface.c
index 06c6d4ff8b6,bf4ab788439..d7a7e80aa6e
--- a/source/blender/editors/mesh/editface.c
+++ b/source/blender/editors/mesh/editface.c
@@@ -130,11 -128,9 +130,9 @@@ void paintface_hide(bContext *C, Objec
        }
      }
  
 -    if (mpoly->flag & ME_HIDE) {
 +    if (face_hide && face_hide[i]) {
        mpoly->flag &= ~ME_FACE_SEL;
      }
- 
-     mpoly++;
    }
  
    BKE_mesh_flush_hidden_from_polys(me);
@@@ -149,15 -145,12 +147,14 @@@ void paintface_reveal(bContext *C, Obje
      return;
    }
  
 +  bool *face_hide = (bool *)CustomData_get_layer_named(&me->pdata, CD_PROP_BOOL, ".face_hide");
 +
    for (int i = 0; i < me->totpoly; i++) {
      MPoly *mpoly = &me->mpoly[i];
 -    if (mpoly->flag & ME_HIDE) {
 +    if (face_hide && face_hide[i]) {
        SET_FLAG_FROM_TEST(mpoly->flag, select, ME_FACE_SEL);
 -      mpoly->flag &= ~ME_HIDE;
 +      face_hide[i] = false;
      }
-     mpoly++;
    }
  
    BKE_mesh_flush_hidden_from_polys(me);
@@@ -337,13 -318,9 +328,12 @@@ bool paintface_minmax(Object *ob, floa
  
    copy_m3_m4(bmat, ob->obmat);
  
 +  const bool *face_hide = (const bool *)CustomData_get_layer_named(
 +      &me->pdata, CD_PROP_BOOL, ".face_hide");
 +
-   mvert = me->mvert;
-   mp = me->mpoly;
-   for (a = me->totpoly; a > 0; a--, mp++) {
-     if ((face_hide && face_hide[a]) || !(mp->flag & ME_FACE_SEL)) {
+   for (int i = 0; i < me->totpoly; i++) {
+     MPoly *mp = &me->mpoly[i];
 -    if (mp->flag & ME_HIDE || !(mp->flag & ME_FACE_SEL)) {
++    if ((face_hide && face_hide[i]) || !(mp->flag & ME_FACE_SEL)) {
        continue;
      }
  
@@@ -372,11 -348,8 +361,11 @@@ bool paintface_mouse_select(struct bCon
    bool found = false;
  
    /* Get the face under the cursor */
-   me = BKE_mesh_from_object(ob);
+   Mesh *me = BKE_mesh_from_object(ob);
  
 +  const bool *face_hide = (const bool *)CustomData_get_layer_named(
 +      &me->pdata, CD_PROP_BOOL, ".face_hide");
 +
    if (ED_mesh_pick_face(C, ob, mval, ED_MESH_PICK_DEFAULT_FACE_DIST, &index)) {
      if (index < me->totpoly) {
        mpoly_sel = me->mpoly + index;
@@@ -569,14 -536,10 +555,13 @@@ void paintvert_select_ungrouped(Object 
      paintvert_deselect_all_visible(ob, SEL_DESELECT, false);
    }
  
-   dv = me->dvert;
-   tot = me->totvert;
- 
 +  const bool *vert_hide = (const bool *)CustomData_get_layer_named(
 +      &me->vdata, CD_PROP_BOOL, ".vert_hide");
 +
-   for (a = 0, mv = me->mvert; a < tot; a++, mv++, dv++) {
-     if (!(vert_hide && vert_hide[a])) {
+   for (int i = 0; i < me->totvert; i++) {
+     MVert *mv = &me->mvert[i];
+     MDeformVert *dv = &me->dvert[i];
 -    if ((mv->flag & ME_HIDE) == 0) {
++    if (!(vert_hide && vert_hide[i])) {
        if (dv->dw == NULL) {
          /* if null weight then not grouped */
          mv->flag |= SELECT;



More information about the Bf-blender-cvs mailing list