[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