Blender  V3.3
Public Attributes | List of all members
BMHeader Struct Reference

#include <bmesh_class.h>

Public Attributes

voiddata
 
int index
 
char htype
 
char hflag
 
char api_flag
 

Detailed Description

BMHeader

All mesh elements begin with a BMHeader. This structure hold several types of data

1: The type of the element (vert, edge, loop or face) 2: Persistent "header" flags/markings (smooth, seam, select, hidden, etc) note that this is different from the "tool" flags. 3: Unique ID in the BMesh. 4: some elements for internal record keeping.

Definition at line 49 of file bmesh_class.h.

Member Data Documentation

◆ api_flag

char BMHeader::api_flag

Internal use only!

Note
We are very picky about not bloating this struct but in this case its padded up to 16 bytes anyway, so adding a flag here gives no increase in size.

Definition at line 74 of file bmesh_class.h.

Referenced by BM_edge_create(), bm_face_create__internal(), bm_loop_create(), BM_vert_create(), and TEST().

◆ data

void* BMHeader::data

Customdata layers.

Definition at line 51 of file bmesh_class.h.

Referenced by BKE_mesh_ensure_skin_customdata(), BM_data_interp_face_vert_edge(), bm_data_interp_from_elem(), BM_data_layer_copy(), bm_edge_attrs_copy(), bm_edge_collapse_loop_customdata(), BM_edge_create(), bm_extrude_disable_skin_root(), bm_face_attrs_copy(), BM_face_create(), bm_face_create__internal(), BM_face_interp_from_face(), BM_face_interp_from_face_ex(), BM_face_split_edgenet(), bm_grid_fill_array(), bm_interp_face_store(), bm_kill_only_edge(), bm_kill_only_face(), bm_kill_only_loop(), bm_kill_only_vert(), bm_loop_attrs_copy(), bm_loop_create(), BM_loop_interp_from_face(), bm_loop_interp_from_grid_boundary_2(), bm_loop_interp_from_grid_boundary_4(), BM_mesh_bm_from_me(), BM_mesh_bm_to_me(), BM_mesh_bm_to_me_for_eval(), BM_mesh_data_free(), bm_vert_attrs_copy(), BM_vert_collapse_faces(), BM_vert_create(), BM_vert_interp_from_face(), bmesh_face_swap_data(), bmo_inset_region_exec(), bmo_mirror_exec(), bmo_pointmerge_facedata_exec(), BPy_BMEdge_CreatePyObject(), BPy_BMFace_CreatePyObject(), bpy_bmlayeritem_ptr_get(), BPy_BMLoop_CreatePyObject(), BPy_BMVert_CreatePyObject(), contarget_get_mesh_mat(), contig_ldata_across_loops(), createTransMeshSkin(), CustomData_bmesh_merge(), edbm_blend_from_shape_exec(), EDBM_verts_mirror_cache_clear(), EDBM_verts_mirror_get(), edgetag_set_cb(), edgetag_test_cb(), HC_relaxation_iteration_uv(), laplacian_relaxation_iteration_uv(), output_frames(), partialvis_update_bmesh_verts(), pbvh_bmesh_vert_create(), shape_propagate(), similar_face_select_exec(), similar_vert_select_exec(), skin_loose_mark_clear_exec(), skin_radii_equalize_exec(), skin_smooth_hulls(), stitch_calculate_edge_normal(), stitch_calculate_island_snapping(), stitch_check_edges_stitchable(), stitch_check_uvs_stitchable(), stitch_island_calculate_edge_rotation(), stitch_process_data(), stitch_propagate_uv_final_position(), tc_mesh_skin_transdata_create(), update_data_blocks(), uv_sculpt_stroke_apply(), and uv_sculpt_stroke_init().

◆ hflag

char BMHeader::hflag

◆ htype

char BMHeader::htype

Element geometric type (verts/edges/loops/faces).

Definition at line 64 of file bmesh_class.h.

Referenced by _bm_elem_hide_set(), BM_edge_create(), BM_edge_exists(), BM_edge_hide_set(), BM_edge_select_set(), BM_edge_select_set_noflush(), BM_elem_attrs_copy_ex(), BM_elem_select_copy(), BM_elem_select_set(), BM_face_create(), bm_face_create__internal(), BM_face_hide_set(), BM_face_select_set(), BM_face_select_set_noflush(), BM_face_split_edgenet_connect_islands(), bm_loop_create(), bm_mesh_elems_select_get_n__internal(), BM_mesh_intersect_edges(), bm_select_history_create(), BM_vert_create(), BM_vert_hide_set(), BM_vert_select_set(), bmesh_elem_check(), bmo_connect_vert_pair_exec(), bmo_contextual_create_exec(), BMO_elem_flag_from_header(), BMO_iter_step(), BMO_slot_buffer_from_single(), BMO_slot_map_to_flag(), bmw_LoopShellWalker_begin(), bmw_LoopShellWalker_step_impl(), bmw_LoopShellWireWalker_begin(), bmw_LoopShellWireWalker_step(), bmw_LoopShellWireWalker_visitVert(), bmw_VertShellWalker_begin(), BPy_BMElem_CreatePyObject(), bpy_bmlayeritem_ptr_get(), bpy_slot_from_py_elem_check(), deselect_nth_active(), edbm_add_edge_face_exec__tricky_finalize_sel(), EDBM_elem_to_index_any(), 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_elem_update_from_single(), EDBM_preselect_elem_update_preview(), edbm_select_linked_exec(), edbm_select_linked_pick_ex(), edbm_select_linked_pick_invoke(), edbm_shortest_path_pick_ex(), edbm_shortest_path_pick_invoke(), edge_verts_add(), edge_verts_sort(), face_edges_add(), face_edges_split(), intersect_line_tri(), mesh_calc_path_region_elem(), state_link_add(), state_link_find(), state_step(), TEST(), uv_shortest_path_pick_ex(), and walker_deselect_nth().

◆ index

int BMHeader::index
Note
  • Use BM_elem_index_get/set macros for index
  • Uninitialized to -1 so we can easily tell its not set.
  • Used for edge/vert/face/loop, check BMesh.elem_index_dirty for valid index values, this is abused by various tools which set it dirty.
  • For loops this is used for sorting during tessellation.

Definition at line 61 of file bmesh_class.h.

Referenced by _bm_elem_index_get(), _bm_elem_index_set(), bm_edge_pair_elem_setup(), BM_mesh_intersect_edges(), bmesh_face_swap_data(), and UL().


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