Blender V5.0
ED_mesh.hh File Reference

Go to the source code of this file.

Classes

class  EditMeshSymmetryHelper
struct  EDBMUpdate_Params
struct  MirrTopoStore_t
struct  BMBackup

Namespaces

namespace  blender
namespace  blender::ed
namespace  blender::ed::mesh

Macros

#define ED_MESH_PICK_DEFAULT_VERT_DIST   25
#define ED_MESH_PICK_DEFAULT_FACE_DIST   1
#define USE_LOOPSLIDE_HACK

Enumerations

enum  eEditMesh_PreSelPreviewAction { PRESELECT_ACTION_TRANSFORM = 1 , PRESELECT_ACTION_CREATE = 2 , PRESELECT_ACTION_DELETE = 3 }

Functions

void EDBM_verts_mirror_cache_begin_ex (BMEditMesh *em, int axis, bool use_self, bool use_select, bool respecthide, bool use_topology, float maxdist, int *r_index)
void EDBM_verts_mirror_cache_begin (BMEditMesh *em, int axis, bool use_self, bool use_select, bool respecthide, bool use_topology)
void EDBM_verts_mirror_apply (BMEditMesh *em, int sel_from, int sel_to)
BMVertEDBM_verts_mirror_get (BMEditMesh *em, BMVert *v)
BMEdgeEDBM_verts_mirror_get_edge (BMEditMesh *em, BMEdge *e)
BMFaceEDBM_verts_mirror_get_face (BMEditMesh *em, BMFace *f)
void EDBM_verts_mirror_cache_clear (BMEditMesh *em, BMVert *v)
void EDBM_verts_mirror_cache_end (BMEditMesh *em)
void EDBM_mesh_normals_update_ex (BMEditMesh *em, const BMeshNormalsUpdate_Params *params)
void EDBM_mesh_normals_update (BMEditMesh *em)
void EDBM_selectmode_to_scene (bContext *C)
void EDBM_mesh_make (Object *ob, int select_mode, bool add_key_index)
void EDBM_mesh_make_from_mesh (Object *ob, Mesh *src_mesh, int select_mode, bool add_key_index)
void EDBM_mesh_free_data (BMEditMesh *em)
void EDBM_mesh_load_ex (Main *bmain, Object *ob, bool free_data)
void EDBM_mesh_load (Main *bmain, Object *ob)
void EDBM_select_more (BMEditMesh *em, bool use_face_step)
void EDBM_select_less (BMEditMesh *em, bool use_face_step)
void EDBM_selectmode_flush_ex (BMEditMesh *em, short selectmode)
void EDBM_selectmode_flush (BMEditMesh *em)
void EDBM_select_flush_from_verts (BMEditMesh *em, bool select)
bool EDBM_vert_color_check (BMEditMesh *em)
bool EDBM_mesh_hide (BMEditMesh *em, bool swap)
bool EDBM_mesh_reveal (BMEditMesh *em, bool select)
void EDBM_update (Mesh *mesh, const EDBMUpdate_Params *params)
void EDBM_update_extern (Mesh *mesh, bool do_tessellation, bool is_destructive)
UvElementMapBM_uv_element_map_create (BMesh *bm, const Scene *scene, bool uv_selected, bool use_winding, bool use_seams, bool do_islands)
void BM_uv_element_map_free (UvElementMap *element_map)
UvElementBM_uv_element_get (const UvElementMap *element_map, const BMLoop *l)
UvElementBM_uv_element_get_head (UvElementMap *element_map, UvElement *child)
int BM_uv_element_get_unique_index (UvElementMap *element_map, UvElement *child)
UvElement ** BM_uv_element_map_ensure_head_table (UvElementMap *element_map)
int * BM_uv_element_map_ensure_unique_index (UvElementMap *element_map)
bool EDBM_uv_check (BMEditMesh *em)
BMFaceEDBM_uv_active_face_get (BMEditMesh *em, bool sloppy, bool selected)
void BM_uv_vert_map_free (UvVertMap *vmap)
UvMapVertBM_uv_vert_map_at_index (UvVertMap *vmap, unsigned int v)
UvVertMapBM_uv_vert_map_create (BMesh *bm, bool use_select, bool respect_hide)
void EDBM_flag_enable_all (BMEditMesh *em, char hflag)
void EDBM_flag_disable_all (BMEditMesh *em, char hflag)
bool EDBM_uvselect_clear (BMEditMesh *em)
bool BMBVH_EdgeVisible (const BMBVHTree *tree, const BMEdge *e, const Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const Object *obedit)
void EDBM_project_snap_verts (bContext *C, Depsgraph *depsgraph, ARegion *region, Object *obedit, BMEditMesh *em)
bool EDBM_automerge (Object *obedit, bool update, char hflag, float dist)
bool EDBM_automerge_connected (Object *obedit, bool update, char hflag, float dist)
bool EDBM_automerge_and_split (Object *obedit, bool split_edges, bool split_faces, bool update, char hflag, float dist)
void ED_mesh_undosys_type (UndoType *ut)
void EDBM_select_mirrored (BMEditMesh *em, const Mesh *mesh, int axis, bool extend, int *r_totmirr, int *r_totfail)
BMVertEDBM_vert_find_nearest_ex (ViewContext *vc, float *dist_px_manhattan_p, bool use_select_bias, bool use_cycle, blender::Span< Base * > bases, uint *r_base_index)
BMVertEDBM_vert_find_nearest (ViewContext *vc, float *dist_px_manhattan_p)
BMEdgeEDBM_edge_find_nearest_ex (ViewContext *vc, float *dist_px_manhattan, float *r_dist_center, bool use_select_bias, bool use_cycle, BMEdge **r_eed_zbuf, blender::Span< Base * > bases, uint *r_base_index)
BMEdgeEDBM_edge_find_nearest (ViewContext *vc, float *dist_px_manhattan_p)
BMFaceEDBM_face_find_nearest_ex (ViewContext *vc, float *dist_px_manhattan, float *r_dist_center, bool use_zbuf_single_px, bool use_select_bias, bool use_cycle, BMFace **r_efa_zbuf, blender::Span< Base * > bases, uint *r_base_index)
BMFaceEDBM_face_find_nearest (ViewContext *vc, float *dist_px_manhattan_p)
bool EDBM_unified_findnearest (ViewContext *vc, blender::Span< Base * > bases, int *r_base_index, BMVert **r_eve, BMEdge **r_eed, BMFace **r_efa)
bool EDBM_unified_findnearest_from_raycast (ViewContext *vc, blender::Span< Base * > bases, bool use_boundary_vertices, bool use_boundary_edges, int *r_base_index_vert, int *r_base_index_edge, int *r_base_index_face, BMVert **r_eve, BMEdge **r_eed, BMFace **r_efa)
bool EDBM_select_pick (bContext *C, const int mval[2], const SelectPick_Params &params)
void EDBM_selectmode_set (BMEditMesh *em, short selectmode)
void EDBM_selectmode_convert (BMEditMesh *em, short selectmode_old, short selectmode_new)
bool EDBM_selectmode_set_multi_ex (Scene *scene, blender::Span< Object * > objects, const short selectmode)
bool EDBM_selectmode_set_multi (bContext *C, short selectmode)
bool EDBM_selectmode_toggle_multi (bContext *C, short selectmode_toggle, int action, bool use_extend, bool use_expand)
bool EDBM_selectmode_disable (Scene *scene, BMEditMesh *em, short selectmode_disable, short selectmode_fallback)
bool EDBM_deselect_by_material (BMEditMesh *em, short index, bool select)
void EDBM_select_toggle_all (BMEditMesh *em)
void EDBM_select_swap (BMEditMesh *em)
bool EDBM_select_interior_faces (BMEditMesh *em)
ViewContext em_setup_viewcontext (bContext *C)
bool EDBM_mesh_deselect_all_multi_ex (blender::Span< Base * > bases)
bool EDBM_mesh_deselect_all_multi (bContext *C)
bool EDBM_selectmode_disable_multi_ex (Scene *scene, blender::Span< Base * > bases, short selectmode_disable, short selectmode_fallback)
bool EDBM_selectmode_disable_multi (bContext *C, short selectmode_disable, short selectmode_fallback)
EditMesh_PreSelEdgeRingEDBM_preselect_edgering_create ()
void EDBM_preselect_edgering_destroy (EditMesh_PreSelEdgeRing *psel)
void EDBM_preselect_edgering_clear (EditMesh_PreSelEdgeRing *psel)
void EDBM_preselect_edgering_draw (EditMesh_PreSelEdgeRing *psel, const float matrix[4][4])
void EDBM_preselect_edgering_update_from_edge (EditMesh_PreSelEdgeRing *psel, BMesh *bm, BMEdge *eed_start, int previewlines, blender::Span< blender::float3 > vert_positions)
EditMesh_PreSelElemEDBM_preselect_elem_create ()
void EDBM_preselect_elem_destroy (EditMesh_PreSelElem *psel)
void EDBM_preselect_elem_clear (EditMesh_PreSelElem *psel)
void EDBM_preselect_preview_clear (EditMesh_PreSelElem *psel)
void EDBM_preselect_elem_draw (EditMesh_PreSelElem *psel, const float matrix[4][4])
void EDBM_preselect_elem_update_from_single (EditMesh_PreSelElem *psel, BMesh *bm, BMElem *ele, blender::Span< blender::float3 > vert_positions)
void EDBM_preselect_elem_update_preview (EditMesh_PreSelElem *psel, ViewContext *vc, BMesh *bm, BMElem *ele, const int mval[2])
void EDBM_preselect_action_set (EditMesh_PreSelElem *psel, eEditMesh_PreSelPreviewAction action)
eEditMesh_PreSelPreviewAction EDBM_preselect_action_get (EditMesh_PreSelElem *psel)
void ED_operatortypes_mesh ()
void ED_operatormacros_mesh ()
void ED_keymap_mesh (wmKeyConfig *keyconf)
void paintface_flush_flags (bContext *C, Object *ob, bool flush_selection, bool flush_hidden)
bool paintface_mouse_select (bContext *C, const int mval[2], const SelectPick_Params &params, Object *ob)
bool paintface_deselect_all_visible (bContext *C, Object *ob, int action, bool flush_flags)
void paintface_select_linked (bContext *C, Object *ob, const int mval[2], bool select)
void paintface_select_loop (bContext *C, Object *ob, const int mval[2], bool select)
void paintface_select_more (Mesh *mesh, bool face_step)
void paintface_select_less (Mesh *mesh, bool face_step)
bool paintface_minmax (Object *ob, float r_min[3], float r_max[3])
void paintface_hide (bContext *C, Object *ob, bool unselected)
void paintface_reveal (bContext *C, Object *ob, bool select)
bool paintvert_deselect_all_visible (Object *ob, int action, bool flush_flags)
void paintvert_select_ungrouped (Object *ob, bool extend, bool flush_flags)
void paintvert_flush_flags (Object *ob)
void paintvert_tag_select_update (bContext *C, Object *ob)
void paintvert_select_linked (bContext *C, Object *ob)
void paintvert_select_linked_pick (bContext *C, Object *ob, const int region_coordinates[2], bool select)
void paintvert_select_more (Mesh *mesh, bool face_step)
void paintvert_select_less (Mesh *mesh, bool face_step)
void paintvert_hide (bContext *C, Object *ob, bool unselected)
void paintvert_reveal (bContext *C, Object *ob, bool select)
bool ED_mesh_mirrtopo_recalc_check (BMEditMesh *em, Mesh *mesh, MirrTopoStore_t *mesh_topo_store)
void ED_mesh_mirrtopo_init (BMEditMesh *em, Mesh *mesh, MirrTopoStore_t *mesh_topo_store, bool skip_em_vert_array_init)
void ED_mesh_mirrtopo_free (MirrTopoStore_t *mesh_topo_store)
void ED_mesh_verts_add (Mesh *mesh, ReportList *reports, int count)
void ED_mesh_edges_add (Mesh *mesh, ReportList *reports, int count)
void ED_mesh_loops_add (Mesh *mesh, ReportList *reports, int count)
void ED_mesh_faces_add (Mesh *mesh, ReportList *reports, int count)
void ED_mesh_verts_remove (Mesh *mesh, ReportList *reports, int count)
void ED_mesh_edges_remove (Mesh *mesh, ReportList *reports, int count)
void ED_mesh_loops_remove (Mesh *mesh, ReportList *reports, int count)
void ED_mesh_faces_remove (Mesh *mesh, ReportList *reports, int count)
void ED_mesh_geometry_clear (Mesh *mesh)
blender::bke::AttributeWriter< bool > ED_mesh_uv_map_pin_layer_ensure (Mesh *mesh, int uv_index)
blender::VArray< bool > ED_mesh_uv_map_pin_layer_get (const Mesh *mesh, int uv_index)
void ED_mesh_uv_ensure (Mesh *mesh, const char *name)
int ED_mesh_uv_add (Mesh *mesh, const char *name, bool active_set, bool do_init, ReportList *reports)
void ED_mesh_uv_loop_reset (bContext *C, Mesh *mesh)
bool ED_mesh_color_ensure (Mesh *mesh, const char *name)
int ED_mesh_color_add (Mesh *mesh, const char *name, bool active_set, bool do_init, ReportList *reports)
void ED_mesh_report_mirror (ReportList &reports, int totmirr, int totfail)
void ED_mesh_report_mirror_ex (ReportList &reports, int totmirr, int totfail, char selectmode)
KeyBlockED_mesh_get_edit_shape_key (const Mesh *me)
MeshED_mesh_context (bContext *C)
void ED_mesh_split_faces (Mesh *mesh)
BMBackup EDBM_redo_state_store (BMEditMesh *em)
void EDBM_redo_state_restore (BMBackup *backup, BMEditMesh *em, bool recalc_looptris) ATTR_NONNULL(1
void void EDBM_redo_state_restore_and_free (BMBackup *backup, BMEditMesh *em, bool recalc_looptris) ATTR_NONNULL(1
void void void EDBM_redo_state_free (BMBackup *backup) ATTR_NONNULL(1)
wmOperatorStatus blender::ed::mesh::join_objects_exec (bContext *C, wmOperator *op)
wmOperatorStatus ED_mesh_shapes_join_objects_exec (bContext *C, bool ensure_keys_exist, bool mirror, ReportList *reports)
void ED_mesh_mirror_spatial_table_begin (Object *ob, BMEditMesh *em, Mesh *mesh_eval)
void ED_mesh_mirror_spatial_table_end (Object *ob)
int ED_mesh_mirror_spatial_table_lookup (Object *ob, BMEditMesh *em, Mesh *mesh_eval, const float co[3])
void ED_mesh_mirror_topo_table_begin (Object *ob, Mesh *mesh_eval)
void ED_mesh_mirror_topo_table_end (Object *ob)
int mesh_get_x_mirror_vert (Object *ob, Mesh *mesh_eval, int index, bool use_topology)
BMVerteditbmesh_get_x_mirror_vert (Object *ob, BMEditMesh *em, BMVert *eve, const float co[3], int index, bool use_topology)
int * mesh_get_x_mirror_faces (Object *ob, BMEditMesh *em, Mesh *mesh_eval)
int ED_mesh_mirror_get_vert (Object *ob, int index)
bool ED_mesh_pick_vert (bContext *C, Object *ob, const int mval[2], uint dist_px, bool use_zbuf, uint *r_index)
bool ED_mesh_pick_face (bContext *C, Object *ob, const int mval[2], uint dist_px, uint *r_index)
bool ED_mesh_pick_face_vert (bContext *C, Object *ob, const int mval[2], uint dist_px, uint *r_index)
bool ED_mesh_pick_edge (bContext *C, Object *ob, const int mval[2], uint dist_px, uint *r_index)
MDeformVertED_mesh_active_dvert_get_em (Object *ob, BMVert **r_eve)
MDeformVertED_mesh_active_dvert_get_ob (Object *ob, int *r_index)
MDeformVertED_mesh_active_dvert_get_only (Object *ob)
void EDBM_mesh_stats_multi (blender::Span< Object * > objects, int totelem[3], int totelem_sel[3])
void EDBM_mesh_elem_index_ensure_multi (blender::Span< Object * > objects, char htype)

Macro Definition Documentation

◆ ED_MESH_PICK_DEFAULT_FACE_DIST

#define ED_MESH_PICK_DEFAULT_FACE_DIST   1

◆ ED_MESH_PICK_DEFAULT_VERT_DIST

#define ED_MESH_PICK_DEFAULT_VERT_DIST   25

◆ USE_LOOPSLIDE_HACK

#define USE_LOOPSLIDE_HACK

Definition at line 657 of file ED_mesh.hh.

Enumeration Type Documentation

◆ eEditMesh_PreSelPreviewAction

Enumerator
PRESELECT_ACTION_TRANSFORM 
PRESELECT_ACTION_CREATE 
PRESELECT_ACTION_DELETE 

Definition at line 412 of file ED_mesh.hh.

Function Documentation

◆ BM_uv_element_get()

UvElement * BM_uv_element_get ( const UvElementMap * element_map,
const BMLoop * l )

Return the UvElement associated with a given BMLoop, or NULL if no association exists.

Parameters
element_mapThe UvElementMap to look in.
lThe loop to search for.
Returns
The UvElement associated with l, or NULL if not found. (e.g. the vertex is hidden.)

Definition at line 1221 of file editmesh_utils.cc.

References BM_elem_index_get, element, l, and UvElementMap::vertex.

Referenced by bm_uv_edge_select_build_islands(), blender::ed::transform::createTransUVs(), iso_index_for_loop(), relaxation_iteration_uv(), stitch_init(), stitch_process_data(), stitch_select(), stitch_uv_edge_generate_linked_edges(), uv_edge_get(), uv_element_offset_from_face_get(), and uv_sculpt_stroke_init().

◆ BM_uv_element_get_head()

◆ BM_uv_element_get_unique_index()

int BM_uv_element_get_unique_index ( UvElementMap * element_map,
UvElement * child )

◆ BM_uv_element_map_create()

◆ BM_uv_element_map_ensure_head_table()

UvElement ** BM_uv_element_map_ensure_head_table ( UvElementMap * element_map)

◆ BM_uv_element_map_ensure_unique_index()

int * BM_uv_element_map_ensure_unique_index ( UvElementMap * element_map)

◆ BM_uv_element_map_free()

◆ BM_uv_vert_map_at_index()

UvMapVert * BM_uv_vert_map_at_index ( UvVertMap * vmap,
unsigned int v )

Definition at line 587 of file editmesh_utils.cc.

References v, and UvVertMap::vert.

Referenced by uv_select_linked_multi().

◆ BM_uv_vert_map_create()

◆ BM_uv_vert_map_free()

void BM_uv_vert_map_free ( UvVertMap * vmap)

Definition at line 1194 of file editmesh_utils.cc.

References UvVertMap::buf, MEM_freeN(), and UvVertMap::vert.

Referenced by uv_select_linked_multi().

◆ BMBVH_EdgeVisible()

bool BMBVH_EdgeVisible ( const BMBVHTree * tree,
const BMEdge * e,
const Depsgraph * depsgraph,
const ARegion * region,
const View3D * v3d,
const Object * obedit )

◆ ED_keymap_mesh()

void ED_keymap_mesh ( wmKeyConfig * keyconf)

◆ ED_mesh_active_dvert_get_em()

◆ ED_mesh_active_dvert_get_ob()

◆ ED_mesh_active_dvert_get_only()

◆ ED_mesh_color_add()

◆ ED_mesh_color_ensure()

◆ ED_mesh_context()

◆ ED_mesh_edges_add()

void ED_mesh_edges_add ( Mesh * mesh,
ReportList * reports,
int count )

Definition at line 911 of file mesh_data.cc.

References BKE_report(), count, mesh_add_edges(), and RPT_ERROR.

◆ ED_mesh_edges_remove()

void ED_mesh_edges_remove ( Mesh * mesh,
ReportList * reports,
int count )

Definition at line 1002 of file mesh_data.cc.

References BKE_report(), count, mesh_remove_edges(), and RPT_ERROR.

◆ ED_mesh_faces_add()

void ED_mesh_faces_add ( Mesh * mesh,
ReportList * reports,
int count )

Definition at line 929 of file mesh_data.cc.

References BKE_report(), count, mesh_add_faces(), and RPT_ERROR.

◆ ED_mesh_faces_remove()

void ED_mesh_faces_remove ( Mesh * mesh,
ReportList * reports,
int count )

Definition at line 1030 of file mesh_data.cc.

References BKE_report(), count, mesh_remove_faces(), and RPT_ERROR.

◆ ED_mesh_geometry_clear()

void ED_mesh_geometry_clear ( Mesh * mesh)

◆ ED_mesh_get_edit_shape_key()

KeyBlock * ED_mesh_get_edit_shape_key ( const Mesh * me)

◆ ED_mesh_loops_add()

void ED_mesh_loops_add ( Mesh * mesh,
ReportList * reports,
int count )

Definition at line 920 of file mesh_data.cc.

References BKE_report(), count, mesh_add_loops(), and RPT_ERROR.

◆ ED_mesh_loops_remove()

void ED_mesh_loops_remove ( Mesh * mesh,
ReportList * reports,
int count )

Definition at line 1016 of file mesh_data.cc.

References BKE_report(), count, mesh_remove_loops(), and RPT_ERROR.

◆ ED_mesh_mirror_get_vert()

◆ ED_mesh_mirror_spatial_table_begin()

◆ ED_mesh_mirror_spatial_table_end()

◆ ED_mesh_mirror_spatial_table_lookup()

int ED_mesh_mirror_spatial_table_lookup ( Object * ob,
BMEditMesh * em,
Mesh * mesh_eval,
const float co[3] )

◆ ED_mesh_mirror_topo_table_begin()

void ED_mesh_mirror_topo_table_begin ( Object * ob,
Mesh * mesh_eval )

Mode is 's' start, or 'e' end, or 'u' use if end, ob can be NULL.

Note
This is supposed return -1 on error, which callers are currently checking for, but is not used so far.

Definition at line 249 of file meshtools.cc.

References ED_mesh_mirrtopo_init(), mesh_mirror_topo_table_get_meshes(), and mesh_topo_store.

Referenced by ed_mesh_mirror_topo_table_update().

◆ ED_mesh_mirror_topo_table_end()

◆ ED_mesh_mirrtopo_free()

void ED_mesh_mirrtopo_free ( MirrTopoStore_t * mesh_topo_store)

◆ ED_mesh_mirrtopo_init()

◆ ED_mesh_mirrtopo_recalc_check()

bool ED_mesh_mirrtopo_recalc_check ( BMEditMesh * em,
Mesh * mesh,
MirrTopoStore_t * mesh_topo_store )

◆ ED_mesh_pick_edge()

bool ED_mesh_pick_edge ( bContext * C,
Object * ob,
const int mval[2],
uint dist_px,
uint * r_index )

◆ ED_mesh_pick_face()

bool ED_mesh_pick_face ( bContext * C,
Object * ob,
const int mval[2],
uint dist_px,
uint * r_index )

◆ ED_mesh_pick_face_vert()

bool ED_mesh_pick_face_vert ( bContext * C,
Object * ob,
const int mval[2],
uint dist_px,
uint * r_index )

◆ ED_mesh_pick_vert()

◆ ED_mesh_report_mirror()

void ED_mesh_report_mirror ( ReportList & reports,
int totmirr,
int totfail )

◆ ED_mesh_report_mirror_ex()

void ED_mesh_report_mirror_ex ( ReportList & reports,
int totmirr,
int totfail,
char selectmode )

◆ ED_mesh_shapes_join_objects_exec()

◆ ED_mesh_split_faces()

◆ ED_mesh_undosys_type()

◆ ED_mesh_uv_add()

◆ ED_mesh_uv_ensure()

◆ ED_mesh_uv_loop_reset()

void ED_mesh_uv_loop_reset ( bContext * C,
Mesh * mesh )

◆ ED_mesh_uv_map_pin_layer_ensure()

blender::bke::AttributeWriter< bool > ED_mesh_uv_map_pin_layer_ensure ( Mesh * mesh,
int uv_index )

◆ ED_mesh_uv_map_pin_layer_get()

blender::VArray< bool > ED_mesh_uv_map_pin_layer_get ( const Mesh * mesh,
int uv_index )

◆ ED_mesh_verts_add()

void ED_mesh_verts_add ( Mesh * mesh,
ReportList * reports,
int count )

Definition at line 902 of file mesh_data.cc.

References BKE_report(), count, mesh_add_verts(), and RPT_ERROR.

◆ ED_mesh_verts_remove()

void ED_mesh_verts_remove ( Mesh * mesh,
ReportList * reports,
int count )

Definition at line 988 of file mesh_data.cc.

References BKE_report(), count, mesh_remove_verts(), and RPT_ERROR.

◆ ED_operatormacros_mesh()

◆ ED_operatortypes_mesh()

void ED_operatortypes_mesh ( )

Definition at line 21 of file mesh_ops.cc.

References MESH_OT_attribute_set(), MESH_OT_average_normals(), MESH_OT_beautify_fill(), MESH_OT_bevel(), MESH_OT_bisect(), MESH_OT_blend_from_shape(), MESH_OT_bridge_edge_loops(), MESH_OT_colors_reverse(), MESH_OT_colors_rotate(), MESH_OT_convex_hull(), MESH_OT_customdata_custom_splitnormals_add(), MESH_OT_customdata_custom_splitnormals_clear(), MESH_OT_customdata_mask_clear(), MESH_OT_customdata_skin_add(), MESH_OT_customdata_skin_clear(), MESH_OT_decimate(), MESH_OT_delete(), MESH_OT_delete_edgeloop(), MESH_OT_delete_loose(), MESH_OT_dissolve_degenerate(), MESH_OT_dissolve_edges(), MESH_OT_dissolve_faces(), MESH_OT_dissolve_limited(), MESH_OT_dissolve_mode(), MESH_OT_dissolve_verts(), MESH_OT_dupli_extrude_cursor(), MESH_OT_duplicate(), MESH_OT_edge_collapse(), MESH_OT_edge_face_add(), MESH_OT_edge_rotate(), MESH_OT_edge_split(), MESH_OT_edgering_select(), MESH_OT_edges_select_sharp(), MESH_OT_extrude_context(), MESH_OT_extrude_edges_indiv(), MESH_OT_extrude_faces_indiv(), MESH_OT_extrude_region(), MESH_OT_extrude_repeat(), MESH_OT_extrude_verts_indiv(), MESH_OT_face_make_planar(), MESH_OT_face_split_by_edges(), MESH_OT_faces_select_linked_flat(), MESH_OT_faces_shade_flat(), MESH_OT_faces_shade_smooth(), MESH_OT_fill(), MESH_OT_fill_grid(), MESH_OT_fill_holes(), MESH_OT_flip_normals(), MESH_OT_flip_quad_tessellation(), MESH_OT_hide(), MESH_OT_inset(), MESH_OT_intersect(), MESH_OT_intersect_boolean(), MESH_OT_knife_project(), MESH_OT_knife_tool(), MESH_OT_loop_multi_select(), MESH_OT_loop_select(), MESH_OT_loop_to_region(), MESH_OT_loopcut(), MESH_OT_mark_seam(), MESH_OT_mark_sharp(), MESH_OT_merge(), MESH_OT_merge_normals(), MESH_OT_mod_weighted_strength(), MESH_OT_normals_make_consistent(), MESH_OT_normals_tools(), MESH_OT_offset_edge_loops(), MESH_OT_point_normals(), MESH_OT_poke(), MESH_OT_polybuild_delete_at_cursor(), MESH_OT_polybuild_dissolve_at_cursor(), MESH_OT_polybuild_face_at_cursor(), MESH_OT_polybuild_split_at_cursor(), MESH_OT_polybuild_transform_at_cursor(), MESH_OT_primitive_circle_add(), MESH_OT_primitive_cone_add(), MESH_OT_primitive_cube_add(), MESH_OT_primitive_cube_add_gizmo(), MESH_OT_primitive_cylinder_add(), MESH_OT_primitive_grid_add(), MESH_OT_primitive_ico_sphere_add(), MESH_OT_primitive_monkey_add(), MESH_OT_primitive_plane_add(), MESH_OT_primitive_uv_sphere_add(), MESH_OT_quads_convert_to_tris(), MESH_OT_region_to_loop(), MESH_OT_remove_doubles(), MESH_OT_reorder_vertices_spatial(), MESH_OT_reveal(), MESH_OT_rip(), MESH_OT_rip_edge(), MESH_OT_screw(), MESH_OT_select_all(), MESH_OT_select_axis(), MESH_OT_select_by_attribute(), MESH_OT_select_by_pole_count(), MESH_OT_select_face_by_sides(), MESH_OT_select_interior_faces(), MESH_OT_select_less(), MESH_OT_select_linked(), MESH_OT_select_linked_pick(), MESH_OT_select_loose(), MESH_OT_select_mirror(), MESH_OT_select_mode(), MESH_OT_select_more(), MESH_OT_select_non_manifold(), MESH_OT_select_nth(), MESH_OT_select_random(), MESH_OT_select_similar(), MESH_OT_select_similar_region(), MESH_OT_select_ungrouped(), MESH_OT_separate(), MESH_OT_set_normals_from_faces(), blender::ed::mesh::MESH_OT_set_sharpness_by_angle(), MESH_OT_shape_propagate_to_all(), MESH_OT_shortest_path_pick(), MESH_OT_shortest_path_select(), MESH_OT_smooth_normals(), MESH_OT_solidify(), MESH_OT_sort_elements(), MESH_OT_spin(), MESH_OT_split(), MESH_OT_split_normals(), MESH_OT_subdivide(), MESH_OT_subdivide_edgering(), MESH_OT_symmetrize(), MESH_OT_symmetry_snap(), MESH_OT_tris_convert_to_quads(), MESH_OT_unsubdivide(), MESH_OT_uv_texture_add(), MESH_OT_uv_texture_remove(), MESH_OT_uvs_reverse(), MESH_OT_uvs_rotate(), MESH_OT_vert_connect(), MESH_OT_vert_connect_concave(), MESH_OT_vert_connect_nonplanar(), MESH_OT_vert_connect_path(), MESH_OT_vertices_smooth(), MESH_OT_vertices_smooth_laplacian(), MESH_OT_wireframe(), SCULPT_OT_face_set_extract(), SCULPT_OT_paint_mask_extract(), SCULPT_OT_paint_mask_slice(), and WM_operatortype_append().

Referenced by ED_spacetypes_init().

◆ EDBM_automerge()

bool EDBM_automerge ( Object * obedit,
bool update,
char hflag,
float dist )

◆ EDBM_automerge_and_split()

◆ EDBM_automerge_connected()

bool EDBM_automerge_connected ( Object * obedit,
bool update,
char hflag,
float dist )
Returns
true if a change is made.

Definition at line 81 of file editmesh_automerge.cc.

References edbm_automerge_impl(), and update().

Referenced by edbm_bevel_calc(), and mesh_symmetrize_exec().

◆ EDBM_deselect_by_material()

bool EDBM_deselect_by_material ( BMEditMesh * em,
short index,
bool select )

◆ EDBM_edge_find_nearest()

◆ EDBM_edge_find_nearest_ex()

BMEdge * EDBM_edge_find_nearest_ex ( ViewContext * vc,
float * dist_px_manhattan,
float * r_dist_center,
bool use_select_bias,
bool use_cycle,
BMEdge ** r_eed_zbuf,
blender::Span< Base * > bases,
uint * r_base_index )

◆ EDBM_face_find_nearest()

◆ EDBM_face_find_nearest_ex()

BMFace * EDBM_face_find_nearest_ex ( ViewContext * vc,
float * dist_px_manhattan,
float * r_dist_center,
bool use_zbuf_single_px,
bool use_select_bias,
bool use_cycle,
BMFace ** r_efa_zbuf,
blender::Span< Base * > bases,
uint * r_base_index )
Parameters
use_zbuf_single_pxSpecial case, when using the back-buffer selection, only use the pixel at vc->mval instead of using dist_px_manhattan_p to search over a larger region. This is needed because historically selection worked this way for a long time, however it's reasonable that some callers might want to expand the region too. So add an argument to do this,

◆ EDBM_flag_disable_all()

◆ EDBM_flag_enable_all()

void EDBM_flag_enable_all ( BMEditMesh * em,
char hflag )

◆ EDBM_mesh_deselect_all_multi()

◆ EDBM_mesh_deselect_all_multi_ex()

bool EDBM_mesh_deselect_all_multi_ex ( blender::Span< Base * > bases)

References C.

◆ EDBM_mesh_elem_index_ensure_multi()

void EDBM_mesh_elem_index_ensure_multi ( blender::Span< Object * > objects,
char htype )

◆ EDBM_mesh_free_data()

◆ EDBM_mesh_hide()

◆ EDBM_mesh_load()

void EDBM_mesh_load ( Main * bmain,
Object * ob )

◆ EDBM_mesh_load_ex()

void EDBM_mesh_load_ex ( Main * bmain,
Object * ob,
bool free_data )
Warning
This can invalidate the Mesh runtime cache of other objects (for linked duplicates). Most callers should run DEG_id_tag_update on ob->data, see: #46738, #46913. This ensures BKE_object_free_derived_caches runs on all objects that use this mesh.

Definition at line 319 of file editmesh_utils.cc.

References bm, BM_mesh_bm_to_me(), Object::data, free_data(), object_shapenr_basis_index_ensured(), params, Mesh::runtime, Object::shapenr, and UNLIKELY.

Referenced by EDBM_mesh_load(), blender::ed::object::editmode_load_free_ex(), and blender::ed::geometry::get_original_geometry_eval_copy().

◆ EDBM_mesh_make()

void EDBM_mesh_make ( Object * ob,
int select_mode,
bool add_key_index )

◆ EDBM_mesh_make_from_mesh()

void EDBM_mesh_make_from_mesh ( Object * ob,
Mesh * src_mesh,
int select_mode,
bool add_key_index )

◆ EDBM_mesh_normals_update()

◆ EDBM_mesh_normals_update_ex()

void EDBM_mesh_normals_update_ex ( BMEditMesh * em,
const BMeshNormalsUpdate_Params * params )

Definition at line 1726 of file editmesh_utils.cc.

References BMEditMesh::bm, BM_mesh_normals_update_ex(), and params.

Referenced by EDBM_mesh_normals_update().

◆ EDBM_mesh_reveal()

◆ EDBM_mesh_stats_multi()

void EDBM_mesh_stats_multi ( blender::Span< Object * > objects,
int totelem[3],
int totelem_sel[3] )

◆ EDBM_preselect_action_get()

◆ EDBM_preselect_action_set()

void EDBM_preselect_action_set ( EditMesh_PreSelElem * psel,
eEditMesh_PreSelPreviewAction action )

◆ EDBM_preselect_edgering_clear()

◆ EDBM_preselect_edgering_create()

EditMesh_PreSelEdgeRing * EDBM_preselect_edgering_create ( )

Definition at line 132 of file editmesh_preselect_edgering.cc.

References MEM_callocN().

Referenced by gizmo_preselect_edgering_setup(), and ringsel_init().

◆ EDBM_preselect_edgering_destroy()

void EDBM_preselect_edgering_destroy ( EditMesh_PreSelEdgeRing * psel)

◆ EDBM_preselect_edgering_draw()

◆ EDBM_preselect_edgering_update_from_edge()

void EDBM_preselect_edgering_update_from_edge ( EditMesh_PreSelEdgeRing * psel,
BMesh * bm,
BMEdge * eed_start,
int previewlines,
blender::Span< blender::float3 > vert_positions )

◆ EDBM_preselect_elem_clear()

◆ EDBM_preselect_elem_create()

EditMesh_PreSelElem * EDBM_preselect_elem_create ( )

◆ EDBM_preselect_elem_destroy()

void EDBM_preselect_elem_destroy ( EditMesh_PreSelElem * psel)

◆ EDBM_preselect_elem_draw()

◆ EDBM_preselect_elem_update_from_single()

void EDBM_preselect_elem_update_from_single ( EditMesh_PreSelElem * psel,
BMesh * bm,
BMElem * ele,
blender::Span< blender::float3 > vert_positions )

References bm, C, face_step(), params, and select.

Referenced by gizmo_preselect_elem_test_select().

◆ EDBM_preselect_elem_update_preview()

◆ EDBM_preselect_preview_clear()

◆ EDBM_project_snap_verts()

◆ EDBM_redo_state_free()

void void void EDBM_redo_state_free ( BMBackup * backup)

◆ EDBM_redo_state_restore()

void EDBM_redo_state_restore ( BMBackup * backup,
BMEditMesh * em,
bool recalc_looptris )

Restore a BMesh from backup.

Referenced by edbm_bevel_calc(), edbm_inset_calc(), and mesh_bisect_exec().

◆ EDBM_redo_state_restore_and_free()

void void EDBM_redo_state_restore_and_free ( BMBackup * backup,
BMEditMesh * em,
bool recalc_looptris )

Delete the backup, flushing it to an edit-mesh.

Referenced by edbm_bevel_cancel(), edbm_connect_vert_pair(), and edbm_inset_cancel().

◆ EDBM_redo_state_store()

BMBackup EDBM_redo_state_store ( BMEditMesh * em)

Save a copy of the BMesh for restoring later.

Definition at line 54 of file editmesh_utils.cc.

References BMEditMesh::bm, BM_mesh_copy(), and BMBackup::bmcopy.

Referenced by edbm_bevel_init(), edbm_connect_vert_pair(), edbm_inset_init(), and mesh_bisect_invoke().

◆ EDBM_select_flush_from_verts()

void EDBM_select_flush_from_verts ( BMEditMesh * em,
bool select )

Mode independent selection/de-selection flush from vertices.

Parameters
selectWhen true, flush the selection state to de-selected elements, otherwise perform the opposite, flushing de-selection.

Definition at line 384 of file editmesh_utils.cc.

References BMEditMesh::bm, BM_mesh_select_flush_from_verts(), select, BMEditMesh::selectmode, and BMesh::selectmode.

Referenced by edbm_dissolve_degenerate_exec(), edbm_edge_split_selected_edges(), edbm_edge_split_selected_verts(), edbm_select_random_exec(), EDBM_selectmode_set(), blender::ed::object::select_editbmesh_hook(), and blender::ed::object::vgroup_select_verts().

◆ EDBM_select_interior_faces()

◆ EDBM_select_less()

◆ EDBM_select_mirrored()

◆ EDBM_select_more()

void EDBM_select_more ( BMEditMesh * em,
bool use_face_step )

flushes based on the current select mode. If in vertex select mode, verts select/deselect edges and faces, if in edge select mode, edges select/deselect faces and vertices, and in face select mode faces select/deselect edges and vertices.

Definition at line 391 of file editmesh_utils.cc.

References BMEditMesh::bm, BM_ALL_NOLOOP, BM_ELEM_SELECT, BMO_FLAG_DEFAULTS, BMO_op_exec(), BMO_op_finish(), BMO_op_initf(), BMO_slot_buffer_hflag_enable(), EDBM_selectmode_flush(), EDBM_uvselect_clear(), SCE_SELECT_FACE, BMEditMesh::selectmode, and BMOperator::slots_out.

Referenced by edbm_select_more_exec(), and uv_select_more_less().

◆ EDBM_select_pick()

◆ EDBM_select_swap()

◆ EDBM_select_toggle_all()

◆ EDBM_selectmode_convert()

void EDBM_selectmode_convert ( BMEditMesh * em,
short selectmode_old,
short selectmode_new )

◆ EDBM_selectmode_disable()

bool EDBM_selectmode_disable ( Scene * scene,
BMEditMesh * em,
short selectmode_disable,
short selectmode_fallback )

Use to disable a select-mode if its enabled, Using another mode as a fallback if the disabled mode is the only mode set.

Returns
true if the mode is changed.

Definition at line 2927 of file editmesh_select.cc.

References EDBM_selectmode_set(), NC_SCENE, ND_TOOLSETTINGS, BMEditMesh::selectmode, ToolSettings::selectmode, Scene::toolsettings, and WM_main_add_notifier().

Referenced by EDBM_selectmode_disable_multi_ex(), and knifeproject_exec().

◆ EDBM_selectmode_disable_multi()

◆ EDBM_selectmode_disable_multi_ex()

bool EDBM_selectmode_disable_multi_ex ( Scene * scene,
blender::Span< Base * > bases,
short selectmode_disable,
short selectmode_fallback )

References C.

Referenced by edbm_offset_edgeloop_exec().

◆ EDBM_selectmode_flush()

◆ EDBM_selectmode_flush_ex()

◆ EDBM_selectmode_set()

◆ EDBM_selectmode_set_multi()

◆ EDBM_selectmode_set_multi_ex()

bool EDBM_selectmode_set_multi_ex ( Scene * scene,
blender::Span< Object * > objects,
const short selectmode )

◆ EDBM_selectmode_to_scene()

◆ EDBM_selectmode_toggle_multi()

◆ EDBM_unified_findnearest()

bool EDBM_unified_findnearest ( ViewContext * vc,
blender::Span< Base * > bases,
int * r_base_index,
BMVert ** r_eve,
BMEdge ** r_eed,
BMFace ** r_efa )

◆ EDBM_unified_findnearest_from_raycast()

bool EDBM_unified_findnearest_from_raycast ( ViewContext * vc,
blender::Span< Base * > bases,
bool use_boundary_vertices,
bool use_boundary_edges,
int * r_base_index_vert,
int * r_base_index_edge,
int * r_base_index_face,
BMVert ** r_eve,
BMEdge ** r_eed,
BMFace ** r_efa )

References C, params, and select.

Referenced by gizmo_preselect_elem_test_select().

◆ EDBM_update()

void EDBM_update ( Mesh * mesh,
const EDBMUpdate_Params * params )

So many tools call these that we better make it a generic function.

Definition at line 1767 of file editmesh_utils.cc.

References BKE_editmesh_looptris_and_normals_calc(), BKE_editmesh_looptris_calc(), BLI_assert, BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_SELECT, BM_lnorspace_invalidate(), BM_mesh_elem_table_check(), BM_SPACEARR_BMO_SET, DEG_id_tag_update(), EDBM_mesh_normals_update(), Mesh::id, ID_RECALC_GEOMETRY, LISTBASE_FOREACH, NC_GEOM, ND_DATA, params, Mesh::runtime, BMesh::selected, BMesh::spacearr_dirty, and WM_main_add_notifier().

Referenced by add_primitive_cube_gizmo_exec(), blender::ed::object::data_xform_tag_update(), edbm_add_edge_face_exec(), EDBM_automerge_and_split(), edbm_automerge_impl(), edbm_average_normals_exec(), edbm_beautify_fill_exec(), edbm_bevel_calc(), edbm_bevel_cancel(), edbm_blend_from_shape_exec(), edbm_bridge_edge_loops_for_single_editmesh(), edbm_collapse_edge_exec(), edbm_connect_vert_pair(), edbm_decimate_exec(), edbm_delete_edgeloop_exec(), edbm_delete_exec(), edbm_delete_loose_exec(), edbm_dissolve_degenerate_exec(), edbm_dissolve_edges_exec(), edbm_dissolve_faces_exec(), edbm_dissolve_limited_exec(), edbm_dissolve_verts_exec(), edbm_do_smooth_laplacian_vertex_exec(), edbm_do_smooth_vertex_exec(), edbm_dupli_extrude_cursor_invoke(), edbm_duplicate_exec(), edbm_edge_rotate_selected_exec(), edbm_edge_split_selected_edges(), edbm_edge_split_selected_verts(), edbm_extrude_context_exec(), edbm_extrude_edges_exec(), edbm_extrude_faces_exec(), edbm_extrude_region_exec(), edbm_extrude_repeat_exec(), edbm_extrude_verts_exec(), edbm_face_make_planar_exec(), edbm_face_split_by_edges_exec(), edbm_faces_shade_flat_exec(), edbm_faces_shade_smooth_exec(), edbm_fill_exec(), edbm_fill_grid_exec(), edbm_fill_holes_exec(), edbm_flip_normals_custom_loop_normals(), edbm_flip_normals_face_winding(), edbm_flip_quad_tessellation(), edbm_hide_exec(), edbm_inset_calc(), edbm_inset_cancel(), edbm_intersect_select(), edbm_mark_seam_exec(), edbm_mark_sharp_exec(), edbm_merge_exec(), edbm_mod_weighted_strength_exec(), edbm_normals_make_consistent_exec(), edbm_normals_tools_exec(), edbm_offset_edgeloop_exec(), edbm_point_normals_exec(), edbm_point_normals_modal(), edbm_poke_face_exec(), edbm_polybuild_delete_at_cursor_invoke(), edbm_polybuild_dissolve_at_cursor_invoke(), edbm_polybuild_face_at_cursor_invoke(), edbm_polybuild_split_at_cursor_invoke(), edbm_polybuild_transform_at_cursor_invoke(), edbm_quads_convert_to_tris_exec(), edbm_remove_doubles_exec(), edbm_reveal_exec(), edbm_reverse_colors_exec(), edbm_reverse_uvs_exec(), edbm_rip_edge_invoke(), edbm_rip_invoke(), edbm_rotate_colors_exec(), edbm_rotate_uvs_exec(), edbm_screw_exec(), edbm_select_nth_exec(), edbm_separate_exec(), edbm_set_normals_from_faces_exec(), edbm_shape_propagate_to_all_exec(), edbm_smooth_normals_exec(), edbm_solidify_exec(), edbm_spin_exec(), edbm_split_exec(), edbm_subdivide_edge_ring_exec(), edbm_subdivide_exec(), edbm_tris_convert_to_quads_exec(), edbm_unsubdivide_exec(), EDBM_update_extern(), edbm_vert_connect_concave_exec(), edbm_vert_connect_nonplaner_exec(), edbm_vert_connect_path_exec(), edbm_wireframe_exec(), knifetool_finish_single_post(), make_prim_finish(), mesh_bisect_exec(), blender::ed::mesh::set_attribute::mesh_set_attribute_exec(), mesh_symmetrize_exec(), mesh_symmetry_snap_exec(), mouse_mesh_shortest_path_edge(), mouse_mesh_shortest_path_face(), mouse_mesh_shortest_path_vert(), normals_split_merge(), ringsel_finish(), similar_edge_select_exec(), similar_face_select_exec(), similar_vert_select_exec(), sort_bmelem_flag(), uv_mesh_hide_sync_select(), and uv_reveal_exec().

◆ EDBM_update_extern()

void EDBM_update_extern ( Mesh * mesh,
bool do_tessellation,
bool is_destructive )

Bad level call from Python API.

Definition at line 1810 of file editmesh_utils.cc.

References EDBM_update(), and params.

◆ EDBM_uv_active_face_get()

BMFace * EDBM_uv_active_face_get ( BMEditMesh * em,
bool sloppy,
bool selected )

last_sel, use em->act_face otherwise get the last selected face in the edit-selections at the moment, last_sel is mainly useful for making sure the space image doesn't flicker.

Definition at line 1249 of file editmesh_utils.cc.

References BMEditMesh::bm, BM_mesh_active_face_get(), and EDBM_uv_check().

Referenced by blender::draw::mesh_render_data_create().

◆ EDBM_uv_check()

bool EDBM_uv_check ( BMEditMesh * em)

◆ EDBM_uvselect_clear()

◆ EDBM_vert_color_check()

bool EDBM_vert_color_check ( BMEditMesh * em)

◆ EDBM_vert_find_nearest()

◆ EDBM_vert_find_nearest_ex()

BMVert * EDBM_vert_find_nearest_ex ( ViewContext * vc,
float * dist_px_manhattan_p,
bool use_select_bias,
bool use_cycle,
blender::Span< Base * > bases,
uint * r_base_index )

Nearest vertex under the cursor.

Parameters
dist_px_manhattan_p(in/out), minimal distance to the nearest and at the end, actual distance.
use_select_bias
  • When true, selected vertices are given a 5 pixel bias to make them further than unselected vertices.
  • When false, unselected vertices are given the bias.
use_cycleCycle over elements within FIND_NEAR_CYCLE_THRESHOLD_MIN in order of index.

◆ EDBM_verts_mirror_apply()

◆ EDBM_verts_mirror_cache_begin()

void EDBM_verts_mirror_cache_begin ( BMEditMesh * em,
int axis,
bool use_self,
bool use_select,
bool respecthide,
bool use_topology )

◆ EDBM_verts_mirror_cache_begin_ex()

void EDBM_verts_mirror_cache_begin_ex ( BMEditMesh * em,
int axis,
bool use_self,
bool use_select,
bool respecthide,
bool use_topology,
float maxdist,
int * r_index )
Parameters
emEdit-mesh used for generating mirror data.
use_selfAllow a vertex to point to itself (middle verts).
use_selectRestrict to selected verts.
respecthideSkip hidden vertices.
use_topologyUse topology mirror.
maxdistDistance for close point test.
r_indexOptional array to write into, as an alternative to a custom-data layer (length of total verts).

Definition at line 1306 of file editmesh_utils.cc.

References BLI_assert, bm, BMEditMesh::bm, BM_CD_LAYER_ID, BM_data_layer_add_named(), BM_elem_flag_test, BM_ELEM_HIDDEN, BM_elem_index_get, BM_ELEM_SELECT, BM_ITER_MESH_INDEX, BM_mesh_elem_index_ensure(), BM_mesh_elem_table_ensure(), BM_VERT, BM_vert_at_index(), BM_VERTS_OF_MESH, cache_mirr_intptr_as_bmvert(), CD_FLAG_TEMPORARY, CD_PROP_INT32, BMVert::co, copy_v3_v3(), CustomData_get_layer_index(), CustomData_get_n_offset(), CustomData_get_named_layer_index(), ED_mesh_mirrtopo_free(), ED_mesh_mirrtopo_init(), i, len_squared_v3v3(), mesh_topo_store, BMEditMesh::mirror_cdlayer, square_f(), tree, v, and VERT_INTPTR.

Referenced by EDBM_verts_mirror_cache_begin(), mesh_symmetry_snap_exec(), and blender::ed::transform::transform_convert_mesh_mirrordata_calc().

◆ EDBM_verts_mirror_cache_clear()

void EDBM_verts_mirror_cache_clear ( BMEditMesh * em,
BMVert * v )

◆ EDBM_verts_mirror_cache_end()

◆ EDBM_verts_mirror_get()

◆ EDBM_verts_mirror_get_edge()

BMEdge * EDBM_verts_mirror_get_edge ( BMEditMesh * em,
BMEdge * e )

Definition at line 1462 of file editmesh_utils.cc.

References BM_edge_exists(), e, EDBM_verts_mirror_get(), and LIKELY.

Referenced by EDBM_select_mirrored().

◆ EDBM_verts_mirror_get_face()

◆ editbmesh_get_x_mirror_vert()

BMVert * editbmesh_get_x_mirror_vert ( Object * ob,
BMEditMesh * em,
BMVert * eve,
const float co[3],
int index,
bool use_topology )

◆ em_setup_viewcontext()

◆ mesh_get_x_mirror_faces()

◆ mesh_get_x_mirror_vert()

int mesh_get_x_mirror_vert ( Object * ob,
Mesh * mesh_eval,
int index,
bool use_topology )

◆ paintface_deselect_all_visible()

◆ paintface_flush_flags()

◆ paintface_hide()

◆ paintface_minmax()

◆ paintface_mouse_select()

◆ paintface_reveal()

◆ paintface_select_less()

◆ paintface_select_linked()

◆ paintface_select_loop()

◆ paintface_select_more()

void paintface_select_more ( Mesh * mesh,
bool face_step )

◆ paintvert_deselect_all_visible()

◆ paintvert_flush_flags()

◆ paintvert_hide()

◆ paintvert_reveal()

◆ paintvert_select_less()

◆ paintvert_select_linked()

◆ paintvert_select_linked_pick()

void paintvert_select_linked_pick ( bContext * C,
Object * ob,
const int region_coordinates[2],
bool select )

◆ paintvert_select_more()

◆ paintvert_select_ungrouped()

◆ paintvert_tag_select_update()