[Bf-blender-cvs] [6076bed] master: Cleanup: remove scanfill define for polyfill code

Campbell Barton noreply at git.blender.org
Tue Dec 9 12:20:44 CET 2014


Commit: 6076bedec002b92e5f316a15a45a8cdaf686aa33
Author: Campbell Barton
Date:   Tue Dec 9 12:19:26 2014 +0100
Branches: master
https://developer.blender.org/rB6076bedec002b92e5f316a15a45a8cdaf686aa33

Cleanup: remove scanfill define for polyfill code

also rename vars which were previously used for scanfill.

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

M	source/blender/blenlib/BLI_polyfill2d.h
M	source/blender/bmesh/intern/bmesh_polygon.c
M	source/blender/bmesh/intern/bmesh_polygon.h
M	source/blender/bmesh/tools/bmesh_triangulate.c

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

diff --git a/source/blender/blenlib/BLI_polyfill2d.h b/source/blender/blenlib/BLI_polyfill2d.h
index 5c5cea8..798055f 100644
--- a/source/blender/blenlib/BLI_polyfill2d.h
+++ b/source/blender/blenlib/BLI_polyfill2d.h
@@ -37,4 +37,7 @@ void BLI_polyfill_calc(
         const int coords_sign,
         unsigned int (*r_tris)[3]);
 
+/* default size of polyfill arena */
+#define BLI_POLYFILL_ARENA_SIZE MEM_SIZE_OPTIMAL(1 << 14)
+
 #endif  /* __BLI_POLYFILL2D_H__ */
diff --git a/source/blender/bmesh/intern/bmesh_polygon.c b/source/blender/bmesh/intern/bmesh_polygon.c
index 4a1ab86..4733265 100644
--- a/source/blender/bmesh/intern/bmesh_polygon.c
+++ b/source/blender/bmesh/intern/bmesh_polygon.c
@@ -742,13 +742,15 @@ bool BM_face_point_inside_test(BMFace *f, const float co[3])
  *
  * \note use_tag tags new flags and edges.
  */
-void BM_face_triangulate(BMesh *bm, BMFace *f,
-                         BMFace **r_faces_new,
-                         int *r_faces_new_tot,
-                         MemArena *sf_arena,
-                         const int quad_method,
-                         const int ngon_method,
-                         const bool use_tag)
+void BM_face_triangulate(
+        BMesh *bm, BMFace *f,
+        BMFace **r_faces_new,
+        int *r_faces_new_tot,
+        const int quad_method,
+        const int ngon_method,
+        const bool use_tag,
+
+        MemArena *pf_arena)
 {
 	BMLoop *l_iter, *l_first, *l_new;
 	BMFace *f_new;
@@ -854,7 +856,7 @@ void BM_face_triangulate(BMesh *bm, BMFace *f,
 		}
 
 		BLI_polyfill_calc_arena((const float (*)[2])projverts, f->len, -1, tris,
-		                        sf_arena);
+		                        pf_arena);
 
 		if (use_beauty) {
 			edge_array = BLI_array_alloca(edge_array, orig_f_len - 3);
diff --git a/source/blender/bmesh/intern/bmesh_polygon.h b/source/blender/bmesh/intern/bmesh_polygon.h
index d62c81c..8c81b45 100644
--- a/source/blender/bmesh/intern/bmesh_polygon.h
+++ b/source/blender/bmesh/intern/bmesh_polygon.h
@@ -56,12 +56,13 @@ void  BM_vert_normal_update_all(BMVert *v) ATTR_NONNULL();
 void  BM_face_normal_flip(BMesh *bm, BMFace *f) ATTR_NONNULL();
 bool  BM_face_point_inside_test(BMFace *f, const float co[3]) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
 
-void  BM_face_triangulate(BMesh *bm, BMFace *f,
-                          BMFace **r_faces_new,
-                          int     *r_faces_new_tot,
-                          struct MemArena *sf_arena,
-                          const int quad_method, const int ngon_method,
-                          const bool use_tag) ATTR_NONNULL(1, 2);
+void  BM_face_triangulate(
+        BMesh *bm, BMFace *f,
+        BMFace **r_faces_new,
+        int     *r_faces_new_tot,
+        const int quad_method, const int ngon_method,
+        const bool use_tag,
+        struct MemArena *pf_arena) ATTR_NONNULL(1, 2);
 
 void  BM_face_splits_check_legal(BMesh *bm, BMFace *f, BMLoop *(*loops)[2], int len) ATTR_NONNULL();
 void  BM_face_splits_check_optimal(BMFace *f, BMLoop *(*loops)[2], int len) ATTR_NONNULL();
diff --git a/source/blender/bmesh/tools/bmesh_triangulate.c b/source/blender/bmesh/tools/bmesh_triangulate.c
index 446c03a..f927064 100644
--- a/source/blender/bmesh/tools/bmesh_triangulate.c
+++ b/source/blender/bmesh/tools/bmesh_triangulate.c
@@ -33,7 +33,7 @@
 #include "BLI_alloca.h"
 #include "BLI_memarena.h"
 #include "BLI_listbase.h"
-#include "BLI_scanfill.h"
+#include "BLI_polyfill2d.h"  /* only for define */
 
 #include "bmesh.h"
 
@@ -42,16 +42,22 @@
 /**
  * a version of #BM_face_triangulate that maps to #BMOpSlot
  */
-static void bm_face_triangulate_mapping(BMesh *bm, BMFace *face, MemArena *sf_arena,
-                                        const int quad_method, const int ngon_method,
-                                        const bool use_tag,
-                                        BMOperator *op, BMOpSlot *slot_facemap_out)
+static void bm_face_triangulate_mapping(
+        BMesh *bm, BMFace *face,
+        const int quad_method, const int ngon_method,
+        const bool use_tag,
+        BMOperator *op, BMOpSlot *slot_facemap_out,
+
+        MemArena *pf_arena)
 {
 	int faces_array_tot = face->len - 3;
 	BMFace  **faces_array = BLI_array_alloca(faces_array, faces_array_tot);
 	BLI_assert(face->len > 3);
 
-	BM_face_triangulate(bm, face, faces_array, &faces_array_tot, sf_arena, quad_method, ngon_method, use_tag);
+	BM_face_triangulate(
+	        bm, face, faces_array, &faces_array_tot,
+	        quad_method, ngon_method, use_tag,
+	        pf_arena);
 
 	if (faces_array_tot) {
 		int i;
@@ -63,22 +69,26 @@ static void bm_face_triangulate_mapping(BMesh *bm, BMFace *face, MemArena *sf_ar
 }
 
 
-void BM_mesh_triangulate(BMesh *bm, const int quad_method, const int ngon_method, const bool tag_only,
-                         BMOperator *op, BMOpSlot *slot_facemap_out)
+void BM_mesh_triangulate(
+        BMesh *bm, const int quad_method, const int ngon_method, const bool tag_only,
+        BMOperator *op, BMOpSlot *slot_facemap_out)
 {
 	BMIter iter;
 	BMFace *face;
-	MemArena *sf_arena;
+	MemArena *pf_arena;
 
-	sf_arena = BLI_memarena_new(BLI_SCANFILL_ARENA_SIZE, __func__);
+	pf_arena = BLI_memarena_new(BLI_POLYFILL_ARENA_SIZE, __func__);
 
 	if (slot_facemap_out) {
 		/* same as below but call: bm_face_triangulate_mapping() */
 		BM_ITER_MESH (face, &iter, bm, BM_FACES_OF_MESH) {
 			if (face->len > 3) {
 				if (tag_only == false || BM_elem_flag_test(face, BM_ELEM_TAG)) {
-					bm_face_triangulate_mapping(bm, face, sf_arena, quad_method, ngon_method, tag_only,
-					                            op, slot_facemap_out);
+					bm_face_triangulate_mapping(
+					        bm, face, quad_method,
+					        ngon_method, tag_only,
+					        op, slot_facemap_out,
+					        pf_arena);
 				}
 			}
 		}
@@ -87,11 +97,14 @@ void BM_mesh_triangulate(BMesh *bm, const int quad_method, const int ngon_method
 		BM_ITER_MESH (face, &iter, bm, BM_FACES_OF_MESH) {
 			if (face->len > 3) {
 				if (tag_only == false || BM_elem_flag_test(face, BM_ELEM_TAG)) {
-					BM_face_triangulate(bm, face, NULL, NULL, sf_arena, quad_method, ngon_method, tag_only);
+					BM_face_triangulate(
+					        bm, face, NULL, NULL,
+					        quad_method, ngon_method, tag_only,
+					        pf_arena);
 				}
 			}
 		}
 	}
 
-	BLI_memarena_free(sf_arena);
+	BLI_memarena_free(pf_arena);
 }




More information about the Bf-blender-cvs mailing list