[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46888] trunk/blender/source/blender/bmesh /intern: Add new BMesh length query functions.
Nicholas Bishop
nicholasbishop at gmail.com
Tue May 22 17:19:33 CEST 2012
Revision: 46888
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46888
Author: nicholasbishop
Date: 2012-05-22 15:19:33 +0000 (Tue, 22 May 2012)
Log Message:
-----------
Add new BMesh length query functions.
BMEdge *BM_face_find_shortest_edge(BMFace *f);
BMEdge *BM_face_find_longest_edge(BMFace *f);
Reviewed by Campbell Barton.
Modified Paths:
--------------
trunk/blender/source/blender/bmesh/intern/bmesh_queries.c
trunk/blender/source/blender/bmesh/intern/bmesh_queries.h
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_queries.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_queries.c 2012-05-22 15:19:19 UTC (rev 46887)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_queries.c 2012-05-22 15:19:33 UTC (rev 46888)
@@ -952,6 +952,49 @@
/**
+ * Returns the shortest edge in f.
+ */
+BMEdge *BM_face_find_shortest_edge(BMFace *f)
+{
+ BMIter iter;
+ BMEdge *shortest_edge = NULL, *e;
+ float shortest_len = FLT_MAX;
+
+ BM_ITER_ELEM(e, &iter, f, BM_EDGES_OF_FACE) {
+ float len = BM_edge_calc_length(e);
+
+ if (len <= shortest_len) {
+ shortest_edge = e;
+ shortest_len = len;
+ }
+ }
+
+ return shortest_edge;
+}
+
+/**
+ * Returns the longest edge in f.
+ */
+BMEdge *BM_face_find_longest_edge(BMFace *f)
+{
+ BMIter iter;
+ BMEdge *longest_edge = NULL, *e;
+ float longest_len = 0;
+
+ BM_ITER_ELEM(e, &iter, f, BM_EDGES_OF_FACE) {
+ float len = BM_edge_calc_length(e);
+
+ if (len >= longest_len) {
+ longest_edge = e;
+ longest_len = len;
+ }
+ }
+
+ return longest_edge;
+}
+
+
+/**
* Returns the edge existing between v1 and v2, or NULL if there isn't one.
*
* \note multiple edges may exist between any two vertices, and therefore
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_queries.h
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_queries.h 2012-05-22 15:19:19 UTC (rev 46887)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_queries.h 2012-05-22 15:19:33 UTC (rev 46888)
@@ -67,6 +67,9 @@
float BM_vert_calc_shell_factor(BMVert *v);
float BM_vert_calc_mean_tagged_edge_length(BMVert *v);
+BMEdge *BM_face_find_shortest_edge(BMFace *f);
+BMEdge *BM_face_find_longest_edge(BMFace *f);
+
BMEdge *BM_edge_exists(BMVert *v1, BMVert *v2);
int BM_face_exists_overlap(BMesh *bm, BMVert **varr, int len, BMFace **r_existface);
More information about the Bf-blender-cvs
mailing list