diff options
-rw-r--r-- | source/blender/bmesh/intern/bmesh_operators.h | 3 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_utils.c | 11 | ||||
-rw-r--r-- | source/blender/editors/mesh/editmesh_select.c | 1 |
3 files changed, 14 insertions, 1 deletions
diff --git a/source/blender/bmesh/intern/bmesh_operators.h b/source/blender/bmesh/intern/bmesh_operators.h index 3c6c3004e3a..b1da8ecb275 100644 --- a/source/blender/bmesh/intern/bmesh_operators.h +++ b/source/blender/bmesh/intern/bmesh_operators.h @@ -72,7 +72,8 @@ enum { enum { SIMVERT_NORMAL = 0, SIMVERT_FACE, - SIMVERT_VGROUP + SIMVERT_VGROUP, + SIMVERT_EDGE }; enum { diff --git a/source/blender/bmesh/operators/bmo_utils.c b/source/blender/bmesh/operators/bmo_utils.c index 3ebc7b04aa4..e0cd3e2ba90 100644 --- a/source/blender/bmesh/operators/bmo_utils.c +++ b/source/blender/bmesh/operators/bmo_utils.c @@ -873,6 +873,7 @@ typedef struct SimSel_VertExt { BMVert *v; union { int num_faces; /* adjacent faces */ + int num_edges; /* adjacent edges */ MDeformVert *dvert; /* deform vertex */ }; } SimSel_VertExt; @@ -928,6 +929,9 @@ void bmo_similarverts_exec(BMesh *bm, BMOperator *op) v_ext[i].dvert = NULL; } break; + case SIMVERT_EDGE: + v_ext[i].num_edges = BM_vert_edge_count(v); + break; } i++; @@ -970,6 +974,13 @@ void bmo_similarverts_exec(BMesh *bm, BMOperator *op) } } break; + case SIMVERT_EDGE: + /* number of adjacent edges */ + if (v_ext[i].num_edges == v_ext[indices[idx]].num_edges) { + BMO_elem_flag_enable(bm, v, VERT_MARK); + cont = FALSE; + } + break; } } } diff --git a/source/blender/editors/mesh/editmesh_select.c b/source/blender/editors/mesh/editmesh_select.c index 57bce6b9de4..44ec8bd6aaa 100644 --- a/source/blender/editors/mesh/editmesh_select.c +++ b/source/blender/editors/mesh/editmesh_select.c @@ -676,6 +676,7 @@ static EnumPropertyItem prop_similar_types[] = { {SIMVERT_NORMAL, "NORMAL", 0, "Normal", ""}, {SIMVERT_FACE, "FACE", 0, "Amount of Adjacent Faces", ""}, {SIMVERT_VGROUP, "VGROUP", 0, "Vertex Groups", ""}, + {SIMVERT_EDGE, "EDGE", 0, "Amount of connecting edges", ""}, {SIMEDGE_LENGTH, "LENGTH", 0, "Length", ""}, {SIMEDGE_DIR, "DIR", 0, "Direction", ""}, |