diff options
Diffstat (limited to 'source/blender/bmesh/intern/bmesh_polygon_edgenet.h')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_polygon_edgenet.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/source/blender/bmesh/intern/bmesh_polygon_edgenet.h b/source/blender/bmesh/intern/bmesh_polygon_edgenet.h index 6833f067421..a25f38a84b3 100644 --- a/source/blender/bmesh/intern/bmesh_polygon_edgenet.h +++ b/source/blender/bmesh/intern/bmesh_polygon_edgenet.h @@ -20,6 +20,14 @@ * \ingroup bmesh */ +/** + * Splits a face into many smaller faces defined by an edge-net. + * handle customdata and degenerate cases. + * + * - Isolated holes or unsupported face configurations, will be ignored. + * - Customdata calculations aren't efficient + * (need to calculate weights for each vert). + */ bool BM_face_split_edgenet(BMesh *bm, BMFace *f, BMEdge **edge_net, @@ -27,12 +35,20 @@ bool BM_face_split_edgenet(BMesh *bm, BMFace ***r_face_arr, int *r_face_arr_len); +/** + * For when the edge-net has holes in it-this connects them. + * + * \param use_partial_connect: Support for handling islands connected by only a single edge, + * \note that this is quite slow so avoid using where possible. + * \param mem_arena: Avoids many small allocs & should be cleared after each use. + * take care since \a edge_net_new is stored in \a r_edge_net_new. + */ bool BM_face_split_edgenet_connect_islands(BMesh *bm, BMFace *f, BMEdge **edge_net_init, const uint edge_net_init_len, bool use_partial_connect, - struct MemArena *arena, + struct MemArena *mem_arena, BMEdge ***r_edge_net_new, uint *r_edge_net_new_len) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1, 2, 3, 6, 7, 8); |