Blender V5.0
bmesh_inline.hh File Reference

Go to the source code of this file.

Macros

#define BM_elem_flag_test(ele, hflag)
#define BM_elem_flag_test_bool(ele, hflag)
#define BM_elem_flag_enable(ele, hflag)
#define BM_elem_flag_disable(ele, hflag)
#define BM_elem_flag_set(ele, hflag, val)
#define BM_elem_flag_toggle(ele, hflag)
#define BM_elem_flag_merge(ele_a, ele_b)
#define BM_elem_flag_merge_ex(ele_a, ele_b, hflag_and)
#define BM_elem_flag_merge_into(ele, ele_a, ele_b)
#define BM_elem_index_get(ele)
#define BM_elem_index_set(ele, index)

Functions

ATTR_WARN_UNUSED_RESULT BLI_INLINE char _bm_elem_flag_test (const BMHeader *head, const char hflag)
ATTR_WARN_UNUSED_RESULT BLI_INLINE bool _bm_elem_flag_test_bool (const BMHeader *head, const char hflag)
BLI_INLINE void _bm_elem_flag_enable (BMHeader *head, const char hflag)
BLI_INLINE void _bm_elem_flag_disable (BMHeader *head, const char hflag)
BLI_INLINE void _bm_elem_flag_set (BMHeader *head, const char hflag, const int val)
BLI_INLINE void _bm_elem_flag_toggle (BMHeader *head, const char hflag)
BLI_INLINE void _bm_elem_flag_merge (BMHeader *head_a, BMHeader *head_b)
BLI_INLINE void _bm_elem_flag_merge_ex (BMHeader *head_a, BMHeader *head_b, const char hflag_and)
BLI_INLINE void _bm_elem_flag_merge_into (BMHeader *head, const BMHeader *head_a, const BMHeader *head_b)
BLI_INLINE void _bm_elem_index_set (BMHeader *head, const int index)
ATTR_WARN_UNUSED_RESULT BLI_INLINE int _bm_elem_index_get (const BMHeader *head)

Detailed Description

BM Inline functions.

Definition in file bmesh_inline.hh.

Macro Definition Documentation

◆ BM_elem_flag_disable

#define BM_elem_flag_disable ( ele,
hflag )
Value:
_bm_elem_flag_disable(&(ele)->head, hflag)
BLI_INLINE void _bm_elem_flag_disable(BMHeader *head, const char hflag)

Definition at line 22 of file bmesh_inline.hh.

Referenced by bev_rebuild_polygon(), bevel_edges_sharp_boundary(), bevel_vert_construct(), BKE_crazyspace_set_quats_editmesh(), BKE_pbvh_sync_visibility_from_verts(), bm_edge_collapse_is_degenerate_topology(), BM_edge_hide_set(), BM_edge_select_set(), BM_edge_select_set_noflush(), bm_edge_tag_disable(), bm_edge_tag_from_smooth_and_set_sharp(), BM_edgeloop_overlap_check(), bm_edgenet_path_calc(), bm_extrude_copy_face_loop_attributes(), bm_face_convex_tag_verts(), BM_face_exists_multi(), BM_face_hide_set(), bm_face_region_pivot_edge_find(), BM_face_select_set(), BM_face_select_set_noflush(), bm_face_split_by_edges(), bm_face_split_edge_find(), BM_face_split_edgenet_connect_islands(), bm_face_split_edgenet_find_connection(), bm_face_split_edgenet_partial_connect(), bm_loop_build(), bm_loop_path_build_step(), bm_loop_tags_clear(), bm_loop_walk_add(), BM_mesh_bevel(), BM_mesh_calc_edge_groups(), BM_mesh_calc_face_groups(), BM_mesh_calc_path_edge(), BM_mesh_calc_path_region_edge(), BM_mesh_calc_path_region_face(), BM_mesh_calc_path_uv_region_face(), BM_mesh_delete_hflag_context(), BM_mesh_edgeloops_find(), BM_mesh_edgeloops_find_path(), BM_mesh_edgesplit(), BM_mesh_elem_hflag_disable_test(), BM_mesh_elem_hflag_enable_test(), BM_mesh_intersect(), BM_mesh_intersect_edges(), BM_mesh_is_valid(), bm_mesh_loop_clear_tag(), bm_mesh_loops_calc_normals__single_threaded(), bm_mesh_loops_calc_normals_for_vert_with_clnors(), bm_mesh_loops_calc_normals_for_vert_without_clnors(), bm_mesh_loops_split_lnor_fans(), BM_mesh_select_flush_from_verts(), BM_mesh_select_mode_clean_ex(), bm_mesh_select_mode_flush_vert_to_edge_iter_fn(), BM_mesh_select_mode_set(), BM_mesh_separate_faces(), bm_mesh_uvselect_disable_all(), bm_mesh_uvselect_flush_from_mesh_sticky_location_for_face_mode(), bm_mesh_uvselect_mode_flush_down_deselect_only(), BM_mesh_uvselect_mode_flush_update(), BM_mesh_wireframe(), BM_normals_loops_edges_tag(), BM_vert_select_set(), bmesh_face_attribute_fill(), bmesh_kernel_join_face_kill_edge(), bmo_beautify_fill_exec(), bmo_collapse_exec(), bmo_dissolve_degenerate_exec(), bmo_extrude_face_region_exec(), bmo_inset_region_exec(), bmo_offset_edgeloops_exec(), BMO_slot_buffer_hflag_disable(), bmo_unsubdivide_exec(), BPy_BMElem_PySeq_As_Array_FAST(), calc_solidify_normals(), create_mesh_bmvert(), blender::ed::transform::createTransUVs(), do_lasso_select_mesh_uv(), ED_uvedit_selected_edges(), ED_uvedit_selected_verts(), ED_uvedit_selectmode_clean(), edbm_add_edge_face_exec__tricky_finalize_sel(), edbm_dissolve_limited_exec(), edbm_edge_rotate_selected_exec(), edbm_edge_split_selected_verts(), edbm_face_split_by_edges_exec(), edbm_fill_grid_prepare(), edbm_fill_grid_split_join_init(), edbm_mark_seam_exec(), EDBM_mesh_knife(), EDBM_mesh_reveal(), edbm_rip_edge_invoke(), EDBM_select_interior_faces(), edbm_select_linked_exec(), edbm_select_linked_pick_ex(), edge_is_cut_disable(), face_in_stack_enable(), loop_find_regions(), blender::ed::sculpt_paint::hide::partialvis_update_bmesh_faces(), blender::ed::sculpt_paint::hide::partialvis_update_bmesh_verts(), stitch_process_data(), blender::ed::sculpt_paint::hide::sync_all_from_faces(), blender::ed::transform::transform_convert_mesh_connectivity_distance(), uv_box_select_exec(), uv_circle_select_exec(), uv_reveal_exec(), uv_seams_from_islands_exec(), uv_select_edgeloop_double_side_tag(), uv_select_edgeloop_single_side_tag(), uv_select_edgering(), uv_select_more_less(), blender::ed::transform::uv_set_connectivity_distance(), uv_snap_uvs_to_adjacent_unselected(), vert_is_center_disable(), walker_deselect_nth(), and weld_cross_attrs_copy().

◆ BM_elem_flag_enable

#define BM_elem_flag_enable ( ele,
hflag )
Value:
_bm_elem_flag_enable(&(ele)->head, hflag)
BLI_INLINE void _bm_elem_flag_enable(BMHeader *head, const char hflag)

Definition at line 21 of file bmesh_inline.hh.

Referenced by add_poly(), bev_create_ngon(), bev_rebuild_polygon(), bevel_build_edge_polygons(), BKE_crazyspace_set_quats_editmesh(), BKE_pbvh_sync_visibility_from_verts(), BM_edge_select_set(), BM_edge_select_set_noflush(), bm_edge_tag_enable(), BM_edgeloop_overlap_check(), bm_face_array_visit(), bm_face_convex_tag_verts(), BM_face_exists_multi(), bm_face_region_pivot_edge_find(), BM_face_select_set(), BM_face_select_set_noflush(), bm_face_split_edge_find(), BM_face_split_edgenet_connect_islands(), bm_face_split_edgenet_find_connection(), bm_face_split_edgenet_partial_connect(), BM_face_triangulate(), bm_grid_fill_array(), BM_loop_check_cyclic_smooth_fan(), BM_mesh_bevel(), BM_mesh_bisect_plane(), BM_mesh_bm_from_me(), BM_mesh_calc_edge_groups(), BM_mesh_calc_edge_groups_as_arrays(), BM_mesh_calc_face_groups(), BM_mesh_calc_path_edge(), BM_mesh_calc_path_face(), BM_mesh_calc_path_uv_edge(), BM_mesh_calc_path_uv_face(), BM_mesh_calc_path_uv_vert(), BM_mesh_calc_path_vert(), BM_mesh_decimate_unsubdivide_ex(), BM_mesh_delete_hflag_context(), BM_mesh_edgeloops_find(), BM_mesh_edgeloops_find_path(), BM_mesh_edgenet(), BM_mesh_edgesplit(), BM_mesh_elem_hflag_disable_test(), BM_mesh_elem_hflag_enable_test(), BM_mesh_intersect(), BM_mesh_intersect_edges(), BM_mesh_is_valid(), bm_mesh_loops_calc_normals_for_loop(), BM_mesh_select_flush_from_verts(), bm_mesh_select_mode_flush_vert_to_edge_iter_fn(), BM_mesh_separate_faces(), bm_mesh_uvselect_check_contiguous(), bm_mesh_uvselect_flush_from_mesh_sticky_location_for_face_mode(), bm_mesh_uvselect_flush_from_mesh_sticky_vert_for_edge_mode(), bm_mesh_uvselect_flush_from_mesh_sticky_vert_for_face_mode(), BM_mesh_wireframe(), BM_normals_loops_edges_tag(), bm_vert_collapse_edge_and_merge(), BM_vert_loop_groups_data_layer_create(), BM_vert_select_set(), BMD_mesh_intersection(), bmo_bevel_exec(), bmo_collapse_exec(), bmo_contextual_create_exec(), bmo_dissolve_degenerate_exec(), bmo_edgeloop_fill_exec(), bmo_edgenet_fill_exec(), bmo_extrude_face_region_exec(), bmo_inset_region_exec(), bmo_offset_edgeloops_exec(), BMO_slot_buffer_hflag_enable(), bmo_unsubdivide_exec(), BPy_BMElem_PySeq_As_Array_FAST(), bridge_loop_pair(), build_hull(), calc_solidify_normals(), blender::ed::transform::createTransUVs(), do_lasso_select_mesh_uv(), doEdgeSplit(), ED_uvedit_selected_edges(), ED_uvedit_selected_verts(), ED_uvedit_selectmode_clean(), edbm_bridge_edge_loops_for_single_editmesh(), edbm_bridge_tag_boundary_edges(), edbm_delete_edgeloop_exec(), edbm_edge_rotate_selected_exec(), edbm_edge_split_selected_verts(), edbm_face_split_by_edges_exec(), edbm_fill_grid_prepare(), edbm_fill_grid_split_join_init(), edbm_mark_seam_exec(), EDBM_mesh_knife(), EDBM_mesh_reveal(), edbm_polybuild_delete_at_cursor_invoke(), edbm_polybuild_dissolve_at_cursor_invoke(), edbm_region_to_loop_exec(), edbm_rip_edge_invoke(), edbm_rip_invoke__edge(), edbm_rip_invoke__vert(), EDBM_select_interior_faces(), edbm_select_linked_flat_faces_exec(), edge_is_cut_enable(), face_in_stack_disable(), hull_merge_triangles(), loop_find_regions(), blender::geometry::boolean::mesh_bm_concat(), mesh_separate_material(), mesh_symmetry_snap_exec(), modify_mesh(), normals_merge(), blender::ed::sculpt_paint::hide::partialvis_update_bmesh_faces(), blender::ed::sculpt_paint::hide::partialvis_update_bmesh_verts(), skin_fix_hole_no_good_verts(), skin_smooth_hulls(), smart_uv_project_calculate_project_normals(), blender::ed::transform::special_aftertrans_update__mesh(), blender::ed::sculpt_paint::hide::sync_all_from_faces(), blender::ed::transform::transform_convert_mesh_connectivity_distance(), uv_box_select_exec(), uv_circle_select_exec(), uv_mesh_hide_sync_select(), uv_reveal_exec(), uv_seams_from_islands_exec(), uv_select_edgeloop_double_side_tag(), uv_select_edgeloop_single_side_tag(), uv_select_edgering(), uv_select_faceloop(), uv_select_flush_from_tag_loop(), uv_select_more_less(), uv_select_overlap(), blender::ed::transform::uv_set_connectivity_distance(), uv_snap_uvs_to_adjacent_unselected(), uvedit_ensure_uvs(), vert_dissolve_add(), vert_is_center_enable(), verttag_add_adjacent_uv(), blender::ed::object::vgroup_mirror(), walker_deselect_nth(), walker_deselect_nth_edge_chain(), walker_deselect_nth_face_chain(), walker_deselect_nth_vertex_chain(), and weld_cross_attrs_copy().

◆ BM_elem_flag_merge

#define BM_elem_flag_merge ( ele_a,
ele_b )
Value:
_bm_elem_flag_merge(&(ele_a)->head, &(ele_b)->head)
BLI_INLINE void _bm_elem_flag_merge(BMHeader *head_a, BMHeader *head_b)

Definition at line 25 of file bmesh_inline.hh.

◆ BM_elem_flag_merge_ex

#define BM_elem_flag_merge_ex ( ele_a,
ele_b,
hflag_and )
Value:
_bm_elem_flag_merge_ex(&(ele_a)->head, &(ele_b)->head, hflag_and)
BLI_INLINE void _bm_elem_flag_merge_ex(BMHeader *head_a, BMHeader *head_b, const char hflag_and)

Definition at line 26 of file bmesh_inline.hh.

Referenced by bm_vert_collapse_edge_and_merge(), and bmo_weld_verts_exec().

◆ BM_elem_flag_merge_into

#define BM_elem_flag_merge_into ( ele,
ele_a,
ele_b )
Value:
_bm_elem_flag_merge_into(&(ele)->head, &(ele_a)->head, &(ele_b)->head)
BLI_INLINE void _bm_elem_flag_merge_into(BMHeader *head, const BMHeader *head_a, const BMHeader *head_b)

Definition at line 28 of file bmesh_inline.hh.

Referenced by bm_vert_dissolve_fan().

◆ BM_elem_flag_set

#define BM_elem_flag_set ( ele,
hflag,
val )
Value:
_bm_elem_flag_set(&(ele)->head, hflag, val)
BLI_INLINE void _bm_elem_flag_set(BMHeader *head, const char hflag, const int val)

Definition at line 23 of file bmesh_inline.hh.

Referenced by bevel_extend_edge_data_ex(), BKE_mesh_remesh_voxel_fix_poles(), BM_edge_hide_set(), bm_edge_tag_from_smooth_and_set_sharp(), bm_edgeloop_flag_set(), bm_edgeloop_vert_tag(), BM_face_hide_set(), BM_face_uvselect_set_noflush(), BM_loop_edge_uvselect_set_noflush(), BM_loop_vert_uvselect_set_noflush(), BM_mesh_calc_path_edge(), BM_mesh_calc_path_face(), BM_mesh_calc_path_region_edge(), BM_mesh_calc_path_region_face(), BM_mesh_calc_path_region_vert(), BM_mesh_calc_path_uv_edge(), BM_mesh_calc_path_uv_face(), BM_mesh_calc_path_uv_region_edge(), BM_mesh_calc_path_uv_region_face(), BM_mesh_calc_path_uv_region_vert(), BM_mesh_calc_path_uv_vert(), BM_mesh_calc_path_vert(), bm_mesh_calc_uv_islands(), BM_mesh_decimate_dissolve_ex(), BM_mesh_edgenet(), bm_mesh_select_mode_flush_edge_to_face_iter_fn(), bm_mesh_uvselect_flush_from_mesh_sticky_location_for_edge_mode(), bm_mesh_uvselect_flush_from_mesh_sticky_location_for_face_mode(), bm_mesh_uvselect_flush_from_mesh_sticky_vert_for_vert_mode(), BM_mesh_wireframe(), BM_vert_hide_set(), bmesh_kernel_join_face_kill_edge(), bpy_bm_elem_hflag_set(), bridge_loop_pair(), blender::ed::sculpt_paint::face_set::delete_geometry(), edbm_beautify_fill_exec(), edbm_delete_loose_exec(), edbm_dissolve_limited_exec(), edbm_edge_split_selected_verts(), edbm_mark_sharp_exec(), edbm_rip_invoke(), edbm_select_linked_exec(), EDBM_select_mirrored(), EDBM_selectmode_convert(), edge_flush_hide_set(), edgetag_set_cb(), geometry_extract_apply(), geometry_extract_tag_face_set(), geometry_extract_tag_masked_faces(), mesh_set_smooth_faces(), multires_unsubdivide_prepare_original_bmesh_for_extract(), normals_split_merge(), EditMeshSymmetryHelper::set_hflag_on_mirror_edges(), EditMeshSymmetryHelper::set_hflag_on_mirror_faces(), EditMeshSymmetryHelper::set_hflag_on_mirror_verts(), blender::ed::mesh::set_sharpness_by_angle_exec(), slice_paint_mask(), smart_uv_project_calculate_project_normals(), blender::ed::transform::transform_convert_mesh_connectivity_distance(), unsubdivide_build_base_mesh_from_tags(), unsubdivide_face_center_vertex_tag(), unsubdivide_tag_disconnected_mesh_element(), uv_cylinder_project(), uv_mark_seam_exec(), uv_rip_object(), uv_snap_uvs_to_adjacent_unselected(), uv_sphere_project(), uvedit_edge_select_set_no_sync(), uvedit_face_select_set_no_sync(), uvedit_loop_edge_select_set(), uvedit_loop_vert_select_set(), uvedit_vert_select_set_no_sync(), and vert_flush_hide_set().

◆ BM_elem_flag_test

#define BM_elem_flag_test ( ele,
hflag )
Value:
_bm_elem_flag_test(&(ele)->head, hflag)
ATTR_WARN_UNUSED_RESULT BLI_INLINE char _bm_elem_flag_test(const BMHeader *head, const char hflag)

Definition at line 19 of file bmesh_inline.hh.

Referenced by adjust_offsets(), EditMeshSymmetryHelper::any_mirror_edge_selected(), EditMeshSymmetryHelper::any_mirror_face_selected(), EditMeshSymmetryHelper::any_mirror_vert_selected(), bev_rebuild_polygon(), bevel_edges_sharp_boundary(), bevel_harden_normals(), bevel_limit_offset(), bevel_reattach_wires(), bevel_vert_construct(), BKE_crazyspace_set_quats_editmesh(), BKE_mesh_remesh_voxel_fix_poles(), BKE_object_defgroup_clear(), BKE_pbvh_bmesh_node_save_orig(), BKE_pbvh_sync_visibility_from_verts(), blender::ed::sculpt_paint::smooth::blur_geometry_data_array(), BM_edge_find_first_loop_visible(), BM_edge_hide_set(), bm_edge_info_average_length_fallback(), BM_edge_is_all_face_flag_test(), BM_edge_is_any_face_flag_test(), BM_edge_is_any_vert_flag_test(), bm_edge_is_delimit(), bm_edge_is_delimiter(), bm_edge_is_face_select_any_other(), bm_edge_is_face_visible_any(), bm_edge_is_mixed_face_tag(), bm_edge_is_region_boundary(), bm_edge_is_select_isolated(), blender::draw::bm_edge_is_sharp(), bm_edge_is_smooth_no_angle_test(), blender::ed::transform::bm_edge_is_snap_target(), bm_edge_length_cmp(), BM_edge_select_set(), BM_edge_select_set_noflush(), bm_edge_step_ok(), bm_edge_tag_faceloop(), bm_edge_tag_test(), bm_edge_test_rail_cb(), bm_edge_uvselect_set_pick(), BM_edgeloop_overlap_check(), bm_edgering_pair_order(), bm_edgering_pair_subdiv(), BM_elem_cb_check_hflag_disabled(), BM_elem_cb_check_hflag_enabled(), BM_elem_cb_check_hflag_ex(), bm_face_array_visit(), bm_face_copy_shared_all(), BM_face_exists_multi(), BM_face_hide_set(), BM_face_is_any_edge_flag_test(), BM_face_is_any_vert_flag_test(), bm_face_is_not_hidden(), bm_face_is_select(), blender::draw::bm_face_is_sharp(), blender::ed::transform::bm_face_is_snap_target(), bm_face_isect_pair(), bm_face_isect_pair(), bm_face_isect_pair_swap(), bm_face_isect_self(), bm_face_region_pivot_edge_find(), bm_face_region_vert_pass_id(), BM_face_select_set(), BM_face_select_set_noflush(), bm_face_split_by_edges(), bm_face_split_edge_find(), BM_face_split_edgenet_connect_islands(), bm_face_split_edgenet_find_connection(), bm_face_split_edgenet_partial_connect(), BM_face_uvselect_check_edges_all(), BM_face_uvselect_set_noflush(), bm_face_uvselect_set_pick(), BM_face_uvselect_test(), bm_faces_form_cyclic_chain(), bm_interior_face_group_calc_cost(), bm_interior_loop_filter_fn(), BM_lnorspace_invalidate(), bm_loop_build(), BM_loop_check_cyclic_smooth_fan(), bm_loop_customdata_merge(), BM_loop_edge_uvselect_check_other_face(), BM_loop_edge_uvselect_check_other_loop_edge(), BM_loop_edge_uvselect_set_noflush(), BM_loop_edge_uvselect_set_shared(), BM_loop_edge_uvselect_test(), bm_loop_filter_fn(), bm_loop_find_other_fan_loop_with_visible_face(), bm_loop_find_other_radial_loop_with_visible_face(), bm_loop_is_all_radial_tag(), bm_loop_is_face_untag(), bm_loop_is_radial_boundary(), bm_loop_normal_mark_edges_impl(), bm_loop_normal_mark_faces_impl(), bm_loop_normal_mark_verts_impl(), bm_loop_path_build_step(), bm_loop_select_edge_check_internal(), bm_loop_select_vert_check_internal(), bm_loop_uv_shared_edge_check(), BM_loop_vert_uvselect_check_other_edge(), BM_loop_vert_uvselect_check_other_face(), BM_loop_vert_uvselect_check_other_loop_edge(), BM_loop_vert_uvselect_check_other_loop_vert(), BM_loop_vert_uvselect_set_noflush(), BM_loop_vert_uvselect_set_shared(), BM_loop_vert_uvselect_test(), bm_loop_walk_data(), BM_mesh_active_face_get(), BM_mesh_bevel(), BM_mesh_bisect_plane(), BM_mesh_calc_edge_groups(), BM_mesh_calc_edge_groups_as_arrays(), BM_mesh_calc_face_groups(), BM_mesh_calc_path_edge(), BM_mesh_calc_path_face(), BM_mesh_calc_path_uv_edge(), BM_mesh_calc_path_uv_face(), BM_mesh_calc_path_uv_vert(), BM_mesh_calc_path_vert(), BM_mesh_decimate_dissolve_ex(), BM_mesh_decimate_unsubdivide_ex(), BM_mesh_delete_hflag_context(), BM_mesh_edgeloops_find(), BM_mesh_edgesplit(), BM_mesh_elem_hflag_disable_test(), BM_mesh_elem_hflag_enable_test(), blender::ed::transform::bm_mesh_elems_select_get_n__internal(), bm_mesh_flag_count(), BM_mesh_intersect(), BM_mesh_intersect_edges(), BM_mesh_is_valid(), bm_mesh_loops_calc_normals_for_loop(), bm_mesh_loops_calc_normals_no_autosmooth(), BM_mesh_region_match(), BM_mesh_select_flush_from_verts(), BM_mesh_select_mode_clean_ex(), bm_mesh_select_mode_flush_edge_to_face_iter_fn(), bm_mesh_select_mode_flush_edge_to_vert(), bm_mesh_select_mode_flush_face_to_vert_and_edge(), bm_mesh_select_mode_flush_vert_to_edge_iter_fn(), BM_mesh_select_mode_set(), BM_mesh_separate_faces(), BM_mesh_triangulate(), bm_mesh_uvselect_check_contiguous(), bm_mesh_uvselect_check_flush(), bm_mesh_uvselect_check_flush_and_contiguous(), bm_mesh_uvselect_check_viewport_sync(), BM_mesh_uvselect_flush_from_faces(), BM_mesh_uvselect_flush_from_faces_only_deselect(), BM_mesh_uvselect_flush_from_faces_only_select(), BM_mesh_uvselect_flush_from_loop_edges(), BM_mesh_uvselect_flush_from_loop_edges_only_deselect(), BM_mesh_uvselect_flush_from_loop_edges_only_select(), BM_mesh_uvselect_flush_from_loop_verts(), BM_mesh_uvselect_flush_from_loop_verts_only_deselect(), BM_mesh_uvselect_flush_from_loop_verts_only_select(), bm_mesh_uvselect_flush_from_mesh_sticky_location_for_edge_mode(), bm_mesh_uvselect_flush_from_mesh_sticky_location_for_face_mode(), bm_mesh_uvselect_flush_from_mesh_sticky_vert_for_edge_mode(), bm_mesh_uvselect_flush_from_mesh_sticky_vert_for_face_mode(), bm_mesh_uvselect_flush_from_mesh_sticky_vert_for_vert_mode(), BM_mesh_uvselect_flush_post_subdivide(), BM_mesh_uvselect_flush_shared_only_deselect(), BM_mesh_uvselect_flush_shared_only_select(), bm_mesh_uvselect_mode_flush_down_deselect_only(), BM_mesh_uvselect_mode_flush_update(), BM_mesh_uvselect_set_elem_shared(), BM_mesh_uvselect_sync_to_mesh(), BM_mesh_wireframe(), BM_normals_loops_edges_tag(), bm_remove_tagged_edges(), bm_remove_tagged_faces(), bm_remove_tagged_verts(), bm_remove_tagged_verts_loose(), BM_select_history_validate(), bm_step_over_shared_edge_to_next_selected_face_in_chain(), bm_step_over_vert_to_next_selected_edge_in_chain(), bm_step_to_next_selected_vert_in_chain(), blender::bm_to_mesh_loops(), BM_uv_element_map_create(), BM_uv_vert_map_create(), bm_vert_boundary_tangent(), BM_vert_calc_median_tagged_edge_length(), BM_vert_calc_normal_ex(), BM_vert_calc_shell_factor_ex(), bm_vert_collapse_edge_and_merge(), BM_vert_hide_set(), BM_vert_is_all_edge_flag_test(), BM_vert_is_all_face_flag_test(), bm_vert_is_edge_select_any_other(), bm_vert_is_edge_visible_any(), bm_vert_is_tag_edge_connect(), BM_vert_loop_groups_data_layer_create(), bm_vert_other_tag(), BM_vert_select_set(), BM_vert_separate_hflag(), bm_vert_uvselect_set_pick(), BM_verts_calc_rotate_beauty(), bm_verts_form_cyclic_chain(), bm_verts_tag_count(), bmesh_disk_faceloop_find_first_visible(), bmesh_face_attribute_fill(), bmesh_kernel_join_face_kill_edge(), blender::ed::mesh::set_attribute::bmesh_loop_layer_selected_values_set(), blender::bke::pbvh::bmesh_node_nearest_to_ray(), bmesh_selected_verts_center_calc(), blender::ed::transform::bmesh_test_dist_add(), blender::ed::transform::bmesh_test_loose_edge(), blender::ed::mesh::set_attribute::bmesh_vert_edge_face_layer_selected_values_set(), bmo_collapse_exec(), bmo_dissolve_degenerate_exec(), bmo_inset_region_exec(), BMO_mesh_selected_remap(), bmo_offset_edgeloops_exec(), bmo_region_extend_expand(), bmo_slot_buffer_from_hflag(), bmw_mask_check_edge(), bmw_mask_check_face(), bmw_mask_check_vert(), bpy_bm_elem_hflag_get(), BPy_BMElem_PySeq_As_Array_FAST(), bpy_bmesh_transform(), build_hull(), blender::draw::calc_adjacency_bm(), blender::ed::sculpt_paint::calc_area_normal_and_center_node_bmesh(), blender::draw::calc_face_tri_starts_bmesh(), calc_solidify_normals(), blender::ed::sculpt_paint::islands::calc_topology_islands_bmesh(), blender::ed::sculpt_paint::cloth::calc_visible_vert_indices_bmesh(), choose_rep_face(), blender::draw::compute_coarse_face_flag_bm(), construct_param_edge_set_seams(), construct_param_handle_subsurfed(), blender::ed::sculpt_paint::mask::copy_old_hidden_mask_bmesh(), correct_uv_aspect(), correct_uv_aspect_per_face(), blender::draw::pbvh::create_lines_index_bmesh(), blender::ed::transform::createTransEdge(), blender::ed::transform::createTransEditVerts(), blender::ed::transform::createTransMeshSkin(), blender::ed::transform::createTransMeshVertCData(), blender::ed::transform::createTransUVs(), cylinder_project_exec(), deselect_nth_active(), do_lasso_select_mesh__doSelectEdge_pass0(), do_lasso_select_mesh__doSelectEdge_pass1(), do_lasso_select_mesh__doSelectFace(), do_lasso_select_mesh__doSelectVert(), do_lasso_select_mesh_uv(), do_mesh_box_select__doSelectEdge_pass0(), do_mesh_box_select__doSelectEdge_pass1(), do_mesh_box_select__doSelectFace(), do_mesh_box_select__doSelectVert(), doEdgeSplit(), blender::draw::draw_subdiv_cache_extra_coarse_face_data_bm(), DRW_text_edit_mesh_measure_stats(), ED_transverts_create_from_obedit(), ED_uvedit_active_edge_loop_get(), ED_uvedit_active_vert_loop_get(), ED_uvedit_selected_edges(), ED_uvedit_selected_verts(), edbm_add_edge_face__smooth_get(), edbm_add_edge_face_exec__tricky_extend_sel(), edbm_add_edge_face_exec__vert_edge_lookup(), 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_blend_from_shape_exec(), edbm_bridge_edge_loops_for_single_editmesh(), edbm_bridge_tag_boundary_edges(), edbm_connect_vert_pair(), edbm_decimate_exec(), edbm_delete_edgeloop_exec(), edbm_delete_loose_exec(), EDBM_deselect_by_material(), edbm_dissolve_limited_exec(), edbm_dupli_extrude_cursor_invoke(), edbm_edge_rotate_selected_exec(), edbm_edge_split_selected_verts(), edbm_elem_active_elem_or_face_get(), edbm_extrude_edge_exclude_mirror(), edbm_face_split_by_edges_exec(), edbm_fill_grid_split_join_init(), edbm_fill_grid_vert_tag_angle(), edbm_intersect_select(), edbm_loop_multiselect_exec(), edbm_loop_to_region_exec(), edbm_mark_seam_exec(), edbm_mark_sharp_exec(), EDBM_mesh_hide(), EDBM_mesh_knife(), EDBM_mesh_reveal(), edbm_mod_weighted_strength_exec(), edbm_normals_tools_exec(), edbm_point_normals_modal(), edbm_polybuild_face_at_cursor_invoke(), EDBM_project_snap_verts(), edbm_region_to_loop_exec(), edbm_rip_edge_invoke(), edbm_rip_invoke(), edbm_rip_invoke__edge(), edbm_rip_invoke__vert(), edbm_screw_exec(), edbm_select_axis_exec(), edbm_select_by_attribute_exec(), edbm_select_by_pole_count_exec(), edbm_select_face_by_sides_exec(), edbm_select_linked_exec(), edbm_select_linked_flat_faces_exec(), edbm_select_loose_exec(), EDBM_select_mirrored(), EDBM_select_mirrored_extend_all(), edbm_select_non_manifold_exec(), EDBM_select_pick(), edbm_select_random_exec(), edbm_select_sharp_edges_exec(), EDBM_select_swap(), edbm_select_ungrouped_exec(), EDBM_selectmode_convert(), EDBM_selectmode_set(), edbm_set_normals_from_faces_exec(), edbm_shortest_path_select_exec(), EDBM_stats_update(), edbm_tagged_loop_pairs_to_fill(), EDBM_unified_findnearest_from_raycast(), EDBM_update(), EDBM_verts_mirror_apply(), EDBM_verts_mirror_cache_begin_ex(), edge_data_value_set(), edge_is_cut_test(), edgetag_add_adjacent(), edgetag_add_adjacent_uv(), edgetag_filter_cb(), edgetag_test_cb(), blender::ed::sculpt_paint::boundary::edit_data_init_bmesh(), editmesh_partial_update_begin_fn(), blender::ed::sculpt_paint::expand::enabled_state_to_bitmap(), blender::ed::sculpt_paint::flood_fill::FillDataBMesh::execute(), blender::draw::pbvh::extract_data_corner_bmesh(), blender::draw::pbvh::extract_data_face_bmesh(), blender::draw::pbvh::extract_data_vert_bmesh(), blender::geometry::boolean::face_boolean_operand(), face_data_value_set(), face_in_stack_test(), facetag_add_adjacent(), facetag_add_adjacent_uv(), facetag_filter_cb(), blender::ed::sculpt_paint::fake_neighbor_search_bmesh(), blender::ed::sculpt_paint::fill_bm_face_or_corner_attribute(), blender::ed::sculpt_paint::fill_factor_from_hide_and_mask(), fill_laplacian_matrix(), blender::ed::sculpt_paint::mask::fill_mask_bmesh(), find_nearest_edge__doClosest(), findnearestface__doClosest(), findnearestvert__doClosest(), flip_custom_normals(), blender::ed::sculpt_paint::face_set::gesture_apply_bmesh(), blender::ed::sculpt_paint::boundary::get_closest_boundary_vert_bmesh(), SGLSLEditMeshToTangent::GetNormal(), blender::ed::transform::getTransformOrientation_ex(), blender::ed::transform::gizmo_3d_foreach_selected(), gizmo_mesh_spin_init_refresh(), hull_merge_triangles(), init_laplacian_matrix(), blender::ed::sculpt_paint::mask::invert_mask_bmesh(), blender::ed::sculpt_paint::boundary::is_vert_in_editable_boundary_bmesh(), blender::ed::transform::is_vert_slide_visible_bmesh(), island_has_pins(), knife_bm_face_is_not_hidden(), knife_bm_face_is_select(), knife_find_closest_face(), knife_find_line_hits(), knife_make_face_cuts(), loop_find_region(), loop_find_regions(), material_slot_assign_exec(), merge_firstlast(), merge_target(), mesh_calc_path_region_elem(), mesh_calc_path_region_elem(), blender::ed::transform::mesh_cdata_transdata_create(), blender::ed::transform::mesh_customdatacorrect_find_best_face_substitute(), mesh_foreachScreenEdge__mapFunc(), mesh_foreachScreenEdge_clip_bb_segment__mapFunc(), mesh_foreachScreenFace__mapFunc(), mesh_foreachScreenVert__mapFunc(), blender::draw::mesh_render_data_edge_flag(), blender::draw::mesh_render_data_face_flag(), blender::draw::mesh_render_data_vert_flag(), mesh_set_smooth_faces(), blender::ed::transform::mesh_skin_transdata_create(), mesh_symmetry_snap_exec(), mouse_mesh_loop(), mouse_mesh_shortest_path_vert(), multires_unsubdivide_extract_single_grid_from_face_edge(), multires_unsubdivide_get_grid_corners_on_base_mesh(), blender::ed::sculpt_paint::nearest_vert_calc_bmesh(), blender::bke::pbvh::node_raycast_bmesh(), normals_merge(), normals_split(), normals_split_merge(), paint_is_bmesh_face_hidden(), blender::ed::sculpt_paint::hide::partialvis_update_bmesh_verts(), blender::bke::pbvh::pbvh_bmesh_node_finalize(), blender::bke::pbvh::raycast_node_detail_bmesh(), recount_totsels_range_edge_func(), recount_totsels_range_face_func(), recount_totsels_range_vert_func(), reset_uv_map(), blender::ed::object::return_editmesh_indexar(), blender::ed::sculpt_paint::mask::sculpt_mask_init_exec(), seam_connected_recursive(), select_linked_delimit_test(), blender::ed::mesh::set_sharpness_by_angle_exec(), shape_propagate(), similar_edge_select_exec(), similar_face_select_exec(), similar_vert_select_exec(), blender::ed::object::skin_loose_mark_clear_exec(), blender::ed::object::skin_radii_equalize_exec(), blender::ed::object::skin_root_mark_exec(), skin_smooth_hulls(), blender::draw::skip_bm_face(), smart_project_exec(), smart_uv_project_calculate_project_normals(), sort_bmelem_flag(), stitch_init(), blender::ed::sculpt_paint::hide::sync_all_from_faces(), TEST(), test_tagged_and_notface(), blender::ed::transform::transform_convert_mesh_connectivity_distance(), blender::ed::transform::transform_convert_mesh_islands_calc(), blender::ed::transform::transform_convert_mesh_mirrordata_calc(), blender::ed::transform::transform_mesh_edge_slide_data_create(), blender::ed::transform::transform_mesh_vert_slide_data_create(), unsubdivide_build_base_mesh_from_tags(), unsubdivide_is_center_vertex_tag_valid(), blender::draw::pbvh::update_face_sets_bmesh(), blender::draw::pbvh::update_masks_bmesh(), blender::draw::pbvh::update_normals_bmesh(), blender::draw::pbvh::update_positions_bmesh(), uv_box_select_exec(), uv_circle_select_exec(), uv_cylinder_project(), uv_from_view_exec(), uv_map_clip_correct(), uv_map_transform_calc_bounds(), uv_map_transform_calc_center_median(), uv_mesh_hide_sync_select(), uv_mouse_select_multi(), uv_reveal_exec(), uv_rip_object(), uv_rip_pairs_from_loop(), uv_rip_single_from_loop(), 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_tag_face(), uv_select_flush_from_tag_loop(), uv_select_invert(), uv_select_linked_multi(), blender::ed::transform::uv_set_connectivity_distance(), uv_snap_uvs_to_adjacent_unselected(), uv_sphere_project(), uvedit_edge_select_disable(), uvedit_edge_select_set_no_sync(), uvedit_edge_select_test_ex(), uvedit_face_select_set_no_sync(), uvedit_face_select_test_ex(), uvedit_face_visible_test_ex(), uvedit_have_selection(), uvedit_is_face_affected(), uvedit_is_face_affected_for_calc_uv_islands(), uvedit_loop_edge_select_get(), uvedit_unwrap_cube_project(), uvedit_uv_select_test_ex(), uvedit_vert_select_set_no_sync(), uvedit_vertex_select_tagged(), v3d_editvertex_buts(), blender::ed::sculpt_paint::hide::vert_all_faces_visible_get(), vert_dissolve_add(), vert_is_boundary(), vert_is_center_test(), blender::ed::object::vertex_parent_set_exec(), blender::ed::transform::VertsToTransData(), verttag_add_adjacent(), verttag_add_adjacent_uv(), verttag_filter_cb(), blender::ed::object::vgroup_assign_verts(), blender::ed::object::vgroup_copy_active_to_sel(), blender::ed::object::vgroup_copy_active_to_sel_single(), blender::ed::object::vgroup_mirror(), blender::ed::object::vgroup_parray_alloc(), blender::ed::object::vgroup_select_verts(), view3d_preselect_update_preview_triangle_from_vert(), walker_deselect_nth(), walker_deselect_nth_edge_chain(), walker_deselect_nth_face_chain(), walker_deselect_nth_vertex_chain(), walker_select_count(), and weld_cross_attrs_copy().

◆ BM_elem_flag_test_bool

#define BM_elem_flag_test_bool ( ele,
hflag )
Value:
_bm_elem_flag_test_bool(&(ele)->head, hflag)
ATTR_WARN_UNUSED_RESULT BLI_INLINE bool _bm_elem_flag_test_bool(const BMHeader *head, const char hflag)

Definition at line 20 of file bmesh_inline.hh.

Referenced by bm_edge_test_fill_grid_cb(), BM_iter_elem_count_flag(), BM_iter_mesh_count_flag(), BM_loop_edge_uvselect_set_shared(), bm_loop_select_edge_check_internal(), bm_loop_select_vert_check_internal(), BM_loop_vert_uvselect_set_shared(), bm_mesh_flag_count(), bm_uidwalk_face_test(), bmo_slot_buffer_from_hflag(), blender::ed::spreadsheet::calc_mesh_selection_mask(), blender::ed::spreadsheet::calc_mesh_selection_mask_faces(), blender::ed::transform::create_mesh(), DRW_text_edit_mesh_measure_stats(), blender::ed::sculpt_paint::hide::duplicate_visibility_bmesh(), edbm_add_edge_face__smooth_get(), edbm_rip_edge_invoke(), blender::bke::pbvh::edge_queue_insert(), blender::draw::extract_face_dots_bm(), blender::draw::extract_lines_bm(), blender::draw::extract_lines_loose_geom_subdiv(), blender::draw::extract_points_bm(), blender::draw::extract_points_subdiv_bm(), facetag_test_cb(), blender::ed::sculpt_paint::fill_factor_from_hide(), geometry_extract_tag_masked_faces(), blender::ed::sculpt_paint::hide::invert_visibility_bmesh(), blender::draw::skip_bm_face(), slice_paint_mask(), uv_mesh_hide_sync_select(), blender::ed::transform::uv_set_connectivity_distance(), uvedit_edge_select_get_no_sync(), uvedit_edge_select_test_ex(), uvedit_face_select_get_no_sync(), uvedit_loop_edge_select_get(), uvedit_loop_vert_select_get(), uvedit_uv_select_test_ex(), uvedit_vert_select_get_no_sync(), and verttag_test_cb().

◆ BM_elem_flag_toggle

#define BM_elem_flag_toggle ( ele,
hflag )
Value:
_bm_elem_flag_toggle(&(ele)->head, hflag)
BLI_INLINE void _bm_elem_flag_toggle(BMHeader *head, const char hflag)

Definition at line 24 of file bmesh_inline.hh.

Referenced by blender::ed::sculpt_paint::hide::invert_visibility_bmesh().

◆ BM_elem_index_get

#define BM_elem_index_get ( ele)
Value:
_bm_elem_index_get(&(ele)->head)
ATTR_WARN_UNUSED_RESULT BLI_INLINE int _bm_elem_index_get(const BMHeader *head)

notes on BM_elem_index_set(...) usage, Set index is sometimes abused as temp storage, other times we can't be sure if the index values are valid because certain operations have modified the mesh structure.

To set the elements to valid indices 'BM_mesh_elem_index_ensure' should be used rather than adding inline loops, however there are cases where we still set the index directly

In an attempt to manage this, here are 5 tags I'm adding to uses of BM_elem_index_set

  • set_inline – since the data is already being looped over set to a valid value inline.
  • set_dirty! – intentionally sets the index to an invalid value, flagging bm->elem_index_dirty so we don't use it.
  • set_ok – this is valid use since the part of the code is low level.
  • set_ok_invalid – set to -1 on purpose since this should not be used without a full array re-index, do this on adding new vert/edge/faces since they may be added at the end of the array.
  • campbell

Definition at line 117 of file bmesh_inline.hh.

Referenced by SculptSession::active_vert_index(), adjust_the_cycle_or_chain(), blender::bke::armature_vert_task_editmesh(), blender::ed::sculpt_paint::smooth::average_data_bmesh(), bevel_harden_normals(), bevel_vert_construct(), BKE_bmbvh_new_ex(), BKE_crazyspace_set_quats_editmesh(), BKE_mesh_foreach_mapped_edge(), BKE_mesh_foreach_mapped_loop(), blender::ed::sculpt_paint::smooth::blur_geometry_data_array(), bm_decim_build_edge_cost_single(), bm_decim_build_quadrics(), bm_decim_calc_target_co_db(), bm_decim_edge_collapse(), bm_decim_invalid_edge_cost_single(), bm_decim_triangulate_end(), bm_edge_collapse(), bm_edge_copy_with_arrays(), bm_edge_face(), bm_edge_info_average_length(), bm_edge_info_average_length_fallback(), bm_edge_rotate_is_boundary(), bm_edge_tag_from_smooth(), bm_edge_tag_from_smooth_and_set_sharp(), bm_edge_update_beauty_cost_single(), bm_edgenet_path_calc(), bm_edgenet_path_check_overlap(), bm_edgenet_path_from_pass(), bm_edgenet_path_step(), BM_face_calc_center_bounds_vcos(), BM_face_calc_normal_vcos(), bm_face_calc_poly_center_median_vertex_cos(), bm_face_calc_poly_normal_vertex_cos(), bm_face_copy_with_arrays(), blender::draw::bm_face_no_get(), bm_face_split_by_edges(), bm_face_split_edge_find(), BM_face_split_edgenet_connect_islands(), bm_face_split_edgenet_find_connection(), bm_face_split_edgenet_find_loop_walk(), bm_face_split_walk_back(), BM_face_splits_check_legal(), bm_face_triangulate(), bm_interior_edge_is_manifold_except_face_index(), bm_interior_face_group_calc_cost(), bm_isect_edge_tri(), bm_isect_tri_tri(), BM_lnorspace_invalidate(), BM_lnorspace_rebuild(), BM_loop_calc_face_normal_safe_vcos_ex(), bm_loop_index_cmp(), BM_loop_normal_editdata_array_init_with_htype(), bm_loop_normal_mark_indiv_do_loop(), bm_loop_path_build_step(), bm_loop_region_test(), bm_loop_walk_add(), BM_mesh_active_edge_index_get(), BM_mesh_active_face_index_get(), BM_mesh_active_vert_index_get(), BM_mesh_beautify_fill(), BM_mesh_bm_to_me_compact(), BM_mesh_calc_edge_groups(), BM_mesh_calc_face_groups(), BM_mesh_calc_path_edge(), BM_mesh_calc_path_face(), BM_mesh_calc_path_uv_edge(), BM_mesh_calc_path_uv_face(), BM_mesh_calc_path_uv_vert(), BM_mesh_calc_path_vert(), bm_mesh_calc_tessellation_with_partial__single_threaded(), BM_mesh_copy(), bm_mesh_copy_new_face(), BM_mesh_decimate_collapse(), BM_mesh_decimate_dissolve_ex(), BM_mesh_decimate_unsubdivide_ex(), BM_mesh_elem_index_validate(), BM_mesh_intersect(), BM_mesh_intersect_edges(), BM_mesh_is_valid(), bm_mesh_loops_assign_normal_data(), bm_mesh_loops_calc_normals_for_loop(), bm_mesh_loops_calc_normals_for_vert_with_clnors(), bm_mesh_loops_calc_normals_no_autosmooth(), bm_mesh_loops_custom_normals_set(), bm_mesh_loops_split_lnor_fans(), BM_mesh_partial_create_from_verts_group_multi(), BM_mesh_partial_create_from_verts_group_single(), BM_mesh_wireframe(), bm_rotate_edges_shared(), bm_tag_untagged_neighbors(), bm_uv_build_islands(), BM_uv_element_get(), BM_uv_element_get_head(), BM_uv_element_map_create(), BM_uv_vert_map_create(), bm_vert_calc_normals_with_coords(), blender::draw::bm_vert_co_get(), bm_vert_fasthash_create(), bm_vert_fasthash_edge_order(), blender::draw::bm_vert_no_get(), bm_vert_region_test(), bmbvh_tri_from_face(), bmesh_calc_tessellation_for_face_fn(), bmesh_calc_tessellation_for_face_partial_fn(), bmesh_calc_tessellation_for_face_partial_with_normals_fn(), bmesh_calc_tessellation_for_face_with_normals_fn(), blender::ed::transform::bmesh_test_dist_add(), bmesh_to_mesh_calc_object_remap(), bmo_connect_vert_pair_exec(), bmo_inset_region_exec(), bmo_offset_edgeloops_exec(), bmo_smooth_laplacian_vert_exec(), blender::ed::sculpt_paint::expand::boundary_from_enabled(), bpy_bm_elem_index_get(), bpy_bmedge_repr(), bpy_bmface_repr(), bpy_bmloop_repr(), bpy_bmvert_repr(), bvhtree_test_edges_isect_2d_ray_cb(), bvhtree_test_edges_isect_2d_vert_cb(), C_BVHTree_FromBMesh(), blender::draw::calc_adjacency_bm(), blender::ed::sculpt_paint::boundary::calc_average_position(), blender::ed::sculpt_paint::auto_mask::calc_blurred_cavity_bmesh(), blender::ed::sculpt_paint::auto_mask::Cache::calc_cavity_factor(), blender::ed::sculpt_paint::pose::calc_pose_origin_and_factor_bmesh(), blender::ed::sculpt_paint::filter::calc_sharpen_filter(), calc_solidify_normals(), blender::ed::sculpt_paint::expand::calc_topology_falloff_from_verts(), blender::ed::sculpt_paint::islands::calc_topology_islands_bmesh(), blender::ed::sculpt_paint::auto_mask::calc_vert_factors(), blender::ed::sculpt_paint::cloth::calc_vert_indices_bmesh(), blender::ed::sculpt_paint::cloth::calc_vert_neighbor_indices_bmesh(), blender::ed::sculpt_paint::cloth::calc_visible_vert_indices_bmesh(), choose_rep_face(), construct_param_edge_set_seams(), construct_param_handle_face_add(), blender::ed::transform::createTransUVs(), blender::ed::sculpt_paint::boundary::data_init_bmesh(), blender::ed::sculpt_paint::face_set::delete_geometry(), blender::ed::sculpt_paint::cloth::do_simulation_step(), blender::draw::draw_subdiv_cache_extra_coarse_face_data_bm(), DRW_text_edit_mesh_measure_stats(), ED_mesh_mirror_get_vert(), ED_mesh_mirrtopo_init(), ED_transverts_create_from_obedit(), edbm_average_normals_exec(), edbm_decimate_exec(), EDBM_elem_to_index_any(), edbm_face_split_by_edges_exec(), edbm_ripsel_edge_uid_step(), EDBM_select_interior_faces(), edbm_set_normals_from_faces_exec(), edbm_smooth_normals_exec(), EDBM_unified_findnearest_from_raycast(), EDBM_verts_mirror_cache_begin_ex(), edge_in_array(), edgering_vcos_get(), edgering_vcos_get_pair(), edgetag_add_adjacent(), edgetag_add_adjacent_uv(), blender::ed::sculpt_paint::boundary::edit_data_init_bmesh(), erot_state_ex(), blender::ed::sculpt_paint::flood_fill::FillDataBMesh::execute(), blender::draw::extract_edituv_lines_bm(), blender::draw::extract_edituv_points_bm(), blender::draw::extract_lines_bm(), blender::draw::extract_points_bm(), blender::draw::extract_uv_stretch_angle_bm(), face_dupli_from_editmesh(), face_edges_add(), face_edges_split(), facetag_add_adjacent(), facetag_add_adjacent_uv(), blender::ed::sculpt_paint::fake_neighbor_search_bmesh(), fill_laplacian_matrix(), blender::ed::sculpt_paint::auto_mask::fill_topology_automasking_factors_bmesh(), blender::ed::sculpt_paint::find_symm_verts_bmesh(), flip_custom_normals(), blender::ed::sculpt_paint::gather_data_bmesh(), get_bm_knife_vert(), blender::ed::sculpt_paint::boundary::get_closest_boundary_vert_bmesh(), SGLSLEditMeshToTangent::GetNormal(), SGLSLEditMeshToTangent::GetTexCoord(), ghashutil_bmelem_indexcmp(), ghashutil_bmelem_indexhash(), gizmo_preselect_edgering_test_select(), gizmo_preselect_elem_test_select(), blender::ed::sculpt_paint::pose::grow_factors_bmesh(), blender::ed::sculpt_paint::hide::grow_shrink_visibility_bmesh(), blender::ed::sculpt_paint::pose::ik_chain_init_face_sets_bmesh(), blender::ed::sculpt_paint::pose::ik_chain_init_face_sets_fk_bmesh(), blender::ed::sculpt_paint::pose::ik_chain_init_topology(), blender::ed::sculpt_paint::boundary::indices_init_bmesh(), blender::ed::transform::UVGroups::init(), blender::ed::sculpt_paint::auto_mask::init_boundary_masking_bmesh(), init_laplacian_matrix(), blender::ed::sculpt_paint::expand::is_face_in_active_component(), is_vertex_in_id(), knife_bm_tri_index_get(), knifetool_init_obinfo(), SculptSession::last_active_vert_index(), lattice_vert_task_editmesh(), lattice_vert_task_editmesh_no_dvert(), loop_normal_editdata_init(), loopcut_finish(), math_layer_info_init(), mesh_calc_path_region_elem(), mesh_calc_path_region_elem(), blender::ed::transform::mesh_customdatacorrect_apply_vert(), blender::ed::transform::mesh_customdatacorrect_face_substitute_get(), blender::ed::transform::mesh_partial_ensure(), modify_mesh(), multires_unsubdivide_extract_grids(), blender::ed::sculpt_paint::expand::normals_falloff_create(), normals_merge(), normals_split(), partial_elem_face_ensure(), partial_elem_vert_ensure(), blender::bke::pbvh::pbvh_bmesh_node_limit_ensure_fast(), blender::bke::pbvh::pbvh_bmesh_node_split(), reprioritize_join(), blender::ed::sculpt_paint::scatter_data_bmesh(), blender::ed::sculpt_paint::mask::sculpt_mask_init_exec(), set_mapped_co(), SGLSLEditMeshToTangent::SetTangentSpace(), solidify_add_thickness(), state_link_add(), blender::draw::statvis_calc_intersect(), blender::draw::statvis_calc_sharp(), blender::draw::statvis_calc_thickness(), stitch_calculate_island_snapping(), stitch_exit(), stitch_process_data(), stitch_propagate_uv_final_position(), stitch_set_face_preview_buffer_position(), stitch_uv_edge_generate_linked_edges(), store_grid_data(), texface_from_original_index(), blender::ed::transform::transform_convert_mesh_connectivity_distance(), blender::ed::transform::transform_convert_mesh_islands_calc(), blender::ed::transform::transform_mesh_edge_slide_data_create(), blender::ed::transform::transform_mesh_uv_edge_slide_data_create(), unsubdivide_face_center_vertex_tag(), unsubdivide_init_elem_ids(), blender::ed::sculpt_paint::expand::update_mask_bmesh(), uv_select_linked_multi(), blender::ed::transform::uv_set_connectivity_distance(), uv_shortest_path_pick_invoke(), uvedit_prepare_pinned_indices(), validate_solution(), vcos_get(), vcos_get_pair(), verttag_add_adjacent(), verttag_add_adjacent_uv(), and blender::ed::object::vgroup_smooth_subset().

◆ BM_elem_index_set

#define BM_elem_index_set ( ele,
index )
Value:
_bm_elem_index_set(&(ele)->head, index)
BLI_INLINE void _bm_elem_index_set(BMHeader *head, const int index)

Definition at line 118 of file bmesh_inline.hh.

Referenced by BKE_crazyspace_set_quats_editmesh(), BKE_editmesh_cache_ensure_face_normals(), bm_decim_triangulate_begin(), BM_edge_create(), blender::bm_edge_table_build(), bm_face_create__internal(), blender::bm_face_loop_table_build(), bm_face_split_by_edges(), BM_face_split_edgenet_connect_islands(), BM_face_splits_check_legal(), bm_face_triangulate(), bm_interp_face_store(), bm_loop_create(), BM_mesh_beautify_fill(), BM_mesh_bm_from_me(), BM_mesh_calc_edge_groups(), BM_mesh_calc_face_groups(), BM_mesh_calc_path_edge(), BM_mesh_calc_path_face(), BM_mesh_calc_path_region_vert(), BM_mesh_calc_path_uv_edge(), BM_mesh_calc_path_uv_face(), BM_mesh_calc_path_uv_region_edge(), BM_mesh_calc_path_uv_region_vert(), BM_mesh_calc_path_uv_vert(), BM_mesh_calc_path_vert(), BM_mesh_copy(), BM_mesh_copy_arrays(), bm_mesh_copy_new_face(), BM_mesh_decimate_dissolve_ex(), BM_mesh_decimate_unsubdivide_ex(), BM_mesh_edgeloops_find_path(), BM_mesh_edgenet(), bm_mesh_edges_sharp_tag(), BM_mesh_elem_index_ensure_ex(), BM_mesh_intersect_edges(), bm_mesh_loops_calc_normals__single_threaded(), BM_mesh_partial_create_from_verts(), BM_mesh_partial_create_from_verts_group_multi(), BM_mesh_partial_create_from_verts_group_single(), BM_mesh_rebuild(), BM_mesh_wireframe(), BM_normals_loops_edges_tag(), bm_rotate_edges_shared(), bm_tag_untagged_neighbors(), BM_vert_create(), BM_vert_loop_groups_data_layer_create(), blender::bm_vert_table_build(), bmo_flag_layer_alloc(), bmo_flag_layer_clear(), bmo_flag_layer_free(), bmo_inset_region_exec(), bmo_join_triangles_exec(), bpy_bm_elem_index_set(), bpy_bmelemseq_index_update(), C_BVHTree_FromBMesh(), ED_transverts_create_from_obedit(), edbm_decimate_exec(), edbm_face_split_by_edges_exec(), edbm_ripsel_edge_mark_step(), edbm_ripsel_looptag_helper(), EDBM_select_interior_faces(), blender::bke::pbvh::Tree::from_bmesh(), blender::ed::transform::UVGroups::init(), blender::ed::transform::mesh_customdatacorrect_face_substitute_set(), blender::bke::pbvh::pbvh_bmesh_node_limit_ensure(), blender::ed::transform::transform_convert_mesh_connectivity_distance(), blender::ed::transform::transform_mesh_edge_slide_data_create(), blender::ed::transform::transform_mesh_uv_edge_slide_data_create(), and vs_add().

Function Documentation

◆ _bm_elem_flag_disable()

BLI_INLINE void _bm_elem_flag_disable ( BMHeader * head,
const char hflag )

Definition at line 48 of file bmesh_inline.hh.

References BLI_INLINE, and BMHeader::hflag.

Referenced by _bm_elem_flag_set().

◆ _bm_elem_flag_enable()

BLI_INLINE void _bm_elem_flag_enable ( BMHeader * head,
const char hflag )

Definition at line 43 of file bmesh_inline.hh.

References BLI_INLINE, and BMHeader::hflag.

Referenced by _bm_elem_flag_set().

◆ _bm_elem_flag_merge()

BLI_INLINE void _bm_elem_flag_merge ( BMHeader * head_a,
BMHeader * head_b )

Definition at line 68 of file bmesh_inline.hh.

References BLI_INLINE, and BMHeader::hflag.

Referenced by _bm_elem_flag_merge_ex().

◆ _bm_elem_flag_merge_ex()

BLI_INLINE void _bm_elem_flag_merge_ex ( BMHeader * head_a,
BMHeader * head_b,
const char hflag_and )

Definition at line 73 of file bmesh_inline.hh.

References _bm_elem_flag_merge(), BLI_INLINE, and BMHeader::hflag.

◆ _bm_elem_flag_merge_into()

BLI_INLINE void _bm_elem_flag_merge_into ( BMHeader * head,
const BMHeader * head_a,
const BMHeader * head_b )

Definition at line 82 of file bmesh_inline.hh.

References BLI_INLINE, and BMHeader::hflag.

◆ _bm_elem_flag_set()

BLI_INLINE void _bm_elem_flag_set ( BMHeader * head,
const char hflag,
const int val )

Definition at line 53 of file bmesh_inline.hh.

References _bm_elem_flag_disable(), _bm_elem_flag_enable(), and BLI_INLINE.

◆ _bm_elem_flag_test()

ATTR_WARN_UNUSED_RESULT BLI_INLINE char _bm_elem_flag_test ( const BMHeader * head,
const char hflag )

Definition at line 32 of file bmesh_inline.hh.

References BLI_INLINE, and BMHeader::hflag.

◆ _bm_elem_flag_test_bool()

ATTR_WARN_UNUSED_RESULT BLI_INLINE bool _bm_elem_flag_test_bool ( const BMHeader * head,
const char hflag )

Definition at line 38 of file bmesh_inline.hh.

References BLI_INLINE, and BMHeader::hflag.

◆ _bm_elem_flag_toggle()

BLI_INLINE void _bm_elem_flag_toggle ( BMHeader * head,
const char hflag )

Definition at line 63 of file bmesh_inline.hh.

References BLI_INLINE, and BMHeader::hflag.

◆ _bm_elem_index_get()

ATTR_WARN_UNUSED_RESULT BLI_INLINE int _bm_elem_index_get ( const BMHeader * head)

Definition at line 126 of file bmesh_inline.hh.

References BLI_INLINE, and BMHeader::index.

◆ _bm_elem_index_set()

BLI_INLINE void _bm_elem_index_set ( BMHeader * head,
const int index )

Definition at line 120 of file bmesh_inline.hh.

References BLI_INLINE, and BMHeader::index.