Blender V4.3
BMFace Struct Reference

#include <bmesh_class.hh>

Public Attributes

BMHeader head
 
BMLoopl_first
 
int len
 
float no [3]
 
short mat_nr
 

Detailed Description

Definition at line 256 of file bmesh_class.hh.

Member Data Documentation

◆ head

◆ l_first

◆ len

int BMFace::len

Number of vertices in the face (the length of BMFace.l_first circular linked list).

Definition at line 269 of file bmesh_class.hh.

Referenced by bevel_build_trifan(), bm_decim_edge_collapse(), bm_decim_triangulate_begin(), bm_decim_triangulate_end(), bm_edge_collapse(), bm_edge_collapse_is_degenerate_topology(), BM_edge_is_any_face_len_test(), BM_edge_pair_share_face_by_len(), BM_edge_share_quad_check(), blender::bke::pbvh::bm_face_as_array(), BM_face_as_array_loop_quad(), BM_face_as_array_loop_tri(), BM_face_as_array_vert_quad(), BM_face_as_array_vert_tri(), bm_face_bisect_verts(), BM_face_calc_center_median(), BM_face_calc_normal(), BM_face_calc_normal_vcos(), BM_face_calc_point_in_face(), bm_face_calc_poly_center_median_vertex_cos(), BM_face_calc_tangent_auto(), BM_face_calc_tangent_edge_pair(), BM_face_calc_tessellation(), bm_face_connect_verts(), bm_face_convex_tag_verts(), bm_face_copy_impl(), bm_face_copy_with_arrays(), BM_face_create(), bm_face_create__internal(), BM_face_edges_kill(), BM_face_exists(), BM_face_exists_overlap_subset(), blender::bke::pbvh::bm_face_exists_tri_from_loop_vert(), BM_face_find_double(), BM_face_interp_from_face(), BM_face_interp_from_face_ex(), BM_face_kill(), bm_face_len_cmp(), BM_face_point_inside_test(), bm_face_region_vert_boundary_id(), bm_face_region_vert_pass_id(), bm_face_reverse_colors(), bm_face_reverse_uvs(), bm_face_slice(), bm_face_split(), bm_face_split_by_concave(), BM_face_split_edgenet(), BM_face_split_edgenet_connect_islands(), bm_face_split_find(), BM_face_splits_check_legal(), BM_face_triangulate(), bm_face_triangulate(), BM_face_uv_calc_center_median(), BM_face_uv_calc_cross(), BM_face_uv_point_inside_test(), BM_face_verts_kill(), bm_interp_face_free(), bm_interp_face_store(), BM_iter_mesh_bitmap_from_filter_tessface(), BM_log_face_added(), bm_log_face_alloc(), BM_loop_at_index_find(), BM_loop_interp_from_face(), BM_loop_interp_multires_ex(), bm_mesh_calc_tessellation__single_threaded(), BM_mesh_calc_tessellation_beauty(), BM_mesh_calc_uvs_cone(), bm_mesh_calc_uvs_sphere_face(), bm_mesh_calc_volume_face(), bm_mesh_copy_new_face(), BM_mesh_intersect(), BM_mesh_partial_create_from_verts_group_multi(), BM_mesh_partial_create_from_verts_group_single(), BM_mesh_validate(), BM_mesh_wireframe(), bm_select_edgeloop_double_side_next(), bm_uidwalk_calc_face_uid(), bm_uidwalk_init_from_edge(), BM_uv_element_map_create(), BM_uv_vert_map_create(), bm_vert_collapse_is_degenerate(), bm_vert_dissolve_fan(), bm_vert_fasthash_single(), BM_vert_interp_from_face(), BM_vert_pair_share_face_by_len(), BM_verts_in_face(), bmesh_calc_tessellation_for_face_beauty(), bmesh_calc_tessellation_for_face_impl(), bmesh_elem_check(), bmesh_kernel_join_edge_kill_vert(), bmesh_kernel_join_face_kill_edge(), bmesh_kernel_join_vert_kill_edge(), bmesh_kernel_loop_reverse(), bmesh_kernel_split_edge_make_vert(), bmesh_kernel_split_face_make_edge(), bmesh_loop_validate(), bmo_beautify_fill_exec(), bmo_connect_verts_concave_exec(), bmo_connect_verts_exec(), bmo_connect_verts_nonplanar_exec(), bmo_dissolve_degenerate_exec(), bmo_face_copy(), bmo_face_inset_individual(), bmo_flip_quad_tessellation_exec(), bmo_holes_fill_exec(), bmo_join_triangles_exec(), bmo_offset_edgeloops_exec(), bmo_planar_faces_exec(), bmo_poke_exec(), bmo_subdivide_edgering_exec(), bmo_weld_verts_exec(), bmw_EdgeLoopWalker_begin(), bmw_EdgeringWalker_begin(), bmw_EdgeringWalker_step(), bmw_FaceLoopWalker_include_face(), bmw_FaceLoopWalker_step(), bpy_bmface_repr(), collapse_face_corners(), construct_param_handle_face_add(), DRW_text_edit_mesh_measure_stats(), edbm_add_edge_face_exec__tricky_finalize_sel(), edbm_decimate_exec(), edbm_polybuild_face_at_cursor_invoke(), edbm_select_face_by_sides_exec(), EDBM_verts_mirror_get_face(), edgetag_add_adjacent(), face_dupli_from_editmesh(), fill_laplacian_matrix(), init_laplacian_matrix(), isect_face_dst(), isect_face_dst(), make_child_duplis_faces_from_editmesh(), mesh_calc_path_region_elem(), mesh_calc_path_region_elem(), mesh_customdatacorrect_restore(), mesh_uv_reset_bmface(), blender::bke::pbvh::pbvh_bmesh_split_edge(), remdoubles_createface(), skin_fix_hole_no_good_verts(), solidify_add_thickness(), state_step(), blender::draw::statvis_calc_distort(), blender::draw::statvis_calc_intersect(), blender::draw::statvis_calc_overhang(), blender::draw::statvis_calc_thickness(), stitch_init(), stitch_process_data(), stitch_set_face_preview_buffer_position(), unsubdivide_is_all_quads(), uv_cylinder_project(), uv_map_mirror(), uv_select_edgering(), uv_select_faceloop(), uv_select_overlap(), uv_sphere_project(), uvedit_pack_islands_multi(), verttag_add_adjacent(), view3d_preselect_mesh_elem_update_from_face(), and view3d_preselect_update_preview_triangle_from_face().

◆ mat_nr

short BMFace::mat_nr

Material index, typically >= 0 and < Mesh.totcol although this isn't enforced Python for e.g. can set this to any positive value since scripts may create mesh data first and setup material slots later.

When using to index into a material array it's range should be checked first, values exceeding the range should be ignored or treated as zero (if a material slot needs to be used - when drawing for e.g.)

Definition at line 283 of file bmesh_class.hh.

Referenced by add_poly(), bev_create_ngon(), BKE_mesh_material_remap(), bm_edge_is_delimit(), BM_elem_attrs_copy(), BM_elem_attrs_copy(), bm_face_create__internal(), bm_grid_fill_array(), BM_mesh_bm_from_me(), bm_mesh_copy_new_face(), BM_mesh_intersect(), BM_mesh_partial_create_from_verts_group_multi(), BM_mesh_wireframe(), BMD_mesh_intersection(), bmo_contextual_create_exec(), bmo_edgeloop_fill_exec(), bmo_edgenet_fill_exec(), build_hull(), choose_rep_face(), correct_uv_aspect_per_face(), ED_space_image_auto_set(), ED_uvedit_get_aspect(), EDBM_deselect_by_material(), EDBM_select_pick(), material_slot_assign_exec(), blender::geometry::boolean::mesh_bm_concat(), mesh_separate_material(), select_linked_delimit_test(), and sort_bmelem_flag().

◆ no

float BMFace::no[3]

Face normal, see BM_face_calc_normal.

Definition at line 273 of file bmesh_class.hh.

Referenced by bevel_harden_normals(), BKE_mesh_foreach_mapped_face_center(), bm_decim_build_quadrics(), BM_edge_calc_face_angle_ex(), BM_edge_calc_face_angle_signed_ex(), BM_edge_calc_face_angle_with_imat3_ex(), BM_edge_calc_face_tangent(), BM_edge_is_convex(), bm_edge_is_delimit(), bm_edge_tag_from_smooth(), bm_edge_tag_from_smooth_and_set_sharp(), BM_editselection_normal(), BM_elem_attrs_copy(), BM_elem_attrs_copy(), bm_face_bisect_verts(), bm_face_calc_normals_cb(), BM_face_calc_tessellation(), BM_face_create(), BM_face_interp_from_face(), BM_face_is_normal_valid(), blender::draw::bm_face_no_get(), BM_face_normal_flip_ex(), BM_face_normal_update(), BM_face_point_inside_test(), bm_face_split_by_concave(), BM_face_split_edgenet(), BM_face_split_edgenet_connect_islands(), bm_face_split_edgenet_find_loop_pair(), BM_face_splits_check_legal(), BM_face_triangulate(), bm_interior_face_group_calc_cost(), bm_interp_face_store(), BM_loop_calc_face_normal(), BM_loop_calc_face_normal_safe_ex(), BM_loop_calc_face_tangent(), bm_loop_collapse_is_degenerate(), BM_loop_interp_from_face(), BM_loop_is_convex(), bm_loop_normal_accum(), BM_loop_point_side_of_edge_test(), BM_loop_point_side_of_loop_test(), bm_mesh_calc_tessellation__single_threaded(), BM_mesh_calc_uvs_cone(), bm_mesh_copy_new_face(), bm_mesh_loops_calc_normals_for_loop(), bm_mesh_loops_calc_normals_no_autosmooth(), bm_partial_faces_parallel_range_calc_normals_cb(), bm_vert_boundary_tangent(), bm_vert_calc_normals_impl(), BM_vert_calc_shell_factor(), BM_vert_calc_shell_factor_ex(), BM_vert_interp_from_face(), bm_vert_pair_share_best_splittable_face_cb(), bm_vert_pair_to_matrix(), BMD_mesh_intersection(), bmesh_calc_tessellation_for_face_beauty(), bmesh_calc_tessellation_for_face_impl(), bmo_extrude_face_region_exec(), bmo_face_inset_individual(), bmo_inset_region_exec(), bmo_planar_faces_exec(), bmo_poke_exec(), C_BVHTree_FromBMesh(), calc_solidify_normals(), doEdgeSplit(), DRW_text_edit_mesh_measure_stats(), edbm_average_normals_exec(), edbm_extrude_discrete_faces(), edbm_face_split_by_edges_exec(), edbm_normals_tools_exec(), edbm_select_linked_flat_faces_exec(), edbm_select_sharp_edges_exec(), edge_edge_angle_less_than_180(), edges_angle_kind(), SGLSLEditMeshToTangent::GetNormal(), getTransformOrientation_ex(), knife_bvh_raycast_cb(), knife_snap_angle_relative(), blender::bke::pbvh::long_edge_queue_edge_add_recursive(), blender::bke::pbvh::long_edge_queue_face_add(), blender::geometry::boolean::mesh_bm_concat(), mesh_customdatacorrect_face_substitute_get(), mesh_customdatacorrect_face_substitute_set(), mesh_customdatacorrect_find_best_face_substitute(), mesh_customdatacorrect_init_vert(), modify_mesh(), normals_split(), offset_meet(), point_between_edges(), projected_boundary_area(), recalc_face_normals_find_index(), blender::ed::mesh::set_sharpness_by_angle_exec(), blender::bke::pbvh::short_edge_queue_face_add(), smart_project_exec(), smart_uv_project_calculate_project_normals(), solidify_add_thickness(), blender::draw::statvis_calc_distort(), uvedit_unwrap_cube_project(), vert_face_normal_mark_set(), and vert_face_normal_mark_update().


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