Blender  V2.93
Public Attributes | List of all members
BMEditMesh Struct Reference

#include <BKE_editmesh.h>

Public Attributes

struct BMeshbm
 
struct BMEditMeshemcopy
 
int emcopyusers
 
struct BMLoop *(* looptris )[3]
 
int tottri
 
struct Meshmesh_eval_final
 
struct Meshmesh_eval_cage
 
struct BoundBoxbb_cage
 
CustomData_MeshMasks lastDataMask
 
short selectmode
 
short mat_nr
 
int mirror_cdlayer
 
char needs_flush_to_id
 

Detailed Description

This structure is used for mesh edit-mode.

through this, you get access to both the edit BMesh, its tessellation, and various stuff that doesn't belong in the BMesh struct itself.

the entire derivedmesh and modifier system works with this structure, and not BMesh. Mesh->edit_bmesh stores a pointer to this structure.

Definition at line 51 of file BKE_editmesh.h.

Member Data Documentation

◆ bb_cage

struct BoundBox* BMEditMesh::bb_cage

Cached cage bounding box for selection.

Definition at line 66 of file BKE_editmesh.h.

Referenced by BKE_editmesh_cage_boundbox_get(), BKE_editmesh_copy(), and BKE_editmesh_free_derivedmesh().

◆ bm

struct BMesh* BMEditMesh::bm

Definition at line 52 of file BKE_editmesh.h.

Referenced by applyNormalRotation(), armature_deform_coords_impl(), average_islands_scale_exec(), BKE_bmbvh_new_from_editmesh(), BKE_crazyspace_get_mapped_editverts(), BKE_crazyspace_set_quats_editmesh(), BKE_editmesh_cache_calc_minmax(), BKE_editmesh_cache_ensure_poly_centers(), BKE_editmesh_cache_ensure_poly_normals(), BKE_editmesh_cache_ensure_vert_normals(), BKE_editmesh_copy(), BKE_editmesh_create(), BKE_editmesh_free(), BKE_editmesh_lnorspace_update(), BKE_editmesh_loop_tangent_calc(), BKE_mesh_clear_facemap_customdata(), BKE_mesh_count_selected_items(), BKE_mesh_ensure_facemap_customdata(), BKE_mesh_ensure_skin_customdata(), BKE_mesh_foreach_mapped_edge(), BKE_mesh_foreach_mapped_face_center(), BKE_mesh_foreach_mapped_loop(), BKE_mesh_foreach_mapped_vert(), BKE_mesh_has_custom_loop_normals(), BKE_mesh_material_remap(), BKE_mesh_wrapper_edge_len(), BKE_mesh_wrapper_ensure_mdata(), BKE_mesh_wrapper_loop_len(), BKE_mesh_wrapper_poly_len(), BKE_mesh_wrapper_vert_coords_copy(), BKE_mesh_wrapper_vert_coords_copy_with_mat4(), BKE_mesh_wrapper_vert_len(), BKE_object_defgroup_clear(), BKE_view_layer_filter_edit_mesh_has_edges(), BKE_view_layer_filter_edit_mesh_has_uvs(), bpy_bm_from_edit_mesh(), bvhtree_from_editmesh_edges_create_tree(), bvhtree_from_editmesh_verts_create_tree(), calc_ortho_extent(), construct_param_handle_multi(), construct_param_handle_subsurfed(), contarget_get_mesh_mat(), correct_uv_aspect(), correctivesmooth_modifier_do(), create_orco_mesh(), createEdgeSlideVerts_double_side(), createEdgeSlideVerts_single_side(), createTransEdge(), createTransEditVerts(), createTransMeshSkin(), createTransUVs(), createVertSlideVerts(), cube_project_exec(), curve_deform_coords_impl(), cylinder_project_exec(), deformVerts(), deformVerts_do(), delete_customdata_layer(), deselect_nth_active(), do_lasso_select_mesh(), do_lasso_select_mesh_uv(), do_mesh_box_select(), draw_select_id_edit_mesh(), DRW_text_edit_mesh_measure_stats(), ED_mesh_active_dvert_get_em(), ED_mesh_color_add(), ED_mesh_mirror_get_vert(), ED_mesh_mirror_spatial_table_begin(), ED_mesh_mirrtopo_init(), ED_mesh_mirrtopo_recalc_check(), ED_mesh_sculpt_color_add(), ED_mesh_uv_loop_reset_ex(), ED_mesh_uv_texture_add(), ED_mesh_uv_texture_ensure(), ED_object_calc_active_center_for_editmode(), ED_object_data_xform_by_mat4(), ED_object_data_xform_create_ex(), ED_object_data_xform_restore(), ED_object_editmode_load_free_ex(), ED_operator_uvmap(), ED_space_image_auto_set(), ED_transform_calc_gizmo_stats(), ED_transverts_create_from_obedit(), ED_transverts_update_obedit(), ED_uvedit_ensure_uvs(), ED_uvedit_get_aspect(), ED_uvedit_live_unwrap_begin(), ED_uvedit_median_multi(), ED_uvedit_minmax_multi(), ED_uvedit_nearest_uv(), ED_uvedit_pack_islands_multi(), ED_uvedit_select_sync_flush(), ED_vgroup_mirror(), ED_vgroup_parray_alloc(), ED_vgroup_parray_mirror_assign(), ED_vgroup_parray_mirror_sync(), ED_vgroup_vert_active_mirror(), ED_view3d_gizmo_mesh_preselect_get_active(), edbm_add_edge_face_exec(), EDBM_automerge(), EDBM_automerge_and_split(), edbm_average_normals_exec(), edbm_backbuf_check_and_select_edges(), edbm_backbuf_check_and_select_faces(), edbm_backbuf_check_and_select_verts(), edbm_beautify_fill_exec(), edbm_bevel_calc(), edbm_bevel_init(), edbm_blend_from_shape_exec(), edbm_bridge_edge_loops_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_deselect_by_material(), EDBM_deselect_flush(), 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_find_nearest_ex(), edbm_edge_rotate_selected_exec(), edbm_edge_split_selected_edges(), edbm_edge_split_selected_verts(), EDBM_elem_from_index_any(), EDBM_elem_to_index_any(), edbm_extrude_context_exec(), edbm_extrude_discrete_faces(), edbm_extrude_edge_exclude_mirror(), edbm_extrude_edges_exec(), edbm_extrude_edges_indiv(), edbm_extrude_ex(), edbm_extrude_faces_exec(), edbm_extrude_htype_from_em_select(), edbm_extrude_mesh(), edbm_extrude_region_exec(), edbm_extrude_repeat_exec(), edbm_extrude_verts_exec(), edbm_extrude_verts_indiv(), EDBM_face_find_nearest_ex(), 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_flag_disable_all(), edbm_flag_disable_all_multi(), EDBM_flag_enable_all(), edbm_flip_normals_exec(), edbm_hide_exec(), edbm_inset_calc(), edbm_inset_init(), edbm_intersect_boolean_exec(), edbm_intersect_exec(), edbm_intersect_select(), edbm_knife_cut_exec(), edbm_loop_multiselect_exec(), edbm_loop_to_region_exec(), edbm_mark_seam_exec(), edbm_mark_sharp_exec(), edbm_merge_exec(), EDBM_mesh_clear(), EDBM_mesh_deselect_all_multi_ex(), EDBM_mesh_elem_index_ensure_multi(), EDBM_mesh_hide(), EDBM_mesh_knife(), EDBM_mesh_load_ex(), EDBM_mesh_make(), EDBM_mesh_normals_update(), EDBM_mesh_reveal(), EDBM_mesh_stats_multi(), edbm_mod_weighted_strength_exec(), edbm_normals_make_consistent_exec(), edbm_normals_tools_exec(), edbm_offset_edgeloop_exec(), EDBM_op_call_and_selectf(), EDBM_op_call_silentf(), EDBM_op_callf(), EDBM_op_finish(), EDBM_op_init(), 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_preselect_or_active(), EDBM_project_snap_verts(), edbm_quads_convert_to_tris_exec(), EDBM_redo_state_free(), EDBM_redo_state_restore(), EDBM_redo_state_store(), edbm_region_to_loop_exec(), edbm_remove_doubles_exec(), edbm_reverse_colors_exec(), edbm_reverse_uvs_exec(), edbm_rip_edge_invoke(), edbm_rip_invoke(), edbm_rip_invoke__edge(), edbm_rip_invoke__vert(), edbm_rotate_colors_exec(), edbm_rotate_uvs_exec(), edbm_screw_exec(), edbm_select_all_exec(), edbm_select_axis_exec(), edbm_select_face_by_sides_exec(), EDBM_select_flush(), edbm_select_id_bm_elem_get(), EDBM_select_interior_faces(), EDBM_select_less(), edbm_select_less_exec(), edbm_select_linked_exec(), edbm_select_linked_flat_faces_exec(), edbm_select_linked_pick_ex(), edbm_select_linked_pick_invoke(), edbm_select_loose_exec(), edbm_select_mirror_exec(), EDBM_select_mirrored(), EDBM_select_more(), edbm_select_more_exec(), edbm_select_non_manifold_exec(), edbm_select_nth_exec(), EDBM_select_pick(), edbm_select_random_exec(), edbm_select_sharp_edges_exec(), edbm_select_similar_region_exec(), EDBM_select_swap(), EDBM_select_toggle_all(), edbm_select_ungrouped_exec(), edbm_select_ungrouped_poll(), EDBM_selectmode_convert(), EDBM_selectmode_flush_ex(), EDBM_selectmode_set(), edbm_separate_exec(), edbm_set_normals_from_faces_exec(), edbm_shape_propagate_to_all_exec(), edbm_shortest_path_pick_exec(), edbm_shortest_path_pick_invoke(), edbm_shortest_path_select_exec(), edbm_smooth_normals_exec(), edbm_solidify_exec(), edbm_sort_elements_exec(), edbm_spin_exec(), edbm_split_exec(), EDBM_stats_update(), edbm_strip_selections(), edbm_subdivide_edge_ring_exec(), edbm_subdivide_exec(), edbm_tris_convert_to_quads_exec(), EDBM_unified_findnearest_from_raycast(), edbm_unsubdivide_exec(), EDBM_update_generic(), EDBM_uv_active_face_get(), EDBM_uv_check(), EDBM_vert_color_check(), edbm_vert_connect_concave_exec(), edbm_vert_connect_nonplaner_exec(), edbm_vert_connect_path_exec(), EDBM_vert_find_nearest_ex(), EDBM_verts_mirror_apply(), EDBM_verts_mirror_cache_begin_ex(), EDBM_verts_mirror_cache_clear(), EDBM_verts_mirror_get(), edbm_wireframe_exec(), edgering_select(), edgetag_ensure_cd_flag(), editbmesh_calc_modifiers(), editbmesh_get_x_mirror_vert_spatial(), editbmesh_get_x_mirror_vert_topo(), editmesh_tessface_calc_intern(), face_map_assign_exec(), face_map_remove_from_exec(), fmap_select(), freeCustomNormalArray(), blender::ed::spreadsheet::GeometryDataSource::get_selected_element_indices(), get_vert_def_nr(), get_weights_array(), getTransformOrientation_ex(), give_parvert(), gizmo_mesh_spin_init_refresh(), gizmo_preselect_edgering_test_select(), gizmo_preselect_elem_test_select(), HC_relaxation_iteration_uv(), initNormalRotation(), initTransform(), key_block_get_data(), knife_make_cuts(), knife_make_face_cuts(), knifeproject_exec(), knifetool_init_bmbvh(), knifetool_invoke(), laplacian_relaxation_iteration_uv(), lattice_deform_coords_impl(), lineart_geometry_object_load(), loop_find_regions(), loopcut_finish(), loopcut_init(), make_child_duplis_faces_from_editmesh(), make_child_duplis_verts_from_editmesh(), make_duplis_faces(), material_slot_assign_exec(), merge_firstlast(), merge_target(), merge_type_itemf(), mesh_bisect_exec(), mesh_bisect_invoke(), mesh_cd_ldata_get_from_mesh(), mesh_cd_vdata_get_from_mesh(), mesh_circle_select(), mesh_customdata_clear_exec__internal(), mesh_customdata_custom_splitnormals_add_exec(), mesh_customdata_custom_splitnormals_clear_exec(), mesh_customdata_get_type(), mesh_customdatacorrect_init_container(), mesh_foreachScreenEdge(), mesh_foreachScreenEdge_clip_bb_segment(), mesh_foreachScreenFace(), mesh_foreachScreenVert(), mesh_render_data_create(), mesh_set_smooth_faces(), mesh_skin_transdata_create(), mesh_symmetrize_exec(), mesh_symmetry_snap_exec(), minimize_stretch_exit(), minimize_stretch_iteration(), modifier_skin_customdata_delete(), modwrap_dependsOnNormals(), mouse_mesh_loop(), mouse_mesh_shortest_path_edge(), mouse_mesh_shortest_path_face(), mouse_mesh_shortest_path_vert(), mouse_mesh_uv_shortest_path_face(), mouse_mesh_uv_shortest_path_vert(), multires_customdata_delete(), multiresModifier_set_levels_from_disps(), normals_split_merge(), object_defgroup_remove_edit_mode(), object_fmap_remap_edit_mode(), object_fmap_remove_edit_mode(), object_origin_set_exec(), overlay_edit_uv_cache_populate(), point_normals_apply(), point_normals_init(), prepare_mesh_for_viewport_render(), raycastEditMesh(), return_editmesh_indexar(), return_editmesh_vgroup(), ringsel_find_edge(), ringsel_finish(), select_editbmesh_hook(), select_linked_delimit_end(), set_mapped_co(), shape_itemf(), shape_propagate(), similar_edge_select_exec(), similar_face_select_exec(), similar_vert_select_exec(), skin_loose_mark_clear_exec(), skin_radii_equalize_exec(), skin_root_mark_exec(), smart_project_exec(), snap_curs_to_sel_ex(), snap_mesh_polygon(), snap_object_data_editmesh_get(), snap_sel_to_grid_exec(), snap_selected_to_location(), snapEditMesh(), sort_bmelem_flag(), special_aftertrans_update__mesh(), sphere_project_exec(), stats_object_edit(), statvis_calc_distort(), statvis_calc_intersect(), statvis_calc_overhang(), statvis_calc_sharp(), stitch_calculate_edge_normal(), stitch_exit(), stitch_init(), stitch_invoke(), transform_convert_mesh_crazyspace_detect(), transform_convert_mesh_islands_calc(), transform_convert_mesh_mirrordata_calc(), transformEnd(), undomesh_from_editmesh(), undomesh_to_editmesh(), uv_box_select_exec(), uv_circle_select_exec(), uv_find_nearest_edge(), uv_find_nearest_face_ex(), uv_find_nearest_loop_from_edge(), uv_find_nearest_loop_from_vert(), uv_find_nearest_vert(), uv_from_view_exec(), uv_hide_exec(), uv_map_clip_correct_multi(), uv_map_mirror(), uv_map_transform_calc_bounds(), uv_map_transform_calc_center_median(), uv_map_transform_center(), uv_mouse_select_multi(), uv_pin_exec(), uv_remove_doubles_to_selected(), uv_remove_doubles_to_unselected(), uv_reveal_exec(), uv_sculpt_stroke_apply(), uv_sculpt_stroke_init(), uv_select_all_perform(), uv_select_edgeloop(), uv_select_edgeloop_double_side_tag(), uv_select_edgeloop_single_side_tag(), uv_select_edgering(), uv_select_flush_from_tag_face(), uv_select_flush_from_tag_loop(), uv_select_flush_from_tag_sticky_loc_internal(), uv_select_linked_multi(), uv_select_more_less(), uv_select_overlap(), uv_select_pinned_exec(), uv_select_split_exec(), uv_shortest_path_pick_ex(), uv_shortest_path_pick_exec(), uv_shortest_path_pick_invoke(), uv_shortest_path_select_exec(), uv_snap_selection_exec(), uv_snap_uvs_offset(), uv_snap_uvs_to_adjacent_unselected(), uv_snap_uvs_to_cursor(), uv_snap_uvs_to_pixels(), uv_weld_align(), uvedit_center(), uvedit_edge_select_disable(), uvedit_edge_select_enable(), uvedit_face_select_disable(), uvedit_face_select_enable(), uvedit_have_selection(), uvedit_select_is_any_selected(), uvedit_translate(), uvedit_unwrap(), uvedit_uv_select_disable(), uvedit_uv_select_enable(), uvedit_vertex_select_tagged(), v3d_editvertex_buts(), vertex_parent_set_exec(), vgroup_assign_verts(), vgroup_copy_active_to_sel(), vgroup_copy_active_to_sel_single(), vgroup_do_remap(), vgroup_normalize_active_vertex(), vgroup_select_verts(), vgroup_smooth_subset(), walker_deselect_nth(), walker_select(), and walker_select_count().

◆ emcopy

struct BMEditMesh* BMEditMesh::emcopy

◆ emcopyusers

int BMEditMesh::emcopyusers

◆ lastDataMask

CustomData_MeshMasks BMEditMesh::lastDataMask

◆ looptris

struct BMLoop*(* BMEditMesh::looptris)[3]

◆ mat_nr

short BMEditMesh::mat_nr

◆ mesh_eval_cage

struct Mesh * BMEditMesh::mesh_eval_cage

◆ mesh_eval_final

struct Mesh* BMEditMesh::mesh_eval_final

◆ mirror_cdlayer

int BMEditMesh::mirror_cdlayer

◆ needs_flush_to_id

char BMEditMesh::needs_flush_to_id

ID data is older than edit-mode data. Set Main.is_memfile_undo_flush_needed when enabling.

Definition at line 82 of file BKE_editmesh.h.

Referenced by BKE_object_data_editmode_flush_ptr_get(), mesh_undosys_step_decode(), and mesh_undosys_step_encode().

◆ selectmode

short BMEditMesh::selectmode

Definition at line 72 of file BKE_editmesh.h.

Referenced by BKE_editmesh_copy(), createTransEditVerts(), createTransMeshSkin(), deselect_nth_active(), DRW_text_edit_mesh_measure_stats(), ED_transverts_create_from_obedit(), edbm_bevel_exit(), edbm_decimate_exec(), EDBM_deselect_flush(), edbm_dissolve_limited_exec(), edbm_dissolve_mode_exec(), edbm_elem_find_nearest(), EDBM_elem_from_selectmode(), edbm_extrude_htype_from_em_select(), edbm_extrude_mesh(), edbm_hide_exec(), edbm_merge_exec(), EDBM_mesh_hide(), EDBM_mesh_make(), EDBM_mesh_reveal(), edbm_region_to_loop_exec(), edbm_remove_doubles_exec(), EDBM_select_flush(), EDBM_select_less(), edbm_select_linked_exec(), edbm_select_linked_pick_exec(), edbm_select_loose_exec(), EDBM_select_mirrored(), EDBM_select_more(), edbm_select_non_manifold_exec(), edbm_select_random_exec(), EDBM_select_swap(), edbm_select_ungrouped_poll(), EDBM_selectmode_disable(), edbm_selectmode_ensure(), EDBM_selectmode_flush(), EDBM_selectmode_set(), EDBM_selectmode_set_multi(), EDBM_selectmode_to_scene(), EDBM_selectmode_toggle_multi(), edbm_shortest_path_pick_invoke(), edbm_shortest_path_select_exec(), edbm_sort_elements_exec(), edbm_strip_selections(), edbm_unsubdivide_exec(), knifetool_init(), merge_type_itemf(), mouse_mesh_loop(), ringsel_finish(), select_similar_type_itemf(), special_aftertrans_update__mesh(), transform_convert_mesh_islands_calc(), transformops_loopsel_hack(), uiTemplateEditModeSelection(), undomesh_to_editmesh(), unified_findnearest(), uv_hide_exec(), uv_reveal_exec(), and VertsToTransData().

◆ tottri

int BMEditMesh::tottri

The documentation for this struct was generated from the following file: