Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/editors/mesh/editmesh_tools.c')
-rw-r--r--source/blender/editors/mesh/editmesh_tools.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c
index 681e14dd693..4477f375aab 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -485,17 +485,16 @@ static int removedoublesflag_exec(bContext *C, wmOperator *op)
int count = removedoublesflag(em,1,0,RNA_float_get(op->ptr, "limit"));
- if(!count)
- return OPERATOR_CANCELLED;
+ if(count) {
+ recalc_editnormals(em);
- recalc_editnormals(em);
+ DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
+ }
BKE_reportf(op->reports, RPT_INFO, "Removed %d vertices", count);
-
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
- WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
-
BKE_mesh_end_editmesh(obedit->data, em);
+
return OPERATOR_FINISHED;
}
@@ -3095,21 +3094,21 @@ static void givequadverts(EditFace *efa, EditFace *efa1, EditVert **v1, EditVert
if VTEST(efa1, 1, efa) {
*v3= efa1->v1;
- *v4= efa1->v2;
+ *v4= (efa1->v2 == *v2)? efa1->v3: efa1->v2;
vindex[2]= 0;
- vindex[3]= 1;
+ vindex[3]= (efa1->v2 == *v2)? 2: 1;
}
else if VTEST(efa1, 2, efa) {
*v3= efa1->v2;
- *v4= efa1->v3;
+ *v4= (efa1->v3 == *v2)? efa1->v1: efa1->v3;
vindex[2]= 1;
- vindex[3]= 2;
+ vindex[3]= (efa1->v3 == *v2)? 0: 2;
}
else if VTEST(efa1, 3, efa) {
*v3= efa1->v3;
- *v4= efa1->v1;
+ *v4= (efa1->v1 == *v2)? efa1->v2: efa1->v1;
vindex[2]= 2;
- vindex[3]= 0;
+ vindex[3]= (efa1->v1 == *v2)? 1: 0;
}
else
*v3= *v4= NULL;
@@ -3418,7 +3417,7 @@ void join_triangles(EditMesh *em)
efaa= (EVPtr *)eed->tmp.p;
v1 = v2 = v3 = v4 = NULL;
givequadverts(efaa[0], efaa[1], &v1, &v2, &v3, &v4, vindex);
- if((v1 && v2 && v3 && v4) && (exist_face(em, v1, v2, v3, v4)==0)){ /*exist_face is very slow! Needs to be adressed.*/
+ if((v1 && v2 && v3 && v4) && (exist_face(em, v1, v2, v3, v4)==0)){ /*exist_face is very slow! Needs to be addressed.*/
/*flag for delete*/
eed->f1 |= T2QDELETE;
/*create new quad and select*/