[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42199] branches/bmesh/blender/source/ blender: 2 of the 3 places that check 2 edges share a vertex were incorrect ( silly mistake)

Campbell Barton ideasman42 at gmail.com
Mon Nov 28 01:27:31 CET 2011


Revision: 42199
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42199
Author:   campbellbarton
Date:     2011-11-28 00:27:26 +0000 (Mon, 28 Nov 2011)
Log Message:
-----------
2 of the 3 places that check 2 edges share a vertex were incorrect (silly mistake)

    so make into a function: BM_Edge_Share_Vert()
    

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/bmesh/bmesh_queries.h
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_eulers.c
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_queries.c
    branches/bmesh/blender/source/blender/bmesh/operators/createops.c
    branches/bmesh/blender/source/blender/bmesh/operators/subdivideop.c
    branches/bmesh/blender/source/blender/editors/mesh/editbmesh_bvh.c

Modified: branches/bmesh/blender/source/blender/bmesh/bmesh_queries.h
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/bmesh_queries.h	2011-11-27 23:56:29 UTC (rev 42198)
+++ branches/bmesh/blender/source/blender/bmesh/bmesh_queries.h	2011-11-28 00:27:26 UTC (rev 42199)
@@ -74,11 +74,14 @@
 
 
 /*returns number of edges f1 and f2 share.*/
-int BM_Face_Sharededges(struct BMFace *f1, struct BMFace *f2);
+int BM_Face_Share_Edges(struct BMFace *f1, struct BMFace *f2);
 
 /*returns number of faces e1 and e2 share.*/
 int BM_Edge_Share_Faces(struct BMEdge *e1, struct BMEdge *e2);
 
+/*returns bool 1/0 if the edges share a vertex */
+int BM_Edge_Share_Vert(struct BMEdge *e1, struct BMEdge *e2);
+
 /*edge verts in winding order from face*/
 void BM_Edge_OrderedVerts(struct BMEdge *edge, struct BMVert **r_v1, struct BMVert **r_v2);
 

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_eulers.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_eulers.c	2011-11-27 23:56:29 UTC (rev 42198)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_eulers.c	2011-11-28 00:27:26 UTC (rev 42199)
@@ -977,7 +977,7 @@
 	if(bmesh_radial_find_face( ((f2loop->prev))->e,f1)) return NULL;
 	
 	/*validate only one shared edge*/
-	shared = BM_Face_Sharededges(f1,f2);
+	shared = BM_Face_Share_Edges(f1,f2);
 	if(shared > 1) return NULL;
 
 	/*validate no internal joins*/

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c	2011-11-27 23:56:29 UTC (rev 42198)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_newcore.c	2011-11-28 00:27:26 UTC (rev 42199)
@@ -1453,7 +1453,7 @@
 	if(bmesh_radial_find_face(f2loop->prev->e,f1)) return NULL;
 	
 	/*validate only one shared edge*/
-	shared = BM_Face_Sharededges(f1,f2);
+	shared = BM_Face_Share_Edges(f1,f2);
 	if(shared > 1) return NULL;
 
 	/*validate no internal joins*/

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_queries.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_queries.c	2011-11-27 23:56:29 UTC (rev 42198)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_queries.c	2011-11-28 00:27:26 UTC (rev 42199)
@@ -403,7 +403,7 @@
  *	Integer
  */
 
-int BM_Face_Sharededges(BMFace *f1, BMFace *f2)
+int BM_Face_Share_Edges(BMFace *f1, BMFace *f2)
 {
 	BMLoop *l;
 	int count = 0;
@@ -445,6 +445,22 @@
 
 /**
  *
+ *           BMESH EDGE SHARE A VERTEX
+ *
+ *	Tests to see if e1 shares a vertex with e2
+ *
+*/
+
+int BM_Edge_Share_Vert(struct BMEdge *e1, struct BMEdge *e2)
+{
+	return (e1->v1 == e2->v1 ||
+	        e1->v1 == e2->v2 ||
+	        e1->v2 == e2->v1 ||
+	        e1->v2 == e2->v2);
+}
+
+/**
+ *
  *           BMESH EDGE ORDERED VERTS
  *
  *	Returns the verts of an edge as used in a face

Modified: branches/bmesh/blender/source/blender/bmesh/operators/createops.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/createops.c	2011-11-27 23:56:29 UTC (rev 42198)
+++ branches/bmesh/blender/source/blender/bmesh/operators/createops.c	2011-11-28 00:27:26 UTC (rev 42199)
@@ -1092,10 +1092,8 @@
 		count++;
 	}
 
-#define EDGECON(e1, e2) (e1->v1 == e2->v1 || e1->v2 == e2->v2 || e1->v1 == e2->v2)
-
-	if (edges1 && BLI_array_count(edges1) > 2 && EDGECON(edges1[0], edges1[BLI_array_count(edges1)-1])) {
-		if (edges2 && BLI_array_count(edges2) > 2 && EDGECON(edges2[0], edges2[BLI_array_count(edges2)-1])) {
+	if (edges1 && BLI_array_count(edges1) > 2 && BM_Edge_Share_Vert(edges1[0], edges1[BLI_array_count(edges1)-1])) {
+		if (edges2 && BLI_array_count(edges2) > 2 && BM_Edge_Share_Vert(edges2[0], edges2[BLI_array_count(edges2)-1])) {
 			BLI_array_free(edges1);
 			BLI_array_free(edges2);
 			return;
@@ -1105,7 +1103,7 @@
 		}
 	}
 
-	if (edges2 && BLI_array_count(edges2) > 2 && EDGECON(edges2[0], edges2[BLI_array_count(edges2)-1])) {
+	if (edges2 && BLI_array_count(edges2) > 2 && BM_Edge_Share_Vert(edges2[0], edges2[BLI_array_count(edges2)-1])) {
 		edges2 = NULL;
 	}
 
@@ -1175,8 +1173,6 @@
 
 	BLI_array_free(edges1);
 	BLI_array_free(edges2);
-
-#undef EDGECON
 }
 
 /*this is essentially new fkey*/

Modified: branches/bmesh/blender/source/blender/bmesh/operators/subdivideop.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/subdivideop.c	2011-11-27 23:56:29 UTC (rev 42198)
+++ branches/bmesh/blender/source/blender/bmesh/operators/subdivideop.c	2011-11-28 00:27:26 UTC (rev 42199)
@@ -878,8 +878,7 @@
 		}
 
 		/*make sure the two edges have a valid angle to each other*/
-		if (totesel == 2 && (e1->v1 == e2->v1 || e1->v1 == e2->v2 
-			             || e1->v2 == e2->v1 || e1->v2 == e2->v1)) {
+		if (totesel == 2 && BM_Edge_Share_Vert(e1, e2)) {
 			float angle;
 
 			sub_v3_v3v3(vec1, e1->v2->co, e1->v1->co);

Modified: branches/bmesh/blender/source/blender/editors/mesh/editbmesh_bvh.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/editbmesh_bvh.c	2011-11-27 23:56:29 UTC (rev 42198)
+++ branches/bmesh/blender/source/blender/editors/mesh/editbmesh_bvh.c	2011-11-28 00:27:26 UTC (rev 42199)
@@ -399,8 +399,9 @@
 		BM_ITER(e2, &iter2, bm, BM_EDGES_OF_VERT, v2) {
 			float angle;
 			
-			if (e1->v1 == e2->v1 || e1->v2 == e2->v2 || e1->v1 == e2->v2 || e1->v2 == e2->v1)
+			if (BM_Edge_Share_Vert(e1, e2)) {
 				continue;
+			}
 
 			sub_v3_v3v3(vec1, BM_OtherEdgeVert(e1, v1)->co, v1->co);
 			sub_v3_v3v3(vec2, BM_OtherEdgeVert(e2, v2)->co, v2->co);




More information about the Bf-blender-cvs mailing list