[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59091] trunk/blender/source/blender/bmesh /intern: bmesh_edge_separate: avoid counting radial loops when splitting edges, we only need to check if the edge is boundary or not.

Campbell Barton ideasman42 at gmail.com
Tue Aug 13 00:36:47 CEST 2013


Revision: 59091
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59091
Author:   campbellbarton
Date:     2013-08-12 22:36:46 +0000 (Mon, 12 Aug 2013)
Log Message:
-----------
bmesh_edge_separate: avoid counting radial loops when splitting edges, we only need to check if the edge is boundary or not. will speedup edgesplit modifier a little.

Modified Paths:
--------------
    trunk/blender/source/blender/bmesh/intern/bmesh_core.c
    trunk/blender/source/blender/bmesh/intern/bmesh_core.h

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_core.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_core.c	2013-08-12 22:04:10 UTC (rev 59090)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_core.c	2013-08-12 22:36:46 UTC (rev 59091)
@@ -2114,18 +2114,19 @@
  * \note Does nothing if \a l_sep is already the only loop in the
  * edge radial.
  */
-bool bmesh_edge_separate(BMesh *bm, BMEdge *e, BMLoop *l_sep)
+void bmesh_edge_separate(BMesh *bm, BMEdge *e, BMLoop *l_sep)
 {
 	BMEdge *e_new;
-	int radlen;
+#ifndef NDEBUG
+	const int radlen = bmesh_radial_length(e->l);
+#endif
 
 	BLI_assert(l_sep->e == e);
 	BLI_assert(e->l);
 	
-	radlen = bmesh_radial_length(e->l);
-	if (radlen < 2) {
+	if (BM_edge_is_boundary(e)) {
 		/* no cut required */
-		return true;
+		return;
 	}
 
 	if (l_sep == e->l) {
@@ -2142,8 +2143,6 @@
 
 	BM_CHECK_ELEMENT(e_new);
 	BM_CHECK_ELEMENT(e);
-
-	return true;
 }
 
 /**

Modified: trunk/blender/source/blender/bmesh/intern/bmesh_core.h
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_core.h	2013-08-12 22:04:10 UTC (rev 59090)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_core.h	2013-08-12 22:36:46 UTC (rev 59091)
@@ -50,7 +50,7 @@
 void    BM_edge_kill(BMesh *bm, BMEdge *e);
 void    BM_vert_kill(BMesh *bm, BMVert *v);
 
-bool    bmesh_edge_separate(BMesh *bm, BMEdge *e, BMLoop *l_sep);
+void    bmesh_edge_separate(BMesh *bm, BMEdge *e, BMLoop *l_sep);
 bool    BM_edge_splice(BMesh *bm, BMEdge *e, BMEdge *e_target);
 bool    BM_vert_splice(BMesh *bm, BMVert *v, BMVert *v_target);
 




More information about the Bf-blender-cvs mailing list