Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-02-22 15:31:07 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-02-22 15:31:07 +0400
commit91353bc71685f04cb9e1596258165fc7b018d7af (patch)
tree2365b280232baa3363e503a98009dee4e7b254c1 /source/blender/bmesh/intern
parente0a6d273d015d1196661da010b676acdf5d4baf5 (diff)
bmesh python api - add BMEdge.verts, also had to add VERTS_OF_EDGE iterator in bmesh's api.
Diffstat (limited to 'source/blender/bmesh/intern')
-rw-r--r--source/blender/bmesh/intern/bmesh_iterators.c24
-rw-r--r--source/blender/bmesh/intern/bmesh_iterators_inline.c10
2 files changed, 33 insertions, 1 deletions
diff --git a/source/blender/bmesh/intern/bmesh_iterators.c b/source/blender/bmesh/intern/bmesh_iterators.c
index 0c6ac24f456..083de99b7c4 100644
--- a/source/blender/bmesh/intern/bmesh_iterators.c
+++ b/source/blender/bmesh/intern/bmesh_iterators.c
@@ -354,6 +354,30 @@ void *bmiter__face_of_edge_step(BMIter *iter)
}
/*
+ * VERTS OF EDGE CALLBACKS
+ *
+ */
+
+void bmiter__vert_of_edge_begin(BMIter *iter)
+{
+ init_iterator(iter);
+ iter->count = 0;
+}
+
+void *bmiter__vert_of_edge_step(BMIter *iter)
+{
+ iter->count++;
+ switch (iter->count) {
+ case 1:
+ return iter->edata->v1;
+ case 2:
+ return iter->edata->v1;
+ default:
+ return NULL;
+ }
+}
+
+/*
* VERT OF FACE CALLBACKS
*
*/
diff --git a/source/blender/bmesh/intern/bmesh_iterators_inline.c b/source/blender/bmesh/intern/bmesh_iterators_inline.c
index bd2242c262b..e4ad53ee46d 100644
--- a/source/blender/bmesh/intern/bmesh_iterators_inline.c
+++ b/source/blender/bmesh/intern/bmesh_iterators_inline.c
@@ -62,7 +62,7 @@ BM_INLINE int BM_iter_init(BMIter *iter, BMesh *bm, const char itype, void *data
iter->bm = bm;
/* inlining optimizes out this switch when called with the defined type */
- switch (itype) {
+ switch ((BMIterType)itype) {
case BM_VERTS_OF_MESH:
iter->begin = bmiter__vert_of_mesh_begin;
iter->step = bmiter__vert_of_mesh_step;
@@ -99,6 +99,14 @@ BM_INLINE int BM_iter_init(BMIter *iter, BMesh *bm, const char itype, void *data
iter->step = bmiter__loop_of_vert_step;
iter->vdata = data;
break;
+ case BM_VERTS_OF_EDGE:
+ if (!data)
+ return FALSE;
+
+ iter->begin = bmiter__vert_of_edge_begin;
+ iter->step = bmiter__vert_of_edge_step;
+ iter->edata = data;
+ break;
case BM_FACES_OF_EDGE:
if (!data)
return FALSE;