diff --git a/source/blender/editors/mesh/editmesh_knife.c b/source/blender/editors/mesh/editmesh_knife.c index df0ca6e3cae..c5bfeb57eb1 100644 --- a/source/blender/editors/mesh/editmesh_knife.c +++ b/source/blender/editors/mesh/editmesh_knife.c @@ -196,7 +196,10 @@ typedef struct KnifeTool_OpData { KnifePosData prev; /* last added cut (a line draws from the cursor to this) */ KnifePosData init; /* the first point in the cut-list, used for closing the loop */ - int totkedge, totkvert; + /** Number of knife edges `kedges`. */ + int totkedge; + /** Number of knife vertices, `kverts`. */ + int totkvert; BLI_mempool *refs; @@ -243,8 +246,8 @@ enum { KNF_MODAL_MIDPOINT_ON, KNF_MODAL_MIDPOINT_OFF, KNF_MODAL_NEW_CUT, - KNF_MODEL_IGNORE_SNAP_ON, - KNF_MODEL_IGNORE_SNAP_OFF, + KNF_MODAL_IGNORE_SNAP_ON, + KNF_MODAL_IGNORE_SNAP_OFF, KNF_MODAL_ADD_CUT, KNF_MODAL_ANGLE_SNAP_TOGGLE, KNF_MODAL_CUT_THROUGH_TOGGLE, @@ -292,7 +295,7 @@ static void knife_update_header(bContext *C, wmOperator *op, KnifeTool_OpData *k WM_MODALKEY(KNF_MODAL_NEW_CUT), WM_MODALKEY(KNF_MODAL_MIDPOINT_ON), WM_bool_as_string(kcd->snap_midpoints), - WM_MODALKEY(KNF_MODEL_IGNORE_SNAP_ON), + WM_MODALKEY(KNF_MODAL_IGNORE_SNAP_ON), WM_bool_as_string(kcd->ignore_edge_snapping), WM_MODALKEY(KNF_MODAL_ANGLE_SNAP_TOGGLE), WM_bool_as_string(kcd->angle_snapping), @@ -345,11 +348,11 @@ static void knife_pos_data_clear(KnifePosData *kpd) static ListBase *knife_empty_list(KnifeTool_OpData *kcd) { - ListBase *lst; + ListBase *list; - lst = BLI_memarena_alloc(kcd->arena, sizeof(ListBase)); - BLI_listbase_clear(lst); - return lst; + list = BLI_memarena_alloc(kcd->arena, sizeof(ListBase)); + BLI_listbase_clear(list); + return list; } static void knife_append_list(KnifeTool_OpData *kcd, ListBase *lst, void *elem) @@ -554,22 +557,22 @@ static void knife_start_cut(KnifeTool_OpData *kcd) static ListBase *knife_get_face_kedges(KnifeTool_OpData *kcd, BMFace *f) { - ListBase *lst = BLI_ghash_lookup(kcd->kedgefacemap, f); + ListBase *list = BLI_ghash_lookup(kcd->kedgefacemap, f); - if (!lst) { + if (!list) { BMIter bmiter; BMEdge *e; - lst = knife_empty_list(kcd); + list = knife_empty_list(kcd); BM_ITER_ELEM (e, &bmiter, f, BM_EDGES_OF_FACE) { - knife_append_list(kcd, lst, get_bm_knife_edge(kcd, e)); + knife_append_list(kcd, list, get_bm_knife_edge(kcd, e)); } - BLI_ghash_insert(kcd->kedgefacemap, f, lst); + BLI_ghash_insert(kcd->kedgefacemap, f, list); } - return lst; + return list; } static void knife_edge_append_face(KnifeTool_OpData *kcd, KnifeEdge *kfe, BMFace *f) @@ -750,13 +753,13 @@ static void add_hit_to_facehits(KnifeTool_OpData *kcd, BMFace *f, KnifeLineHit *hit) { - ListBase *lst = BLI_ghash_lookup(facehits, f); + ListBase *list = BLI_ghash_lookup(facehits, f); - if (!lst) { - lst = knife_empty_list(kcd); - BLI_ghash_insert(facehits, f, lst); + if (!list) { + list = knife_empty_list(kcd); + BLI_ghash_insert(facehits, f, list); } - knife_append_list_no_dup(kcd, lst, hit); + knife_append_list_no_dup(kcd, list, hit); } /** @@ -891,7 +894,7 @@ static void knife_add_cut(KnifeTool_OpData *kcd) BMFace *f; Ref *r; GHashIterator giter; - ListBase *lst; + ListBase *list; prepare_linehits_for_cut(kcd); if (kcd->totlinehit == 0) { @@ -926,8 +929,8 @@ static void knife_add_cut(KnifeTool_OpData *kcd) * the v and the kfe or f fields will be non-NULL. */ GHASH_ITER (giter, facehits) { f = (BMFace *)BLI_ghashIterator_getKey(&giter); - lst = (ListBase *)BLI_ghashIterator_getValue(&giter); - knife_cut_face(kcd, f, lst); + list = (ListBase *)BLI_ghashIterator_getValue(&giter); + knife_cut_face(kcd, f, list); } /* set up for next cut */ @@ -1246,7 +1249,7 @@ static bool knife_ray_intersect_face(KnifeTool_OpData *kcd, float se1[2], se2[2]; float d, lambda; BMLoop **tri; - ListBase *lst; + ListBase *list; Ref *ref; KnifeEdge *kfe; @@ -1281,8 +1284,8 @@ static bool knife_ray_intersect_face(KnifeTool_OpData *kcd, } interp_v3_v3v3v3_uv(hit_cageco, lv1, lv2, lv3, ray_tri_uv); /* Now check that far enough away from verts and edges */ - lst = knife_get_face_kedges(kcd, f); - for (ref = lst->first; ref; ref = ref->next) { + list = knife_get_face_kedges(kcd, f); + for (ref = list->first; ref; ref = ref->next) { kfe = ref->ref; knife_project_v2(kcd, kfe->v1->cageco, se1); knife_project_v2(kcd, kfe->v2->cageco, se2); @@ -1546,7 +1549,7 @@ static void knife_find_line_hits(KnifeTool_OpData *kcd) BMFace *f; KnifeEdge *kfe; KnifeVert *v; - ListBase *lst; + ListBase *list; Ref *ref; KnifeLineHit *linehits = NULL; BLI_array_declare(linehits); @@ -1650,8 +1653,8 @@ static void knife_find_line_hits(KnifeTool_OpData *kcd) /* don't care what the value is except that it is non-NULL, for iterator */ BLI_smallhash_insert(&faces, (uintptr_t)f, f); - lst = knife_get_face_kedges(kcd, f); - for (ref = lst->first; ref; ref = ref->next) { + list = knife_get_face_kedges(kcd, f); + for (ref = list->first; ref; ref = ref->next) { kfe = ref->ref; if (BLI_smallhash_haskey(&kfes, (uintptr_t)kfe)) { continue; @@ -1939,15 +1942,15 @@ static int knife_sample_screen_density(KnifeTool_OpData *kcd, const float radius if (f && !is_space) { const float radius_sq = radius * radius; - ListBase *lst; + ListBase *list; Ref *ref; float dis_sq; int c = 0; knife_project_v2(kcd, cageco, sco); - lst = knife_get_face_kedges(kcd, f); - for (ref = lst->first; ref; ref = ref->next) { + list = knife_get_face_kedges(kcd, f); + for (ref = list->first; ref; ref = ref->next) { KnifeEdge *kfe = ref->ref; int i; @@ -2009,15 +2012,15 @@ static KnifeEdge *knife_find_closest_edge_of_face(KnifeTool_OpData *kcd, const float maxdist_sq = maxdist * maxdist; KnifeEdge *cure = NULL; float cur_cagep[3]; - ListBase *lst; + ListBase *list; Ref *ref; float dis_sq, curdis_sq = FLT_MAX; knife_project_v2(kcd, cagep, sco); /* look through all edges associated with this face */ - lst = knife_get_face_kedges(kcd, f); - for (ref = lst->first; ref; ref = ref->next) { + list = knife_get_face_kedges(kcd, f); + for (ref = list->first; ref; ref = ref->next) { KnifeEdge *kfe = ref->ref; float kfv1_sco[2], kfv2_sco[2], test_cagep[3]; float lambda; @@ -2118,7 +2121,7 @@ static KnifeVert *knife_find_closest_vert_of_face(KnifeTool_OpData *kcd, } const float maxdist_sq = maxdist * maxdist; - ListBase *lst; + ListBase *list; Ref *ref; KnifeVert *curv = NULL; float cur_kfv_sco[2]; @@ -2126,8 +2129,8 @@ static KnifeVert *knife_find_closest_vert_of_face(KnifeTool_OpData *kcd, knife_project_v2(kcd, cagep, sco); - lst = knife_get_face_kedges(kcd, f); - for (ref = lst->first; ref; ref = ref->next) { + list = knife_get_face_kedges(kcd, f); + for (ref = list->first; ref; ref = ref->next) { KnifeEdge *kfe = ref->ref; int i; @@ -2455,7 +2458,7 @@ static void knife_make_cuts(KnifeTool_OpData *kcd) KnifeVert *kfv; BMFace *f; BMEdge *e, *enew; - ListBase *lst; + ListBase *list; Ref *ref; float pct; SmallHashIter hiter; @@ -2481,12 +2484,12 @@ static void knife_make_cuts(KnifeTool_OpData *kcd) if (!f || kfe->e) { continue; } - lst = BLI_smallhash_lookup(fhash, (uintptr_t)f); - if (!lst) { - lst = knife_empty_list(kcd); - BLI_smallhash_insert(fhash, (uintptr_t)f, lst); + list = BLI_smallhash_lookup(fhash, (uintptr_t)f); + if (!list) { + list = knife_empty_list(kcd); + BLI_smallhash_insert(fhash, (uintptr_t)f, list); } - knife_append_list(kcd, lst, kfe); + knife_append_list(kcd, list, kfe); } /* put list of splitting vertices for an edge into ehash, keyed by edge */ @@ -2501,24 +2504,24 @@ static void knife_make_cuts(KnifeTool_OpData *kcd) if (!e) { continue; } - lst = BLI_smallhash_lookup(ehash, (uintptr_t)e); - if (!lst) { - lst = knife_empty_list(kcd); - BLI_smallhash_insert(ehash, (uintptr_t)e, lst); + list = BLI_smallhash_lookup(ehash, (uintptr_t)e); + if (!list) { + list = knife_empty_list(kcd); + BLI_smallhash_insert(ehash, (uintptr_t)e, list); } /* there can be more than one kfe in kfv's list with same e */ - if (!find_ref(lst, kfv)) { - knife_append_list(kcd, lst, kfv); + if (!find_ref(list, kfv)) { + knife_append_list(kcd, list, kfv); } } } /* split bmesh edges where needed */ - for (lst = BLI_smallhash_iternew(ehash, &hiter, (uintptr_t *)&e); lst; - lst = BLI_smallhash_iternext(&hiter, (uintptr_t *)&e)) { - BLI_listbase_sort_r(lst, sort_verts_by_dist_cb, e->v1->co); + for (list = BLI_smallhash_iternew(ehash, &hiter, (uintptr_t *)&e); list; + list = BLI_smallhash_iternext(&hiter, (uintptr_t *)&e)) { + BLI_listbase_sort_r(list, sort_verts_by_dist_cb, e->v1->co); - for (ref = lst->first; ref; ref = ref->next) { + for (ref = list->first; ref; ref = ref->next) { kfv = ref->ref; pct = line_point_factor_v3(kfv->co, e->v1->co, e->v2->co); kfv->v = BM_edge_split(bm, e, e->v1, &enew, pct); @@ -2530,9 +2533,9 @@ static void knife_make_cuts(KnifeTool_OpData *kcd) } /* do cuts for each face */ - for (lst = BLI_smallhash_iternew(fhash, &hiter, (uintptr_t *)&f); lst; - lst = BLI_smallhash_iternext(&hiter, (uintptr_t *)&f)) { - knife_make_face_cuts(kcd, f, lst); + for (list = BLI_smallhash_iternew(fhash, &hiter, (uintptr_t *)&f); list; + list = BLI_smallhash_iternext(&hiter, (uintptr_t *)&f)) { + knife_make_face_cuts(kcd, f, list); } BLI_smallhash_release(fhash); @@ -2789,8 +2792,8 @@ wmKeyMap *knifetool_modal_keymap(wmKeyConfig *keyconf) {KNF_MODAL_CONFIRM, "CONFIRM", 0, "Confirm", ""}, {KNF_MODAL_MIDPOINT_ON, "SNAP_MIDPOINTS_ON", 0, "Snap to Midpoints On", ""}, {KNF_MODAL_MIDPOINT_OFF, "SNAP_MIDPOINTS_OFF", 0, "Snap to Midpoints Off", ""}, - {KNF_MODEL_IGNORE_SNAP_ON, "IGNORE_SNAP_ON", 0, "Ignore Snapping On", ""}, - {KNF_MODEL_IGNORE_SNAP_OFF, "IGNORE_SNAP_OFF", 0, "Ignore Snapping Off", ""}, + {KNF_MODAL_IGNORE_SNAP_ON, "IGNORE_SNAP_ON", 0, "Ignore Snapping On", ""}, + {KNF_MODAL_IGNORE_SNAP_OFF, "IGNORE_SNAP_OFF", 0, "Ignore Snapping Off", ""}, {KNF_MODAL_ANGLE_SNAP_TOGGLE, "ANGLE_SNAP_TOGGLE", 0, "Toggle Angle Snapping", ""}, {KNF_MODAL_CUT_THROUGH_TOGGLE, "CUT_THROUGH_TOGGLE", 0, "Toggle Cut Through", ""}, {KNF_MODAL_NEW_CUT, "NEW_CUT", 0, "End Current Cut", ""}, @@ -2873,13 +2876,13 @@ static int knifetool_modal(bContext *C, wmOperator *op, const wmEvent *event) ED_region_tag_redraw(kcd->region); do_refresh = true; break; - case KNF_MODEL_IGNORE_SNAP_ON: + case KNF_MODAL_IGNORE_SNAP_ON: ED_region_tag_redraw(kcd->region); kcd->ignore_vert_snapping = kcd->ignore_edge_snapping = true; knife_update_header(C, op, kcd); do_refresh = true; break; - case KNF_MODEL_IGNORE_SNAP_OFF: + case KNF_MODAL_IGNORE_SNAP_OFF: ED_region_tag_redraw(kcd->region); kcd->ignore_vert_snapping = kcd->ignore_edge_snapping = false; knife_update_header(C, op, kcd);