[Bf-blender-cvs] [f5e99abb60b] blender-v3.4-release: blender-v3.4-release: Rearrange function order to fix merging

Joseph Eagar noreply at git.blender.org
Tue Nov 22 21:45:47 CET 2022


Commit: f5e99abb60b4470e5a4d6c7659085d608699d805
Author: Joseph Eagar
Date:   Tue Nov 22 12:45:09 2022 -0800
Branches: blender-v3.4-release
https://developer.blender.org/rBf5e99abb60b4470e5a4d6c7659085d608699d805

blender-v3.4-release: Rearrange function order to fix merging

BKE_pbvh_sync_visibility_from_verts was in the wrong spot
relative to master, was leading to very nasty merge errors.

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

M	source/blender/blenkernel/intern/pbvh.c

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

diff --git a/source/blender/blenkernel/intern/pbvh.c b/source/blender/blenkernel/intern/pbvh.c
index f948749f7bb..8fba781835f 100644
--- a/source/blender/blenkernel/intern/pbvh.c
+++ b/source/blender/blenkernel/intern/pbvh.c
@@ -3547,95 +3547,6 @@ int BKE_pbvh_debug_draw_gen_get(PBVHNode *node)
   return node->debug_draw_gen;
 }
 
-void BKE_pbvh_sync_visibility_from_verts(PBVH *pbvh, Mesh *mesh)
-{
-  switch (pbvh->header.type) {
-    case PBVH_FACES: {
-      BKE_mesh_flush_hidden_from_verts(mesh);
-      BKE_pbvh_update_hide_attributes_from_mesh(pbvh);
-      break;
-    }
-    case PBVH_BMESH: {
-      BMIter iter;
-      BMVert *v;
-      BMEdge *e;
-      BMFace *f;
-
-      BM_ITER_MESH (f, &iter, pbvh->header.bm, BM_FACES_OF_MESH) {
-        BM_elem_flag_disable(f, BM_ELEM_HIDDEN);
-      }
-
-      BM_ITER_MESH (e, &iter, pbvh->header.bm, BM_EDGES_OF_MESH) {
-        BM_elem_flag_disable(e, BM_ELEM_HIDDEN);
-      }
-
-      BM_ITER_MESH (v, &iter, pbvh->header.bm, BM_VERTS_OF_MESH) {
-        if (!BM_elem_flag_test(v, BM_ELEM_HIDDEN)) {
-          continue;
-        }
-        BMIter iter_l;
-        BMLoop *l;
-
-        BM_ITER_ELEM (l, &iter_l, v, BM_LOOPS_OF_VERT) {
-          BM_elem_flag_enable(l->e, BM_ELEM_HIDDEN);
-          BM_elem_flag_enable(l->f, BM_ELEM_HIDDEN);
-        }
-      }
-      break;
-    }
-    case PBVH_GRIDS: {
-      const MPoly *mp = BKE_mesh_polys(mesh);
-      const MLoop *mloop = BKE_mesh_loops(mesh);
-      CCGKey key = pbvh->gridkey;
-
-      bool *hide_poly = (bool *)CustomData_get_layer_named(
-          &mesh->pdata, CD_PROP_BOOL, ".hide_poly");
-
-      bool delete_hide_poly = true;
-      for (int face_index = 0; face_index < mesh->totpoly; face_index++, mp++) {
-        const MLoop *ml = mloop + mp->loopstart;
-        bool hidden = false;
-
-        for (int loop_index = 0; !hidden && loop_index < mp->totloop; loop_index++, ml++) {
-          int grid_index = mp->loopstart + loop_index;
-
-          if (pbvh->grid_hidden[grid_index] &&
-              BLI_BITMAP_TEST(pbvh->grid_hidden[grid_index], key.grid_area - 1)) {
-            hidden = true;
-
-            break;
-          }
-        }
-
-        if (hidden && !hide_poly) {
-          hide_poly = (bool *)CustomData_get_layer_named(&mesh->pdata, CD_PROP_BOOL, ".hide_poly");
-
-          if (!hide_poly) {
-            CustomData_add_layer_named(
-                &mesh->pdata, CD_PROP_BOOL, CD_CONSTRUCT, NULL, mesh->totpoly, ".hide_poly");
-
-            hide_poly = (bool *)CustomData_get_layer_named(
-                &mesh->pdata, CD_PROP_BOOL, ".hide_poly");
-          }
-        }
-
-        if (hide_poly) {
-          delete_hide_poly = delete_hide_poly && !hidden;
-          hide_poly[face_index] = hidden;
-        }
-      }
-
-      if (delete_hide_poly) {
-        CustomData_free_layer_named(&mesh->pdata, ".hide_poly", mesh->totpoly);
-      }
-
-      BKE_mesh_flush_hidden_from_polys(mesh);
-      BKE_pbvh_update_hide_attributes_from_mesh(pbvh);
-      break;
-    }
-  }
-}
-
 static void pbvh_face_iter_verts_reserve(PBVHFaceIter *fd, int verts_num)
 {
   if (verts_num >= fd->verts_size_) {
@@ -3820,3 +3731,92 @@ bool BKE_pbvh_face_iter_done(PBVHFaceIter *fd)
       return true;
   }
 }
+
+void BKE_pbvh_sync_visibility_from_verts(PBVH *pbvh, Mesh *mesh)
+{
+  switch (pbvh->header.type) {
+    case PBVH_FACES: {
+      BKE_mesh_flush_hidden_from_verts(mesh);
+      BKE_pbvh_update_hide_attributes_from_mesh(pbvh);
+      break;
+    }
+    case PBVH_BMESH: {
+      BMIter iter;
+      BMVert *v;
+      BMEdge *e;
+      BMFace *f;
+
+      BM_ITER_MESH (f, &iter, pbvh->header.bm, BM_FACES_OF_MESH) {
+        BM_elem_flag_disable(f, BM_ELEM_HIDDEN);
+      }
+
+      BM_ITER_MESH (e, &iter, pbvh->header.bm, BM_EDGES_OF_MESH) {
+        BM_elem_flag_disable(e, BM_ELEM_HIDDEN);
+      }
+
+      BM_ITER_MESH (v, &iter, pbvh->header.bm, BM_VERTS_OF_MESH) {
+        if (!BM_elem_flag_test(v, BM_ELEM_HIDDEN)) {
+          continue;
+        }
+        BMIter iter_l;
+        BMLoop *l;
+
+        BM_ITER_ELEM (l, &iter_l, v, BM_LOOPS_OF_VERT) {
+          BM_elem_flag_enable(l->e, BM_ELEM_HIDDEN);
+          BM_elem_flag_enable(l->f, BM_ELEM_HIDDEN);
+        }
+      }
+      break;
+    }
+    case PBVH_GRIDS: {
+      const MPoly *mp = BKE_mesh_polys(mesh);
+      const MLoop *mloop = BKE_mesh_loops(mesh);
+      CCGKey key = pbvh->gridkey;
+
+      bool *hide_poly = (bool *)CustomData_get_layer_named(
+          &mesh->pdata, CD_PROP_BOOL, ".hide_poly");
+
+      bool delete_hide_poly = true;
+      for (int face_index = 0; face_index < mesh->totpoly; face_index++, mp++) {
+        const MLoop *ml = mloop + mp->loopstart;
+        bool hidden = false;
+
+        for (int loop_index = 0; !hidden && loop_index < mp->totloop; loop_index++, ml++) {
+          int grid_index = mp->loopstart + loop_index;
+
+          if (pbvh->grid_hidden[grid_index] &&
+              BLI_BITMAP_TEST(pbvh->grid_hidden[grid_index], key.grid_area - 1)) {
+            hidden = true;
+
+            break;
+          }
+        }
+
+        if (hidden && !hide_poly) {
+          hide_poly = (bool *)CustomData_get_layer_named(&mesh->pdata, CD_PROP_BOOL, ".hide_poly");
+
+          if (!hide_poly) {
+            CustomData_add_layer_named(
+                &mesh->pdata, CD_PROP_BOOL, CD_CONSTRUCT, NULL, mesh->totpoly, ".hide_poly");
+
+            hide_poly = (bool *)CustomData_get_layer_named(
+                &mesh->pdata, CD_PROP_BOOL, ".hide_poly");
+          }
+        }
+
+        if (hide_poly) {
+          delete_hide_poly = delete_hide_poly && !hidden;
+          hide_poly[face_index] = hidden;
+        }
+      }
+
+      if (delete_hide_poly) {
+        CustomData_free_layer_named(&mesh->pdata, ".hide_poly", mesh->totpoly);
+      }
+
+      BKE_mesh_flush_hidden_from_polys(mesh);
+      BKE_pbvh_update_hide_attributes_from_mesh(pbvh);
+      break;
+    }
+  }
+}



More information about the Bf-blender-cvs mailing list