Blender
V3.3
|
#include <BKE_editmesh.h>
Public Attributes | |
struct BMesh * | bm |
struct BMLoop *(* | looptris )[3] |
int | tottri |
short | selectmode |
short | mat_nr |
int | mirror_cdlayer |
char | is_shallow_copy |
char | needs_flush_to_id |
This structure is used for mesh edit-mode.
Through this, you get access to both the edit BMesh, its tessellation, and various data that doesn't belong in the BMesh struct itself (mostly related to mesh evaluation).
The entire modifier system works with this structure, and not BMesh. #Mesh.edit_bmesh stores a pointer to this structure.
Definition at line 39 of file BKE_editmesh.h.
struct BMesh* BMEditMesh::bm |
Definition at line 40 of file BKE_editmesh.h.
Referenced by blender::ed::spreadsheet::GeometryDataSource::apply_selection_filter(), applyNormalRotation(), armature_deform_coords_impl(), average_islands_scale_exec(), bake_targets_output_vertex_colors(), 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_data(), BKE_editmesh_lnorspace_update(), BKE_editmesh_loop_tangent_calc(), BKE_editmesh_looptri_and_normals_calc(), BKE_editmesh_looptri_and_normals_calc_with_partial(), BKE_editmesh_looptri_calc_with_partial_ex(), 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_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(), correct_uv_aspect_per_face(), correctivesmooth_modifier_do(), create_orco_mesh(), createEdgeSlideVerts_double_side(), createEdgeSlideVerts_single_side(), createTransEdge(), createTransEditVerts(), createTransMeshSkin(), createTransMeshVertCData(), 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(), draw_subdiv_create_requested_buffers(), 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_add(), ED_mesh_uv_ensure(), ED_mesh_uv_loop_reset_ex(), 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_pack_islands_multi(), ED_uvedit_select_sync_flush(), ED_uvedit_selectmode_clean(), ED_uvedit_selectmode_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_custom_loop_normals(), edbm_flip_normals_exec(), edbm_flip_normals_face_winding(), 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_ex(), 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_restore(), EDBM_redo_state_restore_and_free(), 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(), 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_partial_update_begin_fn(), editmesh_tessface_calc_intern(), face_map_assign_exec(), face_map_remove_from_exec(), fmap_select(), freeCustomNormalArray(), get_domains(), get_vert_def_nr(), get_weights_array(), getTransformOrientation_ex(), 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(), knifeproject_exec(), knifetool_init_obinfo(), knifetool_invoke(), laplacian_relaxation_iteration_uv(), lattice_deform_coords_impl(), 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_edata_get_from_mesh(), mesh_cd_ldata_get_from_mesh(), mesh_cd_pdata_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_foreachScreenEdge(), mesh_foreachScreenEdge_clip_bb_segment(), mesh_foreachScreenFace(), mesh_foreachScreenVert(), mesh_render_data_create(), mesh_set_smooth_faces(), 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_edge(), mouse_mesh_uv_shortest_path_face(), mouse_mesh_uv_shortest_path_vert(), multires_customdata_delete(), multiresModifier_set_levels_from_disps(), nearest2d_data_init_editmesh(), 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_object_data_editmesh_treedata_get(), snap_sel_to_grid_exec(), snap_selected_to_location(), snapEditMesh(), sort_bmelem_flag(), special_aftertrans_update__mesh(), sphere_project_exec(), stats_object_edit(), blender::draw::statvis_calc_distort(), blender::draw::statvis_calc_intersect(), blender::draw::statvis_calc_overhang(), blender::draw::statvis_calc_sharp(), stitch_calculate_edge_normal(), stitch_exit(), stitch_init(), stitch_invoke(), tc_mesh_customdatacorrect_create_impl(), tc_mesh_partial_ensure(), tc_mesh_partial_update(), tc_mesh_skin_transdata_create(), 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_isolate_selected_islands(), 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(), uv_select_edgeloop(), uv_select_edgeloop_double_side_tag(), uv_select_edgeloop_single_side_tag(), uv_select_edgering(), uv_select_faceloop(), uv_select_flush_from_loop_edge_flag(), uv_select_flush_from_tag_face(), uv_select_flush_from_tag_loop(), uv_select_flush_from_tag_sticky_loc_internal(), uv_select_invert(), uv_select_linked_multi(), uv_select_more_less(), uv_select_overlap(), uv_select_pinned_exec(), uv_select_similar_edge_exec(), uv_select_similar_face_exec(), uv_select_similar_vert_exec(), uv_select_split_exec(), 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_deselect_flush(), uvedit_edge_select_disable(), uvedit_edge_select_enable(), uvedit_face_select_disable(), uvedit_face_select_enable(), uvedit_have_selection(), uvedit_nearest_uv(), uvedit_select_flush(), 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_color_set(), 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(), view3d_circle_select_recalc(), walker_deselect_nth(), walker_select(), walker_select_count(), workbench_mesh_get_loop_custom_data(), and workbench_mesh_get_vert_custom_data().
char BMEditMesh::is_shallow_copy |
Enable for evaluated copies, causes the edit-mesh to free the memory, not it's contents.
Definition at line 62 of file BKE_editmesh.h.
Referenced by BKE_mesh_free_editmesh(), and BKE_mesh_wrapper_from_editmesh_with_coords().
struct BMLoop*(* BMEditMesh::looptris)[3] |
Face triangulation (tessellation) is stored as triplets of three loops, which each define a triangle.
Definition at line 40 of file BKE_editmesh.h.
Referenced by BKE_bmbvh_new_from_editmesh(), BKE_editmesh_copy(), BKE_editmesh_free_data(), BKE_editmesh_loop_tangent_calc(), BKE_editmesh_looptri_calc_with_partial_ex(), bvhtree_from_editmesh_looptri_create_tree(), DRW_text_edit_mesh_measure_stats(), edbm_face_split_by_edges_exec(), edbm_intersect_boolean_exec(), edbm_intersect_exec(), EDBM_mesh_clear(), editmesh_looptri_nearest_point(), editmesh_looptri_raycast_backface_culling_cb(), editmesh_looptri_spherecast(), editmesh_tessface_calc_intern(), blender::draw::extract_task_range_run_iter(), blender::draw::extract_tris_iter_poly_bm(), knife_bm_tri_index_get(), knife_bvh_init(), knife_bvh_raycast_cb(), knife_find_line_hits(), knife_ray_intersect_face(), knifetool_init_obinfo(), mesh_render_data_update_looptris(), raycastEditMesh(), set_lowest_face_tri(), and blender::draw::statvis_calc_intersect().
short BMEditMesh::mat_nr |
The active material (assigned to newly created faces).
Definition at line 54 of file BKE_editmesh.h.
Referenced by BKE_editmesh_copy(), edbm_add_edge_face_exec(), edbm_fill_grid_exec(), EDBM_mesh_make(), and EDBM_select_pick().
int BMEditMesh::mirror_cdlayer |
Temp variables for x-mirror editing (-1 when the layer does not exist).
Definition at line 57 of file BKE_editmesh.h.
Referenced by EDBM_verts_mirror_cache_begin_ex(), EDBM_verts_mirror_cache_clear(), EDBM_verts_mirror_cache_end(), and EDBM_verts_mirror_get().
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 68 of file BKE_editmesh.h.
Referenced by BKE_object_data_editmode_flush_ptr_get(), mesh_undosys_step_decode(), and mesh_undosys_step_encode().
short BMEditMesh::selectmode |
Selection mode (SCE_SELECT_VERTEX, SCE_SELECT_EDGE & SCE_SELECT_FACE).
Definition at line 52 of file BKE_editmesh.h.
Referenced by BKE_editmesh_copy(), createTransEditVerts(), createTransMeshSkin(), createTransMeshVertCData(), 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(), mesh_circle_select(), mouse_mesh_loop(), ringsel_finish(), select_similar_type_itemf(), special_aftertrans_update__mesh(), transform_convert_mesh_islands_calc(), uiTemplateEditModeSelection(), undomesh_to_editmesh(), unified_findnearest(), uv_hide_exec(), uv_reveal_exec(), VertsToTransData(), and view3d_circle_select_recalc().
int BMEditMesh::tottri |
Definition at line 49 of file BKE_editmesh.h.
Referenced by BKE_bmbvh_new_from_editmesh(), BKE_editmesh_loop_tangent_calc(), BKE_editmesh_looptri_calc_with_partial_ex(), bvhtree_from_editmesh_looptri_create_tree(), edbm_face_split_by_edges_exec(), edbm_intersect_boolean_exec(), edbm_intersect_exec(), EDBM_mesh_clear(), editmesh_tessface_calc_intern(), knife_bvh_init(), knife_bvh_raycast_cb(), knife_find_line_hits(), knife_ray_intersect_face(), knifetool_init_obinfo(), snap_object_data_editmesh_treedata_get(), and stats_object_edit().