58 MPoly *polys, *mp_orig;
59 const int *index_array =
NULL;
79 if (ob_eval ==
NULL) {
89 for (
int i = 0; i < me->
totpoly; i++) {
94 if (me_eval->mpoly == me_orig->
mpoly) {
99 polys = me_eval->mpoly;
100 totpoly = me_eval->totpoly;
103 for (
int i = 0; i < totpoly; i++) {
106 mp_orig = me->
mpoly + index_array[i];
203 if (index != (
uint)-1) {
205 mp = &me->
mpoly[index];
237 for (b = 0; b < mp->
totloop; b++, ml++) {
257 for (
a = 0, mp = me->
mpoly; a < me->totpoly;
a++, mp++) {
312 bool changed =
false;
356 float vec[3], bmat[3][3];
373 for (b = 0; b < mp->
totloop; b++, ml++) {
386 struct bContext *
C,
Object *ob,
const int mval[2],
bool extend,
bool deselect,
bool toggle)
403 mpoly_sel = me->
mpoly + index;
409 if (!extend && !deselect && !toggle) {
448 const int *index_array =
NULL;
460 if (me_eval ==
NULL) {
466 mvert_eval = me_eval->
mvert;
473 for (i = 0; i < totvert; i++,
mv++) {
474 orig_index = index_array[i];
481 for (i = 0; i < totvert; i++,
mv++) {
524 bool changed =
false;
struct Depsgraph * CTX_data_ensure_evaluated_depsgraph(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
CustomData interface, see also DNA_customdata_types.h.
void * CustomData_get_layer(const struct CustomData *data, int type)
void BKE_mesh_flush_select_from_verts(struct Mesh *me)
void BKE_mesh_poly_edgebitmap_insert(unsigned int *edge_bitmap, const struct MPoly *mp, const struct MLoop *mloop)
struct Mesh * BKE_mesh_from_object(struct Object *ob)
void BKE_mesh_mselect_validate(struct Mesh *me)
void BKE_mesh_batch_cache_dirty_tag(struct Mesh *me, eMeshBatchDirtyMode mode)
void BKE_mesh_flush_select_from_polys(struct Mesh *me)
void BKE_mesh_mselect_clear(struct Mesh *me)
void BKE_mesh_flush_hidden_from_polys(struct Mesh *me)
@ BKE_MESH_BATCH_DIRTY_SELECT_PAINT
@ BKE_MESH_BATCH_DIRTY_ALL
General operations, lookup, etc. for blender objects.
struct Mesh * BKE_object_get_evaluated_mesh(struct Object *object)
#define BLI_BITMAP_TEST(_bitmap, _index)
#define BLI_BITMAP_ENABLE(_bitmap, _index)
#define BLI_BITMAP_NEW(_tot, _alloc_string)
void copy_m3_m4(float m1[3][3], const float m2[4][4])
void mul_v3_m3v3(float r[3], const float M[3][3], const float a[3])
void minmax_v3v3_v3(float min[3], float max[3], const float vec[3])
MINLINE void add_v3_v3v3(float r[3], const float a[3], const float b[3])
#define SET_FLAG_FROM_TEST(value, test, flag)
struct Depsgraph Depsgraph
void DEG_id_tag_update(struct ID *id, int flag)
struct Object * DEG_get_evaluated_object(const struct Depsgraph *depsgraph, struct Object *object)
@ ID_RECALC_COPY_ON_WRITE
Object is a sort of wrapper for general info.
bool ED_mesh_pick_face(struct bContext *C, struct Object *ob, const int mval[2], uint dist_px, uint *r_index)
#define ED_MESH_PICK_DEFAULT_FACE_DIST
void ED_region_tag_redraw(struct ARegion *region)
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
const Depsgraph * depsgraph
bool paintface_mouse_select(struct bContext *C, Object *ob, const int mval[2], bool extend, bool deselect, bool toggle)
bool paintface_minmax(Object *ob, float r_min[3], float r_max[3])
void paintvert_flush_flags(Object *ob)
void paintface_reveal(bContext *C, Object *ob, const bool select)
void paintface_hide(bContext *C, Object *ob, const bool unselected)
void paintvert_select_ungrouped(Object *ob, bool extend, bool flush_flags)
bool paintvert_deselect_all_visible(Object *ob, int action, bool flush_flags)
void paintface_flush_flags(struct bContext *C, Object *ob, short flag)
bool paintface_deselect_all_visible(bContext *C, Object *ob, int action, bool flush_flags)
static void select_linked_tfaces_with_seams(Mesh *me, const uint index, const bool select)
void paintvert_tag_select_update(struct bContext *C, struct Object *ob)
void paintface_select_linked(bContext *C, Object *ob, const int mval[2], const bool select)
void(* MEM_freeN)(void *vmemh)
struct MDeformVert * dvert
__forceinline const avxb select(const avxb &m, const avxb &t, const avxb &f)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)