[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46045] trunk/blender/source/blender/bmesh /intern: bmesh api functions, not used yet:
Campbell Barton
ideasman42 at gmail.com
Sat Apr 28 20:39:37 CEST 2012
Revision: 46045
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46045
Author: campbellbarton
Date: 2012-04-28 18:39:37 +0000 (Sat, 28 Apr 2012)
Log Message:
-----------
bmesh api functions, not used yet:
BM_iter_elem_count_flag()
BM_iter_mesh_count_flag()
Modified Paths:
--------------
trunk/blender/source/blender/bmesh/intern/bmesh_iterators.c
trunk/blender/source/blender/bmesh/intern/bmesh_iterators.h
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_iterators.c
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_iterators.c 2012-04-28 18:27:32 UTC (rev 46044)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_iterators.c 2012-04-28 18:39:37 UTC (rev 46045)
@@ -104,8 +104,52 @@
return i;
}
+/**
+ * \brief Elem Iter Flag Count
+ *
+ * Counts how many flagged / unflagged items are found in this element.
+ */
+int BM_iter_elem_count_flag(const char itype, void *data, const char hflag, const short value)
+{
+ BMIter iter;
+ BMElem *ele;
+ int count = 0;
+ BLI_assert(ELEM(value, TRUE, FALSE));
+
+ for (ele = BM_iter_new(&iter, NULL, itype, data); ele; ele = BM_iter_step(&iter)) {
+ if (BM_elem_flag_test_bool(ele, hflag) == value) {
+ count++;
+ }
+ }
+
+ return count;
+}
+
/**
+ * \brief Mesh Iter Flag Count
+ *
+ * Counts how many flagged / unflagged items are found in this mesh.
+ */
+int BM_iter_mesh_count_flag(const char itype, BMesh *bm, const char hflag, const short value)
+{
+ BMIter iter;
+ BMElem *ele;
+ int count = 0;
+
+ BLI_assert(ELEM(value, TRUE, FALSE));
+
+ for (ele = BM_iter_new(&iter, bm, itype, NULL); ele; ele = BM_iter_step(&iter)) {
+ if (BM_elem_flag_test_bool(ele, hflag) == value) {
+ count++;
+ }
+ }
+
+ return count;
+}
+
+
+/**
* \brief Init Iterator
*
* Clears the internal state of an iterator for begin() callbacks.
Modified: trunk/blender/source/blender/bmesh/intern/bmesh_iterators.h
===================================================================
--- trunk/blender/source/blender/bmesh/intern/bmesh_iterators.h 2012-04-28 18:27:32 UTC (rev 46044)
+++ trunk/blender/source/blender/bmesh/intern/bmesh_iterators.h 2012-04-28 18:39:37 UTC (rev 46045)
@@ -117,6 +117,8 @@
void *BM_iter_at_index(BMesh *bm, const char itype, void *data, int index);
int BM_iter_as_array(BMesh *bm, const char itype, void *data, void **array, const int len);
+int BM_iter_elem_count_flag(const char itype, void *data, const char hflag, const short value);
+int BM_iter_mesh_count_flag(const char itype, BMesh *bm, const char hflag, const short value);
/* private for bmesh_iterators_inline.c */
void bmiter__vert_of_mesh_begin(struct BMIter *iter);
More information about the Bf-blender-cvs
mailing list