diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-10-20 17:47:16 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-10-20 18:47:07 +0300 |
commit | 71538eaad66b0d2a532df4b1f82e983fb6aed088 (patch) | |
tree | 6c644806bddd679c75246e44a89efe42ebd75fe1 /source/blender/bmesh/intern/bmesh_query.h | |
parent | 98ab0f173c8c5c9f34af22f9e8748e0101cc6dd1 (diff) |
Fix T70864: Separate loose parts runs indefinitely
Large objects with many separate pieces became unstably slow
(run for hours and not finish).
The entire original mesh was being duplicated twice per loose part.
In own tests, millions of vertices and thousands of loose parts
now run in around 5-15 seconds.
Diffstat (limited to 'source/blender/bmesh/intern/bmesh_query.h')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_query.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/bmesh/intern/bmesh_query.h b/source/blender/bmesh/intern/bmesh_query.h index 3a864fbb5dd..134e0b99691 100644 --- a/source/blender/bmesh/intern/bmesh_query.h +++ b/source/blender/bmesh/intern/bmesh_query.h @@ -249,6 +249,13 @@ int BM_mesh_calc_edge_groups(BMesh *bm, void *user_data, const char hflag_test) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1, 2, 3); +int BM_mesh_calc_edge_groups_as_arrays(BMesh *bm, + BMVert **verts, + BMEdge **edges, + BMFace **faces, + int (**r_groups)[3]) ATTR_WARN_UNUSED_RESULT + ATTR_NONNULL(1, 2, 3, 4, 5); + /* not really any good place to put this */ float bmesh_subd_falloff_calc(const int falloff, float val) ATTR_WARN_UNUSED_RESULT; |