diff options
author | Fabian Schempp <fabianschempp@googlemail.com> | 2021-08-06 23:36:31 +0300 |
---|---|---|
committer | Fabian Schempp <fabianschempp@googlemail.com> | 2021-08-06 23:36:31 +0300 |
commit | 49f33e98207f9e60a70fa001bdf4d66a33a16ba0 (patch) | |
tree | 441bb1912f6961e5ff3081dc839215dae6bceb17 /source/blender/bmesh/intern | |
parent | 9506ef320ebd470851c4869871c788db285b5b4e (diff) | |
parent | 6f525e0d9866248bb84487536f767c4478228c2a (diff) |
Merge remote-tracking branch 'origin/temp-geometry-nodes-fields-prototype' into temp-geometry-nodes-fields-prototype
# Conflicts:
# source/blender/blenkernel/BKE_node.h
# source/blender/bmesh/intern/bmesh_mesh.h
# source/blender/nodes/geometry/nodes/node_geo_extrude.cc
Diffstat (limited to 'source/blender/bmesh/intern')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mesh.c | 37 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mesh.h | 5 | ||||
-rw-r--r-- | source/blender/bmesh/intern/bmesh_opdefines.c | 1 |
3 files changed, 38 insertions, 5 deletions
diff --git a/source/blender/bmesh/intern/bmesh_mesh.c b/source/blender/bmesh/intern/bmesh_mesh.c index 217c3502b40..23d31586fa0 100644 --- a/source/blender/bmesh/intern/bmesh_mesh.c +++ b/source/blender/bmesh/intern/bmesh_mesh.c @@ -1447,8 +1447,8 @@ void BM_mesh_vert_coords_apply_with_mat4(BMesh *bm, } /** -* Use to select bmesh vertex data based on an array of bool. -*/ + * Use to select bmesh vertex data based on an array of bool. + */ void BM_select_vertices(BMesh *bm, const bool *mask) { BMIter iter; @@ -1564,4 +1564,37 @@ void BM_tag_faces(BMesh *bm, const bool *mask) i++; } } + +void BM_get_tagged_faces(BMesh *bm, bool *selection) +{ + BMIter iter; + BMFace *f; + int i = 0; + BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) { + selection[i] = BM_elem_flag_test(f, BM_ELEM_TAG); + i++; + } +} + +void BM_tag_new_faces(BMesh *bm, BMOperator *b_mesh_operator) +{ + BMOIter iter; + BMFace *f; + BM_mesh_elem_hflag_disable_all(bm, BM_FACE, BM_ELEM_TAG, false); + BMO_ITER (f, &iter, b_mesh_operator->slots_out, "faces.out", BM_FACE) { + BM_elem_flag_enable(f, BM_ELEM_TAG); + } +} + +void BM_get_selected_faces(BMesh *bm, bool *selection) +{ + BMIter iter; + BMFace *f; + int i = 0; + BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) { + selection[i] = BM_elem_flag_test(f, BM_ELEM_SELECT); + i++; + } +} + /** \} */ diff --git a/source/blender/bmesh/intern/bmesh_mesh.h b/source/blender/bmesh/intern/bmesh_mesh.h index 99baaa1421f..475372f4089 100644 --- a/source/blender/bmesh/intern/bmesh_mesh.h +++ b/source/blender/bmesh/intern/bmesh_mesh.h @@ -138,9 +138,10 @@ void BM_mesh_vert_coords_apply_with_mat4(BMesh *bm, void BM_select_vertices(BMesh *bm, const bool *mask); void BM_select_edges(BMesh *bm, const bool *mask); void BM_select_faces(BMesh *bm, const bool *mask); -void BM_get_selected_faces(BMesh *bm, bool **selection); void BM_tag_vertices(BMesh *bm, const bool *mask); void BM_tag_edges(BMesh *bm, const bool *mask); void BM_tag_faces(BMesh *bm, const bool *mask); -void BM_get_tagged_faces(BMesh *bm, bool **selection); + +void BM_get_tagged_faces(BMesh *bm, bool *selection); +void BM_get_selected_faces(BMesh *bm, bool *selection); void BM_tag_new_faces(BMesh *bm, BMOperator *b_mesh_operator);
\ No newline at end of file diff --git a/source/blender/bmesh/intern/bmesh_opdefines.c b/source/blender/bmesh/intern/bmesh_opdefines.c index 651f9184e19..fc3f592cb79 100644 --- a/source/blender/bmesh/intern/bmesh_opdefines.c +++ b/source/blender/bmesh/intern/bmesh_opdefines.c @@ -1946,7 +1946,6 @@ static BMOpDefine bmo_inset_region_def = { (BMO_OPTYPE_FLAG_NORMALS_CALC | BMO_OPTYPE_FLAG_SELECT_FLUSH), }; - /* * Edge-loop Offset. * |