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:
authorFabian Schempp <fabianschempp@googlemail.com>2021-08-06 23:36:31 +0300
committerFabian Schempp <fabianschempp@googlemail.com>2021-08-06 23:36:31 +0300
commit49f33e98207f9e60a70fa001bdf4d66a33a16ba0 (patch)
tree441bb1912f6961e5ff3081dc839215dae6bceb17 /source/blender/bmesh/intern
parent9506ef320ebd470851c4869871c788db285b5b4e (diff)
parent6f525e0d9866248bb84487536f767c4478228c2a (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.c37
-rw-r--r--source/blender/bmesh/intern/bmesh_mesh.h5
-rw-r--r--source/blender/bmesh/intern/bmesh_opdefines.c1
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.
*