[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23720] trunk/blender/source/blender/ editors: bring back automerge - [#19538] automerge editing doesn't work

Campbell Barton ideasman42 at gmail.com
Thu Oct 8 17:50:42 CEST 2009


Revision: 23720
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23720
Author:   campbellbarton
Date:     2009-10-08 17:50:42 +0200 (Thu, 08 Oct 2009)

Log Message:
-----------
bring back automerge - [#19538] automerge editing doesn't work

Modified Paths:
--------------
    trunk/blender/source/blender/editors/mesh/editmesh_mods.c
    trunk/blender/source/blender/editors/mesh/mesh_intern.h
    trunk/blender/source/blender/editors/transform/transform_conversions.c

Modified: trunk/blender/source/blender/editors/mesh/editmesh_mods.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_mods.c	2009-10-08 15:29:43 UTC (rev 23719)
+++ trunk/blender/source/blender/editors/mesh/editmesh_mods.c	2009-10-08 15:50:42 UTC (rev 23720)
@@ -117,22 +117,26 @@
 	}
 }
 
-void EM_automerge(int update) 
+void EM_automerge(Scene *scene, Object *obedit, int update)
 {
-// XXX	int len;
-	
-//	if ((scene->automerge) &&
-//		(obedit && obedit->type==OB_MESH) &&
-//		(((Mesh*)obedit->data)->mr==NULL)
-//	  ) {
-//		len = removedoublesflag(1, 1, scene->toolsettings->doublimit);
-//		if (len) {
-//			em->totvert -= len; /* saves doing a countall */
-//			if (update) {
-//				DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
-//			}
-//		}
-//	}
+	Mesh *me= (Mesh*)obedit->data; /* can be NULL */
+	int len;
+
+	if ((scene->toolsettings->automerge) &&
+		(obedit && obedit->type==OB_MESH && obedit->mode==OB_MODE_EDIT) &&
+		(me->mr==NULL)
+	  ) {
+		Mesh *me= (Mesh*)obedit->data;
+		EditMesh *em= me->edit_mesh;
+
+		len = removedoublesflag(em, 1, 1, scene->toolsettings->doublimit);
+		if (len) {
+			em->totvert -= len; /* saves doing a countall */
+			if (update) {
+				DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+			}
+		}
+	}
 }
 
 /* ****************************** SELECTION ROUTINES **************** */

Modified: trunk/blender/source/blender/editors/mesh/mesh_intern.h
===================================================================
--- trunk/blender/source/blender/editors/mesh/mesh_intern.h	2009-10-08 15:29:43 UTC (rev 23719)
+++ trunk/blender/source/blender/editors/mesh/mesh_intern.h	2009-10-08 15:50:42 UTC (rev 23720)
@@ -167,7 +167,7 @@
 void MESH_OT_flip_normals(struct wmOperatorType *ot);
 
 extern EditEdge *findnearestedge(ViewContext *vc, int *dist);
-extern void EM_automerge(int update);
+extern void EM_automerge(Scene *scene, Object *obedit, int update);
 void editmesh_select_by_material(EditMesh *em, int index);
 void righthandfaces(EditMesh *em, int select);	/* makes faces righthand turning */
 void EM_select_more(EditMesh *em);

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2009-10-08 15:29:43 UTC (rev 23719)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2009-10-08 15:50:42 UTC (rev 23720)
@@ -4477,8 +4477,8 @@
 	if (t->spacetype==SPACE_VIEW3D) {
 		if (t->obedit) {
 			if (cancelled==0) {
+				EM_automerge(t->scene, t->obedit, 1);
 #if 0 // TRANSFORM_FIX_ME
-				EM_automerge(1);
 				/* when snapping, delay retopo until after automerge */
 				if (G.qual & LR_CTRLKEY) {
 					retopo_do_all();





More information about the Bf-blender-cvs mailing list