[Bf-blender-cvs] [6ce85c0e88a] temp-trimesh-sculpt: prepare to move trimesh out of BLI

Joseph Eagar noreply at git.blender.org
Wed Oct 14 04:05:43 CEST 2020


Commit: 6ce85c0e88a0c0ca3284486ac5e947580fff9d43
Author: Joseph Eagar
Date:   Tue Sep 29 19:44:37 2020 -0700
Branches: temp-trimesh-sculpt
https://developer.blender.org/rB6ce85c0e88a0c0ca3284486ac5e947580fff9d43

prepare to move trimesh out of BLI

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

M	source/blender/blenkernel/BKE_paint.h
M	source/blender/blenkernel/BKE_pbvh.h
M	source/blender/blenkernel/intern/paint.c
M	source/blender/blenkernel/intern/pbvh_intern.h
M	source/blender/blenkernel/intern/pbvh_trimesh.c
M	source/blender/blenlib/BLI_trimesh.h
M	source/blender/blenlib/intern/BLI_trimesh.c

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

diff --git a/source/blender/blenkernel/BKE_paint.h b/source/blender/blenkernel/BKE_paint.h
index 7fc94ba9b26..d840b6e5734 100644
--- a/source/blender/blenkernel/BKE_paint.h
+++ b/source/blender/blenkernel/BKE_paint.h
@@ -298,7 +298,7 @@ typedef struct SculptSession {
   /* Mesh Face Sets */
   int *face_sets;
 
-  struct BLI_TriMesh *tm;
+  struct TM_TriMesh *tm;
   struct TriMeshLog *tm_log;
 
   /* BMesh for dynamic topology sculpting */
diff --git a/source/blender/blenkernel/BKE_pbvh.h b/source/blender/blenkernel/BKE_pbvh.h
index 2f238dd45a3..cabacabf0ad 100644
--- a/source/blender/blenkernel/BKE_pbvh.h
+++ b/source/blender/blenkernel/BKE_pbvh.h
@@ -119,7 +119,7 @@ void BKE_pbvh_build_bmesh(PBVH *bvh,
                           const int cd_vert_node_offset,
                           const int cd_face_node_offset);
 void BKE_pbvh_build_trimesh(PBVH *bvh,
-  struct BLI_TriMesh *bm,
+  struct TM_TriMesh *bm,
   bool smooth_shading,
   struct TriMeshLog *log,
   const int cd_vert_node_offset,
@@ -240,7 +240,7 @@ int BKE_pbvh_get_grid_num_vertices(const PBVH *pbvh);
 
 /* Only valid for type == PBVH_BMESH */
 struct BMesh *BKE_pbvh_get_bmesh(PBVH *pbvh);
-struct BLI_TriMesh *BKE_pbvh_get_trimesh(PBVH *pbvh);
+struct TM_TriMesh *BKE_pbvh_get_trimesh(PBVH *pbvh);
 void BKE_pbvh_topology_detail_size_set(PBVH *pbvh, float detail_size);
 
 typedef enum {
@@ -309,7 +309,7 @@ void BKE_pbvh_bmesh_after_stroke(PBVH *bvh);
 struct GSet *BKE_pbvh_trimesh_node_unique_verts(PBVHNode *node);
 struct GSet *BKE_pbvh_trimesh_node_other_verts(PBVHNode *node);
 struct GSet *BKE_pbvh_trimesh_node_faces(PBVHNode *node);
-void BKE_pbvh_trimesh_node_save_orig(struct BLI_TriMesh *tm, PBVHNode *node);
+void BKE_pbvh_trimesh_node_save_orig(struct TM_TriMesh *tm, PBVHNode *node);
 void BKE_pbvh_trimesh_after_stroke(PBVH *bvh);
 
 /* Update Bounding Box/Redraw and clear flags */
diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c
index d44dc9bd7f5..cfd7d758d91 100644
--- a/source/blender/blenkernel/intern/paint.c
+++ b/source/blender/blenkernel/intern/paint.c
@@ -1276,18 +1276,18 @@ static void sculptsession_tm_to_me_update_data_only(Object *ob, bool reorder)
 
   if (ss->bm) {
     if (ob->data) {
-      BLI_TriMeshIter iter;
+      TM_TriMeshIter iter;
       TMFace *f;
 
-      BLI_trimesh_tri_iternew(ss->tm, &iter);
-      f = BLI_trimesh_iterstep(&iter);
-      for (; f; f = BLI_trimesh_iterstep(&iter)) {
+      TM_tri_iternew(ss->tm, &iter);
+      f = TM_iterstep(&iter);
+      for (; f; f = TM_iterstep(&iter)) {
         TRIMESH_elem_flag_set(f, TRIMESH_SMOOTH, ss->bm_smooth_shading);
       }
       //if (reorder) {
       //  BM_log_mesh_elems_reorder(ss->bm, ss->bm_log);
       //}
-      BLI_trimesh_mesh_bm_to_me(NULL,
+      TM_mesh_bm_to_me(NULL,
         ss->tm,
         ob->data,
         (&(struct TMeshToMeshParams){
diff --git a/source/blender/blenkernel/intern/pbvh_intern.h b/source/blender/blenkernel/intern/pbvh_intern.h
index 493e0905f0d..7bc4ef44014 100644
--- a/source/blender/blenkernel/intern/pbvh_intern.h
+++ b/source/blender/blenkernel/intern/pbvh_intern.h
@@ -178,7 +178,7 @@ struct PBVH {
   struct BMLog *bm_log;
 
   /* trimesh data */
-  struct BLI_TriMesh *tm;
+  struct TM_TriMesh *tm;
   float tm_max_edge_len;
   float tm_min_edge_len;
 
diff --git a/source/blender/blenkernel/intern/pbvh_trimesh.c b/source/blender/blenkernel/intern/pbvh_trimesh.c
index ba9d3bcdc31..c0869088d87 100644
--- a/source/blender/blenkernel/intern/pbvh_trimesh.c
+++ b/source/blender/blenkernel/intern/pbvh_trimesh.c
@@ -120,10 +120,10 @@ static TMVert *tm_vert_hash_lookup_chain(GHash *deleted_verts, TMVert *v)
 }
 
 
-static void tm_edges_from_tri(BLI_TriMesh *tm, TMVert *vs[3], TMEdge *es[3], int threadnr, bool skipcd) {
-  es[0] = BLI_trimesh_get_edge(tm, vs[0], vs[1], threadnr, skipcd);
-  es[1] = BLI_trimesh_get_edge(tm, vs[1], vs[2], threadnr, skipcd);
-  es[2] = BLI_trimesh_get_edge(tm, vs[2], vs[0], threadnr, skipcd);
+static void tm_edges_from_tri(TM_TriMesh *tm, TMVert *vs[3], TMEdge *es[3], int threadnr, bool skipcd) {
+  es[0] = TM_get_edge(tm, vs[0], vs[1], threadnr, skipcd);
+  es[1] = TM_get_edge(tm, vs[1], vs[2], threadnr, skipcd);
+  es[2] = TM_get_edge(tm, vs[2], vs[0], threadnr, skipcd);
 }
 
 /* Update node data after splitting */
@@ -414,7 +414,7 @@ static TMVert *pbvh_trimesh_vert_create(
   BLI_assert((bvh->totnode == 1 || node_index) && node_index <= bvh->totnode);
 
   /* avoid initializing customdata because its quite involved */
-  TMVert *v = BLI_trimesh_make_vert(bvh->tm, co, no, 0, true);
+  TMVert *v = TM_make_vert(bvh->tm, co, no, 0, true);
   CustomData_bmesh_set_default(&bvh->tm->vdata, &v->customdata);
 
   BLI_gset_insert(node->tm_unique_verts, v);
@@ -423,7 +423,7 @@ static TMVert *pbvh_trimesh_vert_create(
   node->flag |= PBVH_UpdateDrawBuffers | PBVH_UpdateBB;
 
   /* Log the new vertex */
-  BLI_trimesh_log_vert_add(bvh->tm_log, v, cd_vert_mask_offset, false);
+  TM_log_vert_add(bvh->tm_log, v, cd_vert_mask_offset, false);
 
   return v;
 }
@@ -439,7 +439,7 @@ static TMFace *pbvh_trimesh_face_create(
   /* ensure we never add existing face */
   //BLI_assert(!BM_face_exists(v_tri, 3));
 
-  TMFace *f = BLI_trimesh_make_tri(bvh->tm, v_tri[0], v_tri[1], v_tri[2], 0, false);
+  TMFace *f = TM_make_tri(bvh->tm, v_tri[0], v_tri[1], v_tri[2], 0, false);
   //f->head.hflag = f_example->head.hflag;
 
   BLI_gset_insert(node->tm_faces, f);
@@ -486,7 +486,7 @@ static int pbvh_trimesh_node_vert_use_count_at_most(PBVH *bvh,
   int count = 0;
   TMFace *f;
 
-  TRIMESH_ITER_VERT_TRIS (v, f) {
+  TM_ITER_VERT_TRIS (v, f) {
     PBVHNode *f_node = pbvh_trimesh_node_from_face(bvh, f);
     if (f_node == node) {
       count++;
@@ -495,7 +495,7 @@ static int pbvh_trimesh_node_vert_use_count_at_most(PBVH *bvh,
       }
     }
   }
-  TRIMESH_ITER_VERT_TRIS_END;
+  TM_ITER_VERT_TRIS_END;
 
   return count;
 }
@@ -506,14 +506,14 @@ static PBVHNode *pbvh_trimesh_vert_other_node_find(PBVH *bvh, TMVert *v)
   PBVHNode *current_node = pbvh_trimesh_node_from_vert(bvh, v);
   TMFace *f;
 
-  TRIMESH_ITER_VERT_TRIS (v, f) {
+  TM_ITER_VERT_TRIS (v, f) {
     PBVHNode *f_node = pbvh_trimesh_node_from_face(bvh, f);
 
     if (f_node != current_node) {
       return f_node;
     }
   }
-  TRIMESH_ITER_VERT_TRIS_END;
+  TM_ITER_VERT_TRIS_END;
 
   return NULL;
 }
@@ -550,7 +550,7 @@ static void pbvh_trimesh_vert_remove(PBVH *bvh, TMVert *v)
 
   /* Have to check each neighboring face's node */
   TMFace *f;
-  TRIMESH_ITER_VERT_TRIS (v, f) {
+  TM_ITER_VERT_TRIS (v, f) {
     const int f_node_index = pbvh_trimesh_node_index_from_face(bvh, f);
 
     /* faces often share the same node,
@@ -568,7 +568,7 @@ static void pbvh_trimesh_vert_remove(PBVH *bvh, TMVert *v)
       BLI_assert(!BLI_gset_haskey(f_node->tm_other_verts, v));
     }
   }
-  TRIMESH_ITER_VERT_TRIS_END;
+  TM_ITER_VERT_TRIS_END;
 }
 
 static void pbvh_trimesh_face_remove(PBVH *bvh, TMFace *f)
@@ -650,7 +650,7 @@ typedef struct EdgeQueue {
 typedef struct {
   EdgeQueue *q;
   BLI_mempool *pool;
-  BLI_TriMesh *tm;
+  TM_TriMesh *tm;
   int cd_vert_mask_offset;
   int cd_vert_node_offset;
   int cd_face_node_offset;
@@ -739,8 +739,8 @@ static void edge_queue_insert(EdgeQueueContext *eq_ctx, TMEdge *e, float priorit
   * enough. */
   if (((eq_ctx->cd_vert_mask_offset == -1) ||
     (check_mask(eq_ctx, e->v1) || check_mask(eq_ctx, e->v2))) &&
-    !(TRIMESH_elem_flag_test_bool(e->v1, TRIMESH_HIDE) ||
-      TRIMESH_elem_flag_test_bool(e->v2, TRIMESH_HIDE))) {
+    !(TM_elem_flag_test_bool(e->v1, TRIMESH_HIDE) ||
+      TM_elem_flag_test_bool(e->v2, TRIMESH_HIDE))) {
     TMVert **pair = BLI_mempool_alloc(eq_ctx->pool);
     pair[0] = e->v1;
     pair[1] = e->v2;
@@ -758,7 +758,7 @@ static void long_edge_queue_edge_add(EdgeQueueContext *eq_ctx, TMEdge *e)
   if (EDGE_QUEUE_TEST(e) == false)
 #endif
   {
-    const float len_sq = TRIMESH_edge_calc_length_squared(e);
+    const float len_sq = TM_edge_calc_length_squared(e);
     if (len_sq > eq_ctx->q->limit_len_squared) {
       edge_queue_insert(eq_ctx, e, -len_sq);
     }
@@ -810,14 +810,14 @@ static void long_edge_queue_edge_add_recursive(
 
     for (int i=0; i<l_edge->tris.length; i++) {
       TMFace *tri = l_edge->tris.items[i];
-      TMEdge *l_adjacent[2] = {BLI_trimesh_nextEdgeInTri(tri, l_edge), BLI_trimesh_prevEdgeInTri(tri, l_edge)};
+      TMEdge *l_adjacent[2] = {TM_nextEdgeInTri(tri, l_edge), TM_prevEdgeInTri(tri, l_edge)};
 
       for (int j=0; j<2; j++) {
-        float len_sq_other = TRIMESH_edge_calc_length_squared(l_adjacent[j]);
+        float len_sq_other = TM_edge_calc_length_squared(l_adjacent[j]);
         if (len_sq_other > max_ff(len_sq_cmp, limit_len_sq)) {
           //                  edge_queue_insert(eq_ctx, l_adjacent[i]->e, -len_sq_other);
           long_edge_queue_edge_add_recursive(
-            eq_ctx, l_adjacent[i], l_adjacent[i], BLI_trimesh_nextTriInEdge(l_adjacent[i], tri), tri, len_sq_other, limit_len);
+            eq_ctx, l_adjacent[i], l_adjacent[i], TM_nextTriInEdge(l_adjacent[i], tri), tri, len_sq_other, limit_len);
         }
       }
     }
@@ -848,7 +848,7 @@ static void short_edge_queue_edge_add(EdgeQueueContext *eq_ctx, TMEdge *e)
   if (EDGE_QUEUE_TEST(e) == false)
 #endif
   {
-    const float len_sq = TRIMESH_edge_calc_length_squared(e);
+    const float len_sq = TM_edge_calc_length_squared(e);
     if (len_sq < eq_ctx->q->limit_len_squared) {
       edge_queue_insert(eq_ctx, e, len_sq);
     }
@@ -871,10 +871,10 @@ static void long_edge_queue_face_add(EdgeQueueContext *eq_ctx, TMFace *f)
     for (int i=0; i<3; i++) {
       TMEdge *e = TRIMESH_GET_TRI_EDGE(f, i);
 
-      const float len_sq = TRIMESH_edge_calc_length_squared(e);
+      const float len_sq = TM_edge_calc_length_squared(e);
       if (len_sq > eq_ctx->q->limit_len_squared) {
         long_edge_queue_edge_add_recursive(
-          eq_ctx, e, e, BLI_trimesh_nextTriInEdge(e, f), f, len_sq, eq_ctx->q->limit_len);
+          eq_ctx, e, e, TM_nextTriInEdge(e, f), f, len_sq, eq_ctx->q->limit_len);
       }
 #else
       long_edge_queue_edge_add(eq_ctx, l_iter->e);
@@ -1039,7 +1039,7 @@ st

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list