Commit: 4a356d767b3a3481c836e0a5b4e5c56a6f92efc2
Author: Campbell Barton
Date:   Thu Dec 24 19:51:41 2015 +1100
Branches: master
https://developer.blender.org/rB4a356d767b3a3481c836e0a5b4e5c56a6f92efc2

BMesh: BM_verts_from_edges utility function

===================================================================

M       source/blender/bmesh/intern/bmesh_construct.c
M       source/blender/bmesh/intern/bmesh_construct.h
M       source/blender/bmesh/intern/bmesh_queries.c

===================================================================

diff --git a/source/blender/bmesh/intern/bmesh_construct.c 
b/source/blender/bmesh/intern/bmesh_construct.c
index 3c2a85e..fdad93e 100644
--- a/source/blender/bmesh/intern/bmesh_construct.c
+++ b/source/blender/bmesh/intern/bmesh_construct.c
@@ -46,10 +46,29 @@
 
 #define SELECT 1
 
+
+/**
+ * Fill in a vertex array from an edge array.
+ *
+ * \returns false if any verts aren't found.
+ */
+bool BM_verts_from_edges(BMVert **vert_arr, BMEdge **edge_arr, const int len)
+{
+       int i, i_prev = len - 1;
+       for (i = 0; i < len; i++) {
+               vert_arr[i] = BM_edge_share_vert(edge_arr[i_prev], edge_arr[i]);
+               if (vert_arr[i] == NULL) {
+                       return false;
+               }
+               i_prev = i;
+       }
+       return true;
+}
+
 /**
  * Fill in an edge array from a vertex array (connected polygon loop).
  *
- * \returns false if any edges aren't found .
+ * \returns false if any edges aren't found.
  */
 bool BM_edges_from_verts(BMEdge **edge_arr, BMVert **vert_arr, const int len)
 {
diff --git a/source/blender/bmesh/intern/bmesh_construct.h 
b/source/blender/bmesh/intern/bmesh_construct.h
index ce8b8dd..06bc546 100644
--- a/source/blender/bmesh/intern/bmesh_construct.h
+++ b/source/blender/bmesh/intern/bmesh_construct.h
@@ -29,6 +29,8 @@
 
 struct BMAllocTemplate;
 
+bool BM_verts_from_edges(BMVert **vert_arr, BMEdge **edge_arr, const int len);
+
 bool BM_edges_from_verts(BMEdge **edge_arr, BMVert **vert_arr, const int len);
 void BM_edges_from_verts_ensure(BMesh *bm, BMEdge **edge_arr, BMVert 
**vert_arr, const int len);
 
diff --git a/source/blender/bmesh/intern/bmesh_queries.c 
b/source/blender/bmesh/intern/bmesh_queries.c
index 5ed8ab2..253fa95 100644
--- a/source/blender/bmesh/intern/bmesh_queries.c
+++ b/source/blender/bmesh/intern/bmesh_queries.c
@@ -2094,26 +2094,13 @@ bool BM_face_exists_multi_edge(BMEdge **earr, int len)
 {
        BMVert **varr = BLI_array_alloca(varr, len);
 
-       bool ok;
-       int i, i_next;
-
        /* first check if verts have edges, if not we can bail out early */
-       ok = true;
-       for (i = len - 1, i_next = 0; i_next < len; (i = i_next++)) {
-               if (!(varr[i] = BM_edge_share_vert(earr[i], earr[i_next]))) {
-                       ok = false;
-                       break;
-               }
-       }
-
-       if (ok == false) {
+       if (!BM_verts_from_edges(varr, earr, len)) {
                BMESH_ASSERT(0);
                return false;
        }
 
-       ok = BM_face_exists_multi(varr, earr, len);
-
-       return ok;
+       return BM_face_exists_multi(varr, earr, len);
 }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to