[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45788] trunk/blender/source/blender/ editors/mesh/editmesh_rip.c: fix [#31015] Rip has weird results in vertex selection mode vs face

Campbell Barton ideasman42 at gmail.com
Thu Apr 19 18:20:09 CEST 2012


Revision: 45788
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45788
Author:   campbellbarton
Date:     2012-04-19 16:20:07 +0000 (Thu, 19 Apr 2012)
Log Message:
-----------
fix [#31015] Rip has weird results in vertex selection mode vs face 

Modified Paths:
--------------
    trunk/blender/source/blender/editors/mesh/editmesh_rip.c

Modified: trunk/blender/source/blender/editors/mesh/editmesh_rip.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_rip.c	2012-04-19 15:14:28 UTC (rev 45787)
+++ trunk/blender/source/blender/editors/mesh/editmesh_rip.c	2012-04-19 16:20:07 UTC (rev 45788)
@@ -31,6 +31,7 @@
 
 #include "MEM_guardedalloc.h"
 
+#include "DNA_scene_types.h"
 #include "DNA_object_types.h"
 
 #include "RNA_define.h"
@@ -361,6 +362,25 @@
 
 	EdgeLoopPair *eloop_pairs;
 
+	/* running in face mode hardly makes sense, if we try to run code below it almost works ok
+	 * but doesnt make sense logically because ripping is supposed to rip an edge apart.
+	 *
+	 * Rather then disable, we can split in this case
+	 */
+	if (em->selectmode == SCE_SELECT_FACE) {
+		EDBM_op_init(em, &bmop, op, "split geom=%hvef use_only_faces=%b", BM_ELEM_SELECT, TRUE);
+		BMO_op_exec(em->bm, &bmop);
+		BM_mesh_elem_hflag_disable_all(em->bm, BM_VERT | BM_EDGE | BM_FACE, BM_ELEM_SELECT, FALSE);
+		BMO_slot_buffer_hflag_enable(em->bm, &bmop, "geomout", BM_ALL, BM_ELEM_SELECT, TRUE);
+		if (!EDBM_op_finish(em, &bmop, op, TRUE)) {
+			return OPERATOR_CANCELLED;
+		}
+		else {
+			return OPERATOR_FINISHED;
+		}
+	}
+
+
 	/* note on selection:
 	 * When calling edge split we operate on tagged edges rather then selected
 	 * this is important because the edges to operate on are extended by one,




More information about the Bf-blender-cvs mailing list