[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