Blender  V3.3
Classes | Typedefs | Functions | Variables
bmesh_mesh_partial_update.h File Reference
#include "BLI_compiler_attrs.h"

Go to the source code of this file.

Classes

struct  BMPartialUpdate_Params
 
struct  BMPartialUpdate
 

Typedefs

typedef struct BMPartialUpdate_Params BMPartialUpdate_Params
 
typedef struct BMPartialUpdate BMPartialUpdate
 

Functions

BMPartialUpdateBM_mesh_partial_create_from_verts (BMesh *bm, const BMPartialUpdate_Params *params, const unsigned int *verts_mask, int verts_mask_count) ATTR_NONNULL(1
 
BMPartialUpdateBM_mesh_partial_create_from_verts_group_single (BMesh *bm, const BMPartialUpdate_Params *params, const unsigned int *verts_mask, int verts_mask_count) ATTR_NONNULL(1
 
BMPartialUpdateBM_mesh_partial_create_from_verts_group_multi (BMesh *bm, const BMPartialUpdate_Params *params, const int *verts_group, int verts_group_count) ATTR_NONNULL(1
 
void BM_mesh_partial_destroy (BMPartialUpdate *bmpinfo) ATTR_NONNULL(1)
 

Variables

BMPartialUpdate ATTR_WARN_UNUSED_RESULT
 

Typedef Documentation

◆ BMPartialUpdate

Cached data to speed up partial updates.

Hints:

  • Avoid creating this data for single updates, it should be created and reused across multiple updates to gain a significant benefit (while transforming geometry for example).
  • Partial normal updates use face & loop indices, setting them to dirty values between updates will slow down normal recalculation.

◆ BMPartialUpdate_Params

Parameters used to determine which kinds of data needs to be generated.

Function Documentation

◆ BM_mesh_partial_create_from_verts()

BMPartialUpdate* BM_mesh_partial_create_from_verts ( BMesh bm,
const BMPartialUpdate_Params params,
const unsigned int *  verts_mask,
int  verts_mask_count 
)

All Tagged & Connected, see: BM_mesh_partial_create_from_verts Operate on everything that's tagged as well as connected geometry.

◆ BM_mesh_partial_create_from_verts_group_multi()

BMPartialUpdate* BM_mesh_partial_create_from_verts_group_multi ( BMesh bm,
const BMPartialUpdate_Params params,
const int *  verts_group,
int  verts_group_count 
)

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.

Parameters
verts_groupVertex aligned array of groups. Values are used as follows:
  • >0: Each face is grouped with other faces of the same group.
  • 0: Not in a group (don't handle these).
  • -1: Don't use grouping logic (include any face that contains a vertex with this group).
verts_group_countThe number of non-zero values in verts_groups.

◆ BM_mesh_partial_create_from_verts_group_single()

BMPartialUpdate* BM_mesh_partial_create_from_verts_group_single ( BMesh bm,
const BMPartialUpdate_Params params,
const unsigned int *  verts_mask,
int  verts_mask_count 
)

All Connected, operate on all faces that have both tagged and un-tagged vertices.

Reduces computations when transforming isolated regions.

◆ BM_mesh_partial_destroy()

void BM_mesh_partial_destroy ( BMPartialUpdate bmpinfo)

Variable Documentation

◆ ATTR_WARN_UNUSED_RESULT

BMPartialUpdate ATTR_WARN_UNUSED_RESULT

Definition at line 49 of file bmesh_mesh_partial_update.h.