diff options
Diffstat (limited to 'source/blender/bmesh')
-rw-r--r-- | source/blender/bmesh/bmesh.h | 2 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_core.c | 3 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_marking.c | 4 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mesh.c | 119 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mesh.h | 34 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mesh_conv.c | 51 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_operators.h | 2 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_polygon.c | 2 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_similar.c | 64 | ||||
-rw-r--r-- | source/blender/bmesh/tools/bmesh_intersect.c | 21 |
10 files changed, 115 insertions, 187 deletions
diff --git a/source/blender/bmesh/bmesh.h b/source/blender/bmesh/bmesh.h index 8b0b8a282f5..138b8b7c51f 100644 --- a/source/blender/bmesh/bmesh.h +++ b/source/blender/bmesh/bmesh.h @@ -84,7 +84,7 @@ * Edges and Vertices in BMesh are primitive structures. * * \note There can be more than one edge between two vertices in BMesh, - * though the rest of Blender (e.g. DerivedMesh, CDDM, CCGSubSurf, etc) does not support this. + * though the rest of Blender (i.e. DNA and evaluated Mesh) does not support this. * So it should only occur temporarily during editing operations. * * diff --git a/source/blender/bmesh/intern/bmesh_core.c b/source/blender/bmesh/intern/bmesh_core.c index 97f1bad08b7..bb5199fa0c8 100644 --- a/source/blender/bmesh/intern/bmesh_core.c +++ b/source/blender/bmesh/intern/bmesh_core.c @@ -36,7 +36,8 @@ #include "BLT_translation.h" -#include "BKE_DerivedMesh.h" +#include "DNA_meshdata_types.h" + #include "BKE_mesh.h" #include "bmesh.h" diff --git a/source/blender/bmesh/intern/bmesh_marking.c b/source/blender/bmesh/intern/bmesh_marking.c index 10a03050d4b..1e53180396e 100644 --- a/source/blender/bmesh/intern/bmesh_marking.c +++ b/source/blender/bmesh/intern/bmesh_marking.c @@ -863,7 +863,7 @@ void BM_editselection_normal(BMEditSelection *ese, float r_normal[3]) /* Calculate a plane that is rightangles to the edge/vert/faces normal * also make the plane run along an axis that is related to the geometry, - * because this is used for the manipulators Y axis. */ + * because this is used for the gizmos Y axis. */ void BM_editselection_plane(BMEditSelection *ese, float r_plane[3]) { if (ese->htype == BM_VERT) { @@ -895,7 +895,7 @@ void BM_editselection_plane(BMEditSelection *ese, float r_plane[3]) else { /* the plane is simple, it runs along the edge * however selecting different edges can swap the direction of the y axis. - * this makes it less likely for the y axis of the manipulator + * this makes it less likely for the y axis of the gizmo * (running along the edge).. to flip less often. * at least its more predictable */ if (eed->v2->co[1] > eed->v1->co[1]) { /* check which to do first */ diff --git a/source/blender/bmesh/intern/bmesh_mesh.c b/source/blender/bmesh/intern/bmesh_mesh.c index 185e5412b3d..442cd9275ec 100644 --- a/source/blender/bmesh/intern/bmesh_mesh.c +++ b/source/blender/bmesh/intern/bmesh_mesh.c @@ -1041,58 +1041,6 @@ void BM_edges_sharp_from_angle_set(BMesh *bm, const float split_angle) bm_mesh_edges_sharp_tag(bm, NULL, NULL, NULL, split_angle, true); } -static void UNUSED_FUNCTION(bm_mdisps_space_set)(Object *ob, BMesh *bm, int from, int to) -{ - /* switch multires data out of tangent space */ - if (CustomData_has_layer(&bm->ldata, CD_MDISPS)) { - BMEditMesh *em = BKE_editmesh_create(bm, false); - DerivedMesh *dm = CDDM_from_editbmesh(em, true, false); - MDisps *mdisps; - BMFace *f; - BMIter iter; - // int i = 0; // UNUSED - - multires_set_space(dm, ob, from, to); - - mdisps = CustomData_get_layer(&dm->loopData, CD_MDISPS); - - BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) { - BMLoop *l; - BMIter liter; - BM_ITER_ELEM (l, &liter, f, BM_LOOPS_OF_FACE) { - MDisps *lmd = CustomData_bmesh_get(&bm->ldata, l->head.data, CD_MDISPS); - - if (!lmd->disps) { - printf("%s: warning - 'lmd->disps' == NULL\n", __func__); - } - - if (lmd->disps && lmd->totdisp == mdisps->totdisp) { - memcpy(lmd->disps, mdisps->disps, sizeof(float) * 3 * lmd->totdisp); - } - else if (mdisps->disps) { - if (lmd->disps) - MEM_freeN(lmd->disps); - - lmd->disps = MEM_dupallocN(mdisps->disps); - lmd->totdisp = mdisps->totdisp; - lmd->level = mdisps->level; - } - - mdisps++; - // i += 1; - } - } - - dm->needsFree = 1; - dm->release(dm); - - /* setting this to NULL prevents BKE_editmesh_free from freeing it */ - em->bm = NULL; - BKE_editmesh_free(em); - MEM_freeN(em); - } -} - /** * \brief BMesh Begin Edit * @@ -1159,7 +1107,7 @@ void bmesh_edit_end(BMesh *bm, BMOpTypeFlag type_flag) } } -void BM_mesh_elem_index_ensure(BMesh *bm, const char htype) +void BM_mesh_elem_index_ensure_ex(BMesh *bm, const char htype, int elem_offset[4]) { const char htype_needed = bm->elem_index_dirty & htype; @@ -1172,15 +1120,15 @@ void BM_mesh_elem_index_ensure(BMesh *bm, const char htype) } if (htype & BM_VERT) { - if (bm->elem_index_dirty & BM_VERT) { + if ((bm->elem_index_dirty & BM_VERT) || (elem_offset && elem_offset[0])) { BMIter iter; BMElem *ele; - int index; - BM_ITER_MESH_INDEX (ele, &iter, bm, BM_VERTS_OF_MESH, index) { - BM_elem_index_set(ele, index); /* set_ok */ + int index = elem_offset ? elem_offset[0] : 0; + BM_ITER_MESH (ele, &iter, bm, BM_VERTS_OF_MESH) { + BM_elem_index_set(ele, index++); /* set_ok */ } - BLI_assert(index == bm->totvert); + BLI_assert(elem_offset || index == bm->totvert); } else { // printf("%s: skipping vert index calc!\n", __func__); @@ -1188,15 +1136,15 @@ void BM_mesh_elem_index_ensure(BMesh *bm, const char htype) } if (htype & BM_EDGE) { - if (bm->elem_index_dirty & BM_EDGE) { + if ((bm->elem_index_dirty & BM_EDGE) || (elem_offset && elem_offset[1])) { BMIter iter; BMElem *ele; - int index; - BM_ITER_MESH_INDEX (ele, &iter, bm, BM_EDGES_OF_MESH, index) { - BM_elem_index_set(ele, index); /* set_ok */ + int index = elem_offset ? elem_offset[1] : 0; + BM_ITER_MESH (ele, &iter, bm, BM_EDGES_OF_MESH) { + BM_elem_index_set(ele, index++); /* set_ok */ } - BLI_assert(index == bm->totedge); + BLI_assert(elem_offset || index == bm->totedge); } else { // printf("%s: skipping edge index calc!\n", __func__); @@ -1204,19 +1152,19 @@ void BM_mesh_elem_index_ensure(BMesh *bm, const char htype) } if (htype & (BM_FACE | BM_LOOP)) { - if (bm->elem_index_dirty & (BM_FACE | BM_LOOP)) { + if ((bm->elem_index_dirty & (BM_FACE | BM_LOOP)) || (elem_offset && (elem_offset[2] || elem_offset[3]))) { BMIter iter; BMElem *ele; const bool update_face = (htype & BM_FACE) && (bm->elem_index_dirty & BM_FACE); const bool update_loop = (htype & BM_LOOP) && (bm->elem_index_dirty & BM_LOOP); - int index; - int index_loop = 0; + int index_loop = elem_offset ? elem_offset[2] : 0; + int index = elem_offset ? elem_offset[3] : 0; - BM_ITER_MESH_INDEX (ele, &iter, bm, BM_FACES_OF_MESH, index) { + BM_ITER_MESH (ele, &iter, bm, BM_FACES_OF_MESH) { if (update_face) { - BM_elem_index_set(ele, index); /* set_ok */ + BM_elem_index_set(ele, index++); /* set_ok */ } if (update_loop) { @@ -1229,9 +1177,9 @@ void BM_mesh_elem_index_ensure(BMesh *bm, const char htype) } } - BLI_assert(index == bm->totface); + BLI_assert(elem_offset || !update_face || index == bm->totface); if (update_loop) { - BLI_assert(index_loop == bm->totloop); + BLI_assert(elem_offset || !update_loop || index_loop == bm->totloop); } } else { @@ -1241,6 +1189,37 @@ void BM_mesh_elem_index_ensure(BMesh *bm, const char htype) finally: bm->elem_index_dirty &= ~htype; + if (elem_offset) { + if (htype & BM_VERT) { + elem_offset[0] += bm->totvert; + if (elem_offset[0] != bm->totvert) { + bm->elem_index_dirty |= BM_VERT; + } + } + if (htype & BM_EDGE) { + elem_offset[1] += bm->totedge; + if (elem_offset[1] != bm->totedge) { + bm->elem_index_dirty |= BM_EDGE; + } + } + if (htype & BM_LOOP) { + elem_offset[2] += bm->totloop; + if (elem_offset[2] != bm->totloop) { + bm->elem_index_dirty |= BM_LOOP; + } + } + if (htype & BM_FACE) { + elem_offset[3] += bm->totface; + if (elem_offset[3] != bm->totface) { + bm->elem_index_dirty |= BM_FACE; + } + } + } +} + +void BM_mesh_elem_index_ensure(BMesh *bm, const char htype) +{ + BM_mesh_elem_index_ensure_ex(bm, htype, NULL); } diff --git a/source/blender/bmesh/intern/bmesh_mesh.h b/source/blender/bmesh/intern/bmesh_mesh.h index d449aac04f5..af7745e4c9f 100644 --- a/source/blender/bmesh/intern/bmesh_mesh.h +++ b/source/blender/bmesh/intern/bmesh_mesh.h @@ -60,6 +60,7 @@ void BM_edges_sharp_from_angle_set(BMesh *bm, const float split_angle); void bmesh_edit_begin(BMesh *bm, const BMOpTypeFlag type_flag); void bmesh_edit_end(BMesh *bm, const BMOpTypeFlag type_flag); +void BM_mesh_elem_index_ensure_ex(BMesh *bm, const char htype, int elem_offset[4]); void BM_mesh_elem_index_ensure(BMesh *bm, const char hflag); void BM_mesh_elem_index_validate( BMesh *bm, const char *location, const char *func, @@ -110,25 +111,22 @@ extern const BMAllocTemplate bm_mesh_chunksize_default; #define BMALLOC_TEMPLATE_FROM_BM(bm) { (CHECK_TYPE_INLINE(bm, BMesh *), \ (bm)->totvert), (bm)->totedge, (bm)->totloop, (bm)->totface} -#define BMALLOC_TEMPLATE_FROM_ME(me) { (CHECK_TYPE_INLINE(me, Mesh *), \ - (me)->totvert), (me)->totedge, (me)->totloop, (me)->totpoly} - -#define _VA_BMALLOC_TEMPLATE_FROM_DM_1(dm) { \ - (CHECK_TYPE_INLINE(dm, DerivedMesh *), \ - (dm)->getNumVerts(dm)), \ - (dm)->getNumEdges(dm), \ - (dm)->getNumLoops(dm), \ - (dm)->getNumPolys(dm), \ + +#define _VA_BMALLOC_TEMPLATE_FROM_ME_1(me) { \ + (CHECK_TYPE_INLINE(me, Mesh *), \ + (me)->totvert), \ + (me)->totedge, \ + (me)->totloop, \ + (me)->totpoly, \ } -#define _VA_BMALLOC_TEMPLATE_FROM_DM_2(dm_a, dm_b) { \ - (CHECK_TYPE_INLINE(dm_a, DerivedMesh *), \ - CHECK_TYPE_INLINE(dm_b, DerivedMesh *), \ - (dm_a)->getNumVerts(dm_a)) + (dm_b)->getNumVerts(dm_b), \ - (dm_a)->getNumEdges(dm_a) + (dm_b)->getNumEdges(dm_b), \ - (dm_a)->getNumLoops(dm_a) + (dm_b)->getNumLoops(dm_b), \ - (dm_a)->getNumPolys(dm_a) + (dm_b)->getNumPolys(dm_b), \ +#define _VA_BMALLOC_TEMPLATE_FROM_ME_2(me_a, me_b) { \ + (CHECK_TYPE_INLINE(me_a, Mesh *), \ + CHECK_TYPE_INLINE(me_b, Mesh *), \ + (me_a)->totvert + (me_b)->totvert), \ + (me_a)->totedge + (me_b)->totedge, \ + (me_a)->totloop + (me_b)->totloop, \ + (me_a)->totpoly + (me_b)->totpoly, \ } - -#define BMALLOC_TEMPLATE_FROM_DM(...) VA_NARGS_CALL_OVERLOAD(_VA_BMALLOC_TEMPLATE_FROM_DM_, __VA_ARGS__) +#define BMALLOC_TEMPLATE_FROM_ME(...) VA_NARGS_CALL_OVERLOAD(_VA_BMALLOC_TEMPLATE_FROM_ME_, __VA_ARGS__) #endif /* __BMESH_MESH_H__ */ diff --git a/source/blender/bmesh/intern/bmesh_mesh_conv.c b/source/blender/bmesh/intern/bmesh_mesh_conv.c index 340b0b70772..7e1e1c53a8f 100644 --- a/source/blender/bmesh/intern/bmesh_mesh_conv.c +++ b/source/blender/bmesh/intern/bmesh_mesh_conv.c @@ -88,6 +88,7 @@ #include "BLI_math_vector.h" #include "BKE_mesh.h" +#include "BKE_mesh_runtime.h" #include "BKE_customdata.h" #include "BKE_multires.h" @@ -98,42 +99,6 @@ #include "bmesh.h" #include "intern/bmesh_private.h" /* for element checking */ -/** - * Currently this is only used for Python scripts - * which may fail to keep matching UV/TexFace layers. - * - * \note This should only perform any changes in exceptional cases, - * if we need this to be faster we could inline #BM_data_layer_add and only - * call #update_data_blocks once at the end. - */ -void BM_mesh_cd_validate(BMesh *bm) -{ - int totlayer_mtex = CustomData_number_of_layers(&bm->pdata, CD_MTEXPOLY); - int totlayer_uv = CustomData_number_of_layers(&bm->ldata, CD_MLOOPUV); - - if (LIKELY(totlayer_mtex == totlayer_uv)) { - /* pass */ - } - else if (totlayer_mtex < totlayer_uv) { - const int uv_index_first = CustomData_get_layer_index(&bm->ldata, CD_MLOOPUV); - do { - const char *from_name = bm->ldata.layers[uv_index_first + totlayer_mtex].name; - BM_data_layer_add_named(bm, &bm->pdata, CD_MTEXPOLY, from_name); - CustomData_set_layer_unique_name(&bm->pdata, totlayer_mtex); - } while (totlayer_uv != ++totlayer_mtex); - } - else if (totlayer_uv < totlayer_mtex) { - const int mtex_index_first = CustomData_get_layer_index(&bm->pdata, CD_MTEXPOLY); - do { - const char *from_name = bm->pdata.layers[mtex_index_first + totlayer_uv].name; - BM_data_layer_add_named(bm, &bm->ldata, CD_MLOOPUV, from_name); - CustomData_set_layer_unique_name(&bm->ldata, totlayer_uv); - } while (totlayer_mtex != ++totlayer_uv); - } - - BLI_assert(totlayer_mtex == totlayer_uv); -} - void BM_mesh_cd_flag_ensure(BMesh *bm, Mesh *mesh, const char cd_flag) { const char cd_flag_all = BM_mesh_cd_flag_from_bmesh(bm) | cd_flag; @@ -243,7 +208,7 @@ void BM_mesh_bm_from_me( BMEdge *e, **etable = NULL; BMFace *f, **ftable = NULL; float (*keyco)[3] = NULL; - int totuv, totloops, i; + int totloops, i; if (!me || !me->totvert) { if (me && is_new) { /*no verts? still copy customdata layout*/ @@ -265,13 +230,6 @@ void BM_mesh_bm_from_me( CustomData_copy(&me->edata, &bm->edata, CD_MASK_BMESH, CD_CALLOC, 0); CustomData_copy(&me->ldata, &bm->ldata, CD_MASK_BMESH, CD_CALLOC, 0); CustomData_copy(&me->pdata, &bm->pdata, CD_MASK_BMESH, CD_CALLOC, 0); - - /* make sure uv layer names are consisten */ - totuv = CustomData_number_of_layers(&bm->pdata, CD_MTEXPOLY); - for (i = 0; i < totuv; i++) { - int li = CustomData_get_layer_index_n(&bm->pdata, CD_MTEXPOLY, i); - CustomData_set_layer_name(&bm->ldata, CD_MLOOPUV, i, bm->pdata.layers[li].name); - } } /* -------------------------------------------------------------------- */ @@ -592,7 +550,7 @@ BLI_INLINE void bmesh_quick_edgedraw_flag(MEdge *med, BMEdge *e) /** * - * \param bmain May be NULL in case \a calc_object_remap parameter option is set. + * \param bmain May be NULL in case \a calc_object_remap parameter option is not set. */ void BM_mesh_bm_to_me( Main *bmain, BMesh *bm, Mesh *me, @@ -984,4 +942,7 @@ void BM_mesh_bm_to_me( /* topology could be changed, ensure mdisps are ok */ multires_topology_changed(me); + + /* to be removed as soon as COW is enabled by default. */ + BKE_mesh_runtime_clear_geometry(me); } diff --git a/source/blender/bmesh/intern/bmesh_operators.h b/source/blender/bmesh/intern/bmesh_operators.h index b670f31ad9f..80b57eb3565 100644 --- a/source/blender/bmesh/intern/bmesh_operators.h +++ b/source/blender/bmesh/intern/bmesh_operators.h @@ -77,13 +77,13 @@ enum { /* similar face selection slot values */ enum { SIMFACE_MATERIAL = 201, - SIMFACE_IMAGE, SIMFACE_AREA, SIMFACE_SIDES, SIMFACE_PERIMETER, SIMFACE_NORMAL, SIMFACE_COPLANAR, SIMFACE_SMOOTH, + SIMFACE_FACEMAP, #ifdef WITH_FREESTYLE SIMFACE_FREESTYLE #endif diff --git a/source/blender/bmesh/intern/bmesh_polygon.c b/source/blender/bmesh/intern/bmesh_polygon.c index 7cbc6461667..421b2adc3a7 100644 --- a/source/blender/bmesh/intern/bmesh_polygon.c +++ b/source/blender/bmesh/intern/bmesh_polygon.c @@ -487,7 +487,7 @@ void BM_face_calc_tangent_vert_diagonal(const BMFace *f, float r_tangent[3]) } /** - * Compute a meaningful direction along the face (use for manipulator axis). + * Compute a meaningful direction along the face (use for gizmo axis). * * \note Callers shouldn't depend on the *exact* method used here. */ diff --git a/source/blender/bmesh/operators/bmo_similar.c b/source/blender/bmesh/operators/bmo_similar.c index 454d6d8c6c8..0cd17258834 100644 --- a/source/blender/bmesh/operators/bmo_similar.c +++ b/source/blender/bmesh/operators/bmo_similar.c @@ -106,11 +106,28 @@ void bmo_similar_faces_exec(BMesh *bm, BMOperator *op) const float thresh = BMO_slot_float_get(op->slots_in, "thresh"); const float thresh_radians = thresh * (float)M_PI; const int compare = BMO_slot_int_get(op->slots_in, "compare"); + /* for comparison types that use custom-data */ + int cd_offset = -1; /* initial_elem - other_elem */ float delta_fl; int delta_i; + if (type == SIMFACE_FACEMAP) { + cd_offset = CustomData_get_offset(&bm->pdata, CD_FACEMAP); + if (cd_offset == -1) { + return; + } + } +#ifdef WITH_FREESTYLE + else if (type == SIMFACE_FREESTYLE) { + cd_offset = CustomData_get_offset(&bm->pdata, CD_FREESTYLE_FACE); + if (cd_offset == -1) { + return; + } + } +#endif + num_total = BM_mesh_elem_count(bm, BM_FACE); /* @@ -145,7 +162,7 @@ void bmo_similar_faces_exec(BMesh *bm, BMOperator *op) * Save us some computation burden: In case of perimeter/area/coplanar selection we compute * only once. */ - if (type == SIMFACE_PERIMETER || type == SIMFACE_AREA || type == SIMFACE_COPLANAR || type == SIMFACE_IMAGE) { + if (type == SIMFACE_PERIMETER || type == SIMFACE_AREA || type == SIMFACE_COPLANAR) { for (i = 0; i < num_total; i++) { switch (type) { case SIMFACE_PERIMETER: @@ -164,14 +181,6 @@ void bmo_similar_faces_exec(BMesh *bm, BMOperator *op) case SIMFACE_AREA: f_ext[i].area = BM_face_calc_area(f_ext[i].f); break; - - case SIMFACE_IMAGE: - f_ext[i].t = NULL; - if (CustomData_has_layer(&(bm->pdata), CD_MTEXPOLY)) { - MTexPoly *mtpoly = CustomData_bmesh_get(&bm->pdata, f_ext[i].f->head.data, CD_MTEXPOLY); - f_ext[i].t = mtpoly->tpage; - } - break; } } } @@ -190,14 +199,6 @@ void bmo_similar_faces_exec(BMesh *bm, BMOperator *op) cont = false; } break; - - case SIMFACE_IMAGE: - if (f_ext[i].t == f_ext[indices[idx]].t) { - BMO_face_flag_enable(bm, fm, FACE_MARK); - cont = false; - } - break; - case SIMFACE_NORMAL: angle = angle_normalized_v3v3(fs->no, fm->no); /* if the angle between the normals -> 0 */ if (angle <= thresh_radians) { @@ -254,20 +255,29 @@ void bmo_similar_faces_exec(BMesh *bm, BMOperator *op) cont = false; } break; + case SIMFACE_FACEMAP: + { + BLI_assert(cd_offset != -1); + const int *fmap1 = BM_ELEM_CD_GET_VOID_P(fs, cd_offset); + const int *fmap2 = BM_ELEM_CD_GET_VOID_P(fm, cd_offset); + if (*fmap1 == *fmap2) { + BMO_face_flag_enable(bm, fm, FACE_MARK); + cont = false; + } + break; + } #ifdef WITH_FREESTYLE case SIMFACE_FREESTYLE: - if (CustomData_has_layer(&bm->pdata, CD_FREESTYLE_FACE)) { - FreestyleEdge *ffa1, *ffa2; - - ffa1 = CustomData_bmesh_get(&bm->pdata, fs->head.data, CD_FREESTYLE_FACE); - ffa2 = CustomData_bmesh_get(&bm->pdata, fm->head.data, CD_FREESTYLE_FACE); - - if (ffa1 && ffa2 && (ffa1->flag & FREESTYLE_FACE_MARK) == (ffa2->flag & FREESTYLE_FACE_MARK)) { - BMO_face_flag_enable(bm, fm, FACE_MARK); - cont = false; - } + { + BLI_assert(cd_offset != -1); + const FreestyleEdge *ffa1 = BM_ELEM_CD_GET_VOID_P(fs, cd_offset); + const FreestyleEdge *ffa2 = BM_ELEM_CD_GET_VOID_P(fm, cd_offset); + if ((ffa1->flag & FREESTYLE_FACE_MARK) == (ffa2->flag & FREESTYLE_FACE_MARK)) { + BMO_face_flag_enable(bm, fm, FACE_MARK); + cont = false; } break; + } #endif default: BLI_assert(0); diff --git a/source/blender/bmesh/tools/bmesh_intersect.c b/source/blender/bmesh/tools/bmesh_intersect.c index b1a8c3ccb86..a35bb81a1c2 100644 --- a/source/blender/bmesh/tools/bmesh_intersect.c +++ b/source/blender/bmesh/tools/bmesh_intersect.c @@ -81,12 +81,6 @@ /* use accelerated overlap check */ #define USE_BVH -// #define USE_BOOLEAN_RAYCAST_DRAW - -#ifdef USE_BOOLEAN_RAYCAST_DRAW -/* insert bl_debug_draw_quad_clear... here */ -#endif - // #define USE_DUMP static void tri_v3_scale( @@ -1006,10 +1000,6 @@ bool BM_mesh_intersect( int i_a, i_b; #endif -#ifdef USE_BOOLEAN_RAYCAST_DRAW - bl_debug_draw_quad_clear(); -#endif - s.bm = bm; s.edgetri_cache = BLI_ghash_new(BLI_ghashutil_inthash_v4_p, BLI_ghashutil_inthash_v4_cmp, __func__); @@ -1607,17 +1597,6 @@ bool BM_mesh_intersect( do_flip = (side == 0); break; } - -#ifdef USE_BOOLEAN_RAYCAST_DRAW - { - uint colors[4] = {0x00000000, 0xffffffff, 0xff000000, 0x0000ff}; - float co_other[3] = {UNPACK3(co)}; - co_other[0] += 1000.0f; - bl_debug_color_set(colors[(hits & 1) == 1]); - bl_debug_draw_edge_add(co, co_other); - } -#endif - } if (do_remove) { |