|
Blender V5.0
|
#include "BLI_bit_span.hh"#include "BLI_compiler_attrs.h"#include "BLI_vector.hh"#include "bmesh_class.hh"Go to the source code of this file.
Classes | |
| struct | BMPartialUpdate_Params |
| struct | BMPartialUpdate |
Functions | |
| BMPartialUpdate * | BM_mesh_partial_create_from_verts (BMesh &bm, const BMPartialUpdate_Params ¶ms, blender::BitSpan verts_mask, int verts_mask_count) |
| BMPartialUpdate * | BM_mesh_partial_create_from_verts_group_single (BMesh &bm, const BMPartialUpdate_Params ¶ms, blender::BitSpan verts_mask, int verts_mask_count) |
| BMPartialUpdate * | BM_mesh_partial_create_from_verts_group_multi (BMesh &bm, const BMPartialUpdate_Params ¶ms, blender::Span< int > verts_group, int verts_group_count) |
| void | BM_mesh_partial_destroy (BMPartialUpdate *bmpinfo) ATTR_NONNULL(1) |
|
nodiscard |
All Tagged & Connected, see: BM_mesh_partial_create_from_verts Operate on everything that's tagged as well as connected geometry.
Definition at line 77 of file bmesh_mesh_partial_update.cc.
References BLI_assert, bm, BM_DISK_EDGE_NEXT, BM_elem_index_set, BM_FACE, BM_FACE_FIRST_LOOP, BM_ITER_MESH_INDEX, BM_mesh_elem_index_ensure(), BM_VERTS_OF_MESH, BMLoop::f, BMPartialUpdate::faces, i, BMEdge::l, min_ii(), BMLoop::next, BMPartialUpdate::params, params, partial_elem_face_ensure(), partial_elem_vert_ensure(), BMLoop::radial_next, Vector< T, InlineBufferCapacity, Allocator >::reserve(), blender::bits::BitVector< InlineBufferCapacity, Allocator >::resize(), BMLoop::v, v, and BMPartialUpdate::verts.
Referenced by blender::ed::transform::mesh_partial_ensure().
|
nodiscard |
All Connected, operate on all faces that have vertices in the same group.
Reduces computations when transforming isolated regions.
This is a version of BM_mesh_partial_create_from_verts_group_single that handles multiple groups instead of a bitmap mask.
This is needed for example when transform has mirror enabled, since one side needs to have a different group to the other since a face that has vertices attached to both won't have an affine transformation.
| verts_group | Vertex aligned array of groups. Values are used as follows:
|
| verts_group_count | The number of non-zero values in verts_groups. |
Definition at line 242 of file bmesh_mesh_partial_update.cc.
References bm, BM_elem_index_get, BM_elem_index_set, BM_FACE_FIRST_LOOP, BM_FACES_OF_MESH, BM_ITER_MESH_INDEX, BM_vert_find_first_loop(), BM_VERTS_OF_MESH, BMPartialUpdate::faces, i, BMFace::len, BMFace::mat_nr, max_ii(), min_ii(), BMLoop::next, BMPartialUpdate::params, params, partial_elem_face_ensure(), partial_elem_vert_ensure(), BMLoop::prev, Vector< T, InlineBufferCapacity, Allocator >::reserve(), blender::bits::BitVector< InlineBufferCapacity, Allocator >::resize(), Vector< T, InlineBufferCapacity, Allocator >::size(), UNLIKELY, BMLoop::v, v, and BMPartialUpdate::verts.
Referenced by blender::ed::transform::mesh_partial_ensure().
|
nodiscard |
All Connected, operate on all faces that have both tagged and un-tagged vertices.
Reduces computations when transforming isolated regions.
Definition at line 172 of file bmesh_mesh_partial_update.cc.
References bm, BM_elem_index_get, BM_elem_index_set, BM_FACE_FIRST_LOOP, BM_FACES_OF_MESH, BM_ITER_MESH_INDEX, BM_vert_find_first_loop(), BM_VERTS_OF_MESH, BMPartialUpdate::faces, i, BMFace::len, max_ii(), min_ii(), BMLoop::next, BMPartialUpdate::params, params, partial_elem_face_ensure(), partial_elem_vert_ensure(), Vector< T, InlineBufferCapacity, Allocator >::reserve(), blender::bits::BitVector< InlineBufferCapacity, Allocator >::resize(), Vector< T, InlineBufferCapacity, Allocator >::size(), UNLIKELY, BMLoop::v, v, and BMPartialUpdate::verts.
Referenced by editmesh_partial_update_begin_fn(), and blender::ed::transform::mesh_partial_ensure().
| void BM_mesh_partial_destroy | ( | BMPartialUpdate * | bmpinfo | ) |
Definition at line 320 of file bmesh_mesh_partial_update.cc.
Referenced by editmesh_partial_update_end_fn(), blender::ed::transform::mesh_customdata_free(), and blender::ed::transform::mesh_partial_ensure().