[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