|
Blender V5.0
|
#include "BLI_bit_span.hh"#include "BLI_compiler_attrs.h"#include "BLI_mempool.h"#include "bmesh_class.hh"#include "intern/bmesh_operator_api.hh"#include "intern/bmesh_iterators_inline.hh"Go to the source code of this file.
Classes | |
| struct | BMIter__elem_of_mesh |
| struct | BMIter__edge_of_vert |
| struct | BMIter__face_of_vert |
| struct | BMIter__loop_of_vert |
| struct | BMIter__loop_of_edge |
| struct | BMIter__loop_of_loop |
| struct | BMIter__face_of_edge |
| struct | BMIter__vert_of_edge |
| struct | BMIter__vert_of_face |
| struct | BMIter__edge_of_face |
| struct | BMIter__loop_of_face |
| struct | BMIter |
Macros | |
| #define | BM_ITYPE_MAX 14 |
| #define | BMITER_CB_DEF(name) |
| #define | BM_ITER_CHECK_TYPE_DATA(data) |
| #define | BM_iter_new(iter, bm, itype, data) |
| #define | BM_iter_init(iter, bm, itype, data) |
Defines for passing to #BM_iter_new. | |
"OF" can be substituted for "around" so BM_VERTS_OF_FACE means "vertices* around a face." | |
| #define | BM_ITER_MESH(ele, iter, bm, itype) |
| #define | BM_ITER_MESH_INDEX(ele, iter, bm, itype, indexvar) |
| #define | BM_ITER_MESH_MUTABLE(ele, ele_next, iter, bm, itype) |
| #define | BM_ITER_ELEM(ele, iter, data, itype) |
| #define | BM_ITER_ELEM_INDEX(ele, iter, data, itype, indexvar) |
Typedefs | |
| using | BMIter__begin_cb = void (*)(void *) |
| using | BMIter__step_cb = void *(*)(void *) |
Enumerations | |
| enum | BMIterType { BM_VERTS_OF_MESH = 1 , BM_EDGES_OF_MESH = 2 , BM_FACES_OF_MESH = 3 , BM_EDGES_OF_VERT = 4 , BM_FACES_OF_VERT = 5 , BM_LOOPS_OF_VERT = 6 , BM_VERTS_OF_EDGE = 7 , BM_FACES_OF_EDGE = 8 , BM_VERTS_OF_FACE = 9 , BM_EDGES_OF_FACE = 10 , BM_LOOPS_OF_FACE = 11 , BM_LOOPS_OF_LOOP = 12 , BM_LOOPS_OF_EDGE = 13 } |
| BMesh Iterators. More... | |
Functions | |
| void * | BM_iter_at_index (BMesh *bm, char itype, void *data, int index) ATTR_WARN_UNUSED_RESULT |
| int | BM_iter_as_array (BMesh *bm, char itype, void *data, void **array, int len) |
| Iterator as Array. | |
| void * | BM_iter_as_arrayN (BMesh *bm, char itype, void *data, int *r_len, void **stack_array, int stack_array_size) ATTR_WARN_UNUSED_RESULT |
| Iterator as Array. | |
| int | BMO_iter_as_array (BMOpSlot slot_args[BMO_OP_MAX_SLOTS], const char *slot_name, char restrictmask, void **array, int len) |
| Operator Iterator as Array. | |
| void * | BMO_iter_as_arrayN (BMOpSlot slot_args[BMO_OP_MAX_SLOTS], const char *slot_name, char restrictmask, int *r_len, void **stack_array, int stack_array_size) |
| int | BM_iter_mesh_bitmap_from_filter (char itype, BMesh *bm, blender::MutableBitSpan bitmap, bool(*test_fn)(BMElem *, void *user_data), void *user_data) |
| int | BM_iter_mesh_bitmap_from_filter_tessface (BMesh *bm, blender::MutableBitSpan bitmap, bool(*test_fn)(BMFace *, void *user_data), void *user_data) |
| int | BM_iter_elem_count_flag (char itype, void *data, char hflag, bool value) |
| Elem Iter Flag Count. | |
| int | BMO_iter_elem_count_flag (BMesh *bm, char itype, void *data, short oflag, bool value) |
| Elem Iter Tool Flag Count. | |
| int | BM_iter_mesh_count (char itype, BMesh *bm) |
| int | BM_iter_mesh_count_flag (char itype, BMesh *bm, char hflag, bool value) |
| Mesh Iter Flag Count. | |
| BMITER_CB_DEF (elem_of_mesh) | |
| BMITER_CB_DEF (edge_of_vert) | |
| BMITER_CB_DEF (face_of_vert) | |
| BMITER_CB_DEF (loop_of_vert) | |
| BMITER_CB_DEF (loop_of_edge) | |
| BMITER_CB_DEF (loop_of_loop) | |
| BMITER_CB_DEF (face_of_edge) | |
| BMITER_CB_DEF (vert_of_edge) | |
| BMITER_CB_DEF (vert_of_face) | |
| BMITER_CB_DEF (edge_of_face) | |
| BMITER_CB_DEF (loop_of_face) | |
Variables | |
| const char | bm_iter_itype_htype_map [BM_ITYPE_MAX] |
| #define BM_ITER_CHECK_TYPE_DATA | ( | data | ) |
Definition at line 284 of file bmesh_iterators.hh.
Definition at line 94 of file bmesh_iterators.hh.
Referenced by blender::ed::object::bake_targets_output_vertex_colors(), bev_create_ngon(), bev_rebuild_polygon(), bevel_build_edge_polygons(), bevel_edge_order_extend(), bevel_edges_sharp_boundary(), bevel_harden_normals(), bevel_rebuild_existing_polygons(), bevel_vert_construct(), BKE_mesh_remesh_voxel_fix_poles(), BKE_pbvh_sync_visibility_from_verts(), bm_clear_uv_vert_selection(), BM_custom_loop_normals_to_vector_layer(), BM_data_layer_copy(), bm_decim_edge_collapse(), bm_edge_collapse_is_degenerate_flip(), bm_edge_collapse_is_degenerate_topology(), bm_edge_info_average_length(), bm_edge_info_average_length_fallback(), bm_edge_is_select_isolated(), BM_edge_normals_update(), BM_edge_pair_share_face_by_len(), bm_edgenet_path_step(), bm_edgering_pair_calc(), bm_edgering_pair_order(), bm_edgering_pair_subdiv(), BM_face_exists_multi(), BM_face_exists_overlap(), BM_face_exists_overlap_subset(), BM_face_multires_bounds_smooth(), bm_face_region_pivot_edge_find(), bm_face_region_vert_boundary_id(), bm_face_region_vert_pass_id(), BM_face_share_face_check(), BM_face_share_face_count(), bm_face_split(), bm_face_split_by_edges(), BM_face_split_edgenet(), bm_faces_form_cyclic_chain(), BM_iter_elem_count_flag(), bm_lnorspace_ensure_from_free_normals(), BM_lnorspace_invalidate(), BM_lnorspace_rebuild(), bm_loop_customdata_merge(), BM_loop_normal_editdata_array_init_with_htype(), bm_loop_normal_mark_edges_impl(), bm_loop_normal_mark_faces_impl(), bm_loop_normal_mark_indiv_do_loop(), bm_loop_normal_mark_verts_impl(), bm_loop_path_build_step(), bm_loop_tags_clear(), bm_loop_uv_select_single_vert_validate(), BM_mesh_bevel(), BM_mesh_bisect_plane(), BM_mesh_calc_edge_groups(), BM_mesh_calc_face_groups(), BM_mesh_calc_path_uv_region_edge(), BM_mesh_calc_path_uv_region_vert(), BM_mesh_calc_uvs_circle(), BM_mesh_calc_uvs_cone(), BM_mesh_data_free(), BM_mesh_decimate_dissolve_ex(), bm_mesh_loops_custom_normals_set(), BM_mesh_remap(), bm_mesh_uvselect_check_contiguous(), bm_mesh_uvselect_check_viewport_sync(), BM_mesh_wireframe(), bm_ray_cast_cb_elem_not_in_face_check(), 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(), bm_tag_untagged_neighbors(), bm_uidwalk_calc_vert_uid(), bm_uv_build_islands(), BM_uv_element_map_create(), bm_vert_boundary_tangent(), BM_vert_calc_shell_factor(), BM_vert_calc_shell_factor_ex(), bm_vert_calc_surface_tangent(), BM_vert_collapse_faces(), bm_vert_dissolve_fan(), bm_vert_dissolve_fan_test(), BM_vert_edge_count_nonwire(), bm_vert_fasthash_single(), BM_vert_is_all_edge_flag_test(), BM_vert_is_all_face_flag_test(), bm_vert_is_tag_edge_connect(), bm_vert_is_uid_connect(), BM_vert_loop_groups_data_layer_create(), bm_vert_other_tag(), bm_vert_pair_best_face_get(), BM_vert_pair_share_face_by_angle(), BM_vert_pair_share_face_by_len(), BM_vert_pair_share_face_check(), BM_vert_pair_share_face_check_cb(), BM_vert_pair_shared_face_cb(), bm_vert_pair_to_matrix(), bm_verts_form_cyclic_chain(), blender::ed::sculpt_paint::smooth::bmesh_four_neighbor_average(), blender::ed::mesh::set_attribute::bmesh_loop_layer_selected_values_set(), blender::ed::transform::bmesh_test_loose_edge(), bmo_average_vert_facedata_exec(), bmo_collapsecon_do_layer(), bmo_connect_verts_exec(), bmo_create_icosphere_exec(), bmo_create_monkey_exec(), bmo_create_uvsphere_exec(), bmo_dissolve_edges_exec(), bmo_dissolve_verts_exec(), bmo_edgeloop_fill_exec(), bmo_extrude_face_region_exec(), bmo_inset_region_exec(), BMO_iter_elem_count_flag(), bmo_mesh_copy(), bmo_mirror_exec(), bmo_offset_edgeloops_exec(), bmo_planar_faces_exec(), bmo_pointmerge_facedata_exec(), bmo_region_extend_contract(), bmo_region_extend_expand(), bmo_rotate_colors_exec(), bmo_rotate_uvs_exec(), bmo_smooth_vert_exec(), bmo_split_exec(), bmo_subdivide_edgering_exec(), bmo_subdivide_edges_exec(), bmo_triangle_fill_exec(), bmo_vert_tagged_edges_count_at_most(), bmo_vert_touches_unselected_face(), bmo_weld_verts_exec(), bmw_ConnectedVertexWalker_step(), bmw_EdgeboundaryWalker_step(), bmw_EdgeLoopWalker_begin(), bmw_EdgeLoopWalker_step(), bmw_FaceShellWalker_step(), bmw_LoopShellWalker_begin(), bmw_LoopShellWireWalker_visitVert(), bmw_UVEdgeWalker_step(), bmw_VertShellWalker_begin(), bmw_VertShellWalker_step(), build_hull(), calc_solidify_normals(), check_hole_in_region(), collapse_face_corners(), construct_param_edge_set_seams(), blender::ed::transform::createTransUVs(), CustomData_bmesh_merge_layout(), determine_uv_vert_connectivity(), do_lasso_select_mesh_uv(), 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_foreach_uv(), ED_uvedit_select_all(), ED_uvedit_selected_edges(), ED_uvedit_selected_verts(), ED_uvedit_selectmode_clean(), ED_uvedit_selectmode_flush(), edbm_add_edge_face_exec__vert_edge_lookup(), edbm_bridge_tag_boundary_edges(), edbm_dissolve_limited_exec(), edbm_extrude_discrete_faces(), edbm_face_split_by_edges_exec(), edbm_fill_grid_vert_tag_angle(), EDBM_mesh_knife(), edbm_region_to_loop_exec(), edbm_rip_edge_invoke(), edbm_rip_invoke__edge(), edbm_rip_invoke__vert(), edbm_ripsel_edge_mark_step(), edbm_ripsel_edge_uid_step(), edbm_ripsel_looptag_helper(), edbm_screw_exec(), edbm_select_by_pole_count_exec(), edbm_select_linked_flat_faces_exec(), edbm_select_loose_exec(), edbm_set_normals_from_faces_exec(), edbm_smooth_normals_exec(), edge_next(), edge_step(), edgering_find_order(), edges_face_connected_at_vert(), edgetag_add_adjacent(), edgetag_add_adjacent_uv(), edgetag_test_cb(), face_step(), facetag_add_adjacent(), facetag_add_adjacent_uv(), facetag_test_cb(), fast_bevel_edge_order(), find_bevel_edge_order(), blender::bke::pbvh::find_outer_flap_vert(), geometry_extract_tag_masked_faces(), get_bm_knife_edge(), get_bm_knife_vert(), get_incident_edges(), get_initial_edge_y(), get_uv_edge_needle(), get_uv_face_needle(), get_uv_vert_needle(), blender::ed::transform::UVGroups::init(), blender::ed::transform::is_vert_slide_visible_bmesh(), isect_ray_poly(), island_has_pins(), island_uv_transform(), knife_add_edge_faces_to_vert(), knife_get_face_kedges(), loop_find_region(), loop_find_regions(), math_layer_info_init(), blender::bke::pbvh::merge_face_edge_data(), mesh_calc_path_region_elem(), blender::ed::transform::mesh_customdatacorrect_find_best_face_substitute(), mouse_mesh_loop(), multires_unsubdivide_extract_grids(), multires_unsubdivide_extract_single_grid_from_face_edge(), blender::bke::pbvh::pbvh_bmesh_split_edge(), remdoubles_splitface(), seam_connected_recursive(), shrink_loop_uv_by_aspect_ratio(), blender::ed::object::skin_root_clear(), skin_smooth_hulls(), slice_paint_mask(), smart_project_exec(), solidify_add_thickness(), state_step(), stitch_init(), 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_vert_slide_data_create(), unsubdivide_build_base_mesh_from_tags(), unsubdivide_face_center_vertex_tag(), unsubdivide_init_elem_ids(), unsubdivide_is_center_vertex_tag_valid(), unsubdivide_tag_disconnected_mesh_element(), update_data_blocks(), update_uv_vert_map(), uv_box_select_exec(), uv_circle_select_exec(), uv_copy_mirrored_faces(), uv_cylinder_project(), uv_find_nearest_loop_from_edge(), uv_find_nearest_loop_from_vert(), uv_from_view_exec(), uv_hide_exec(), uv_map_clip_correct(), uv_map_mirror(), uv_mark_seam_exec(), uv_pin_exec(), uv_remove_doubles_to_selected_shared_vertex(), uv_reveal_exec(), uv_rip_object(), uv_rip_pairs_calc_uv_angle(), uv_rip_pairs_loop_count_on_side(), uv_rip_single_from_loop(), uv_sculpt_stroke_init(), uv_select_all(), uv_select_edgeloop(), uv_select_flush_from_loop_edge_flag(), uv_select_flush_from_tag_face(), uv_select_flush_from_tag_loop(), uv_select_invert(), uv_select_linked_multi(), uv_select_more_less(), uv_select_pinned_exec(), uv_select_similar_edge_exec(), uv_select_similar_vert_exec(), uv_select_split_exec(), blender::ed::transform::uv_set_connectivity_distance(), uv_snap_uvs_to_adjacent_unselected(), uv_sphere_project(), uvedit_center(), uvedit_ensure_uvs(), uvedit_face_select_disable(), uvedit_face_select_enable(), uvedit_face_select_shared_vert(), uvedit_first_selected_uv_from_vertex(), uvedit_have_selection(), uvedit_is_face_affected(), uvedit_prepare_pinned_indices(), uvedit_select_flush_from_verts(), uvedit_select_is_any_selected(), uvedit_translate(), uvedit_unwrap_cube_project(), uvedit_vert_is_all_other_faces_selected(), uvedit_vert_is_face_select_any_other(), uvedit_vertex_select_tagged(), vert_face_normal_mark_set(), vert_face_normal_mark_update(), blender::ed::sculpt_paint::face_set::vert_has_face_set(), blender::bke::pbvh::vert_in_face_adjacent_to_edge(), vert_is_boundary(), blender::ed::sculpt_paint::vert_neighbors_get_bmesh(), blender::ed::sculpt_paint::vert_neighbors_get_interior_bmesh(), verttag_add_adjacent(), verttag_add_adjacent_uv(), verttag_set_cb(), verttag_test_cb(), and blender::ed::object::vgroup_smooth_subset().
Definition at line 98 of file bmesh_iterators.hh.
Referenced by bm_face_reverse_colors(), bm_face_reverse_uvs(), BM_mesh_bisect_plane(), BM_mesh_calc_uvs_cone(), BM_mesh_calc_uvs_cube(), BM_mesh_calc_uvs_grid(), BM_mesh_calc_uvs_sphere(), bm_mesh_calc_uvs_sphere_face(), BM_uv_element_map_create(), BM_uv_vert_map_create(), BM_vert_calc_median_tagged_edge_length(), bmo_create_icosphere_exec(), bmo_subdivide_edges_exec(), construct_param_handle_face_add(), blender::ed::transform::mesh_customdatacorrect_apply_vert(), reset_uvs_bmesh(), solidify_add_thickness(), stitch_init(), stitch_process_data(), uv_copy_mirrored_faces(), uv_cylinder_project(), uv_find_nearest_edge(), uv_find_nearest_vert(), uv_map_mirror(), uv_select_linked_multi(), uv_select_overlap(), uv_sphere_project(), and uvedit_pack_islands_multi().
Definition at line 289 of file bmesh_iterators.hh.
Referenced by BM_iter_as_arrayN(), bpy_bmelemseq_iter(), bpy_bmelemseq_subscript_slice(), blender::ed::transform::mesh_customdatacorrect_apply_vert(), and blender::ed::transform::mesh_customdatacorrect_init_vert().
Definition at line 69 of file bmesh_iterators.hh.
Referenced by adjust_offsets(), blender::ed::sculpt_paint::expand::any_nonzero_mask(), blender::ed::object::bake_targets_output_vertex_colors(), bevel_edges_sharp_boundary(), bevel_harden_normals(), bevel_limit_offset(), bevel_set_weighted_normal_face_strength(), BKE_crazyspace_set_quats_editmesh(), BKE_editmesh_cache_calc_minmax(), BKE_mesh_ensure_skin_customdata(), BKE_mesh_material_remap(), BKE_mesh_remesh_voxel_fix_poles(), BKE_object_defgroup_clear(), BKE_pbvh_sync_visibility_from_verts(), bm_clear_uv_vert_selection(), BM_custom_loop_normals_to_vector_layer(), BM_data_layer_copy(), bm_decim_build_quadrics(), bm_decim_triangulate_begin(), bm_decim_triangulate_end(), bm_edge_info_average_length_fallback(), bm_edgenet_edge_get_next(), bm_face_split(), BM_iter_mesh_count_flag(), bm_lnorspace_ensure_from_free_normals(), BM_lnorspace_invalidate(), BM_lnorspace_rebuild(), BM_log_all_added(), bm_log_assign_ids(), BM_log_before_all_removed(), BM_loop_at_index_find(), BM_loop_normal_editdata_array_init_with_htype(), bm_loop_normal_mark_edges_impl(), bm_loop_normal_mark_faces_impl(), bm_loop_normal_mark_verts_impl(), bm_loop_tags_clear(), BM_mesh_active_face_get(), BM_mesh_bevel(), BM_mesh_bisect_plane(), BM_mesh_calc_edge_groups_as_arrays(), 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_tessellation__single_threaded(), BM_mesh_calc_tessellation_beauty(), bm_mesh_calc_uv_islands(), BM_mesh_calc_uvs_circle(), BM_mesh_calc_uvs_cone(), BM_mesh_calc_uvs_cube(), BM_mesh_calc_uvs_grid(), BM_mesh_calc_uvs_sphere(), BM_mesh_calc_volume(), BM_mesh_data_free(), BM_mesh_decimate_dissolve_ex(), 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_index_ensure_ex(), BM_mesh_elem_index_validate(), BM_mesh_elem_toolflags_ensure(), blender::ed::transform::bm_mesh_elems_select_get_n__internal(), bm_mesh_flag_count(), BM_mesh_intersect_edges(), bm_mesh_loop_clear_tag(), bm_mesh_loops_calc_normals__single_threaded(), bm_mesh_loops_calc_normals_no_autosmooth(), bm_mesh_loops_custom_normals_set(), BM_mesh_region_match(), BM_mesh_remap(), BM_mesh_select_flush_from_verts(), BM_mesh_select_mode_clean_ex(), bm_mesh_select_mode_flush_edge_to_vert(), bm_mesh_select_mode_flush_face_to_vert_and_edge(), 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_disable_all(), 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_sync_to_mesh(), BM_mesh_wireframe(), bm_rotate_edges_shared(), BM_uv_element_map_create(), BM_uv_vert_map_create(), bm_vert_fasthash_create(), bm_verts_tag_count(), BMD_mesh_bm_create(), BMD_mesh_intersection(), bmesh_face_attribute_fill(), blender::ed::mesh::set_attribute::bmesh_loop_layer_selected_values_set(), bmesh_selected_verts_center_calc(), blender::ed::mesh::set_attribute::bmesh_vert_edge_face_layer_selected_values_set(), bmo_beautify_fill_exec(), bmo_collapse_exec(), bmo_collapsecon_do_layer(), bmo_create_icosphere_exec(), bmo_create_uvsphere_exec(), bmo_dissolve_degenerate_exec(), bmo_dissolve_edges_exec(), bmo_dissolve_faces_exec(), bmo_extrude_face_region_exec(), bmo_inset_region_exec(), bmo_join_triangles_exec(), bmo_mesh_copy(), BMO_mesh_delete_oflag_context(), bmo_mesh_flag_count(), BMO_mesh_flag_disable_all(), BMO_slot_buffer_from_all(), bmo_slot_buffer_from_flag(), bmo_slot_buffer_from_hflag(), bmo_split_exec(), bmo_subdivide_edges_exec(), bmo_unsubdivide_exec(), bmo_weld_verts_exec(), bpy_bmesh_transform(), calc_ortho_extent(), calc_solidify_normals(), construct_param_edge_set_seams(), contarget_get_mesh_mat(), correct_uv_aspect(), correct_uv_aspect_per_face(), blender::ed::transform::createTransEdge(), blender::ed::transform::createTransEditVerts(), blender::ed::transform::createTransMeshSkin(), blender::ed::transform::createTransMeshVertCData(), blender::ed::transform::createTransUVs(), CustomData_bmesh_merge_layout(), cylinder_project_exec(), blender::ed::sculpt_paint::face_set::delete_geometry(), deselect_nth_active(), do_lasso_select_mesh_uv(), doEdgeSplit(), blender::draw::draw_subdiv_cache_extra_coarse_face_data_bm(), DRW_text_edit_mesh_measure_stats(), ED_mesh_mirrtopo_init(), ED_transverts_create_from_obedit(), ED_uvedit_foreach_uv(), ED_uvedit_select_all(), ED_uvedit_selected_edges(), ED_uvedit_selected_faces(), ED_uvedit_selected_verts(), ED_uvedit_selectmode_clean(), ED_uvedit_selectmode_flush(), edbm_add_edge_face__smooth_get(), edbm_add_edge_face_exec__tricky_extend_sel(), 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_extrude_edge_exclude_mirror(), edbm_face_split_by_edges_exec(), edbm_fill_grid_prepare(), 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_project_snap_verts(), edbm_region_to_loop_exec(), edbm_rip_edge_invoke(), edbm_rip_invoke(), edbm_rip_invoke__edge(), edbm_rip_invoke__vert(), edbm_ripsel_looptag_helper(), 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_interior_faces(), 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_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_tagged_loop_pairs_to_fill(), EDBM_unified_findnearest_from_raycast(), EDBM_verts_mirror_apply(), editbmesh_get_x_mirror_vert_topo(), blender::ed::sculpt_paint::face_set::ensure_face_sets_bmesh(), blender::draw::extract_data_bmesh_edge(), blender::draw::extract_data_bmesh_face(), blender::draw::extract_data_bmesh_loop(), blender::draw::extract_data_bmesh_vert(), blender::draw::extract_edituv_lines_bm(), blender::draw::extract_edituv_points_bm(), blender::draw::extract_skin_roots(), blender::draw::extract_uv_stretch_angle_bm(), blender::ed::sculpt_paint::fill_bm_face_or_corner_attribute(), fill_laplacian_matrix(), blender::ed::sculpt_paint::face_set::find_next_available_id(), flip_custom_normals(), blender::bke::pbvh::Tree::from_bmesh(), geometry_extract_apply(), geometry_extract_tag_face_set(), geometry_extract_tag_masked_faces(), blender::ed::transform::getTransformOrientation_ex(), blender::ed::transform::gizmo_3d_foreach_selected(), gizmo_mesh_spin_init_refresh(), hull_merge_triangles(), blender::ed::transform::UVGroups::init(), init_laplacian_matrix(), key_block_get_data(), loop_find_regions(), material_slot_assign_exec(), merge_target(), blender::geometry::boolean::mesh_bm_concat(), mesh_calc_path_region_elem(), mesh_calc_path_region_elem(), mesh_separate_material(), mesh_set_smooth_faces(), modify_mesh(), multires_unsubdivide_extract_grids(), normals_split(), normals_split_merge(), object_defgroup_remove_edit_mode(), blender::ed::object::object_origin_set_exec(), reset_uv_map(), blender::ed::object::return_editmesh_indexar(), blender::ed::object::return_editmesh_vgroup(), blender::ed::object::select_editbmesh_hook(), select_linked_delimit_begin(), blender::ed::mesh::set_sharpness_by_angle_exec(), shape_propagate(), similar_edge_select_exec(), similar_face_select_exec(), similar_vert_select_exec(), skin_hole_target_face(), 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(), slice_paint_mask(), smart_project_exec(), solidify_add_thickness(), sphere_project_exec(), blender::draw::statvis_calc_overhang(), blender::draw::statvis_calc_sharp(), blender::draw::statvis_calc_thickness(), stitch_init(), stitch_process_data(), blender::ed::sculpt_paint::hide::sync_all_from_faces(), blender::ed::transform::transform_convert_mesh_connectivity_distance(), blender::ed::transform::transform_mesh_edge_slide_data_create(), unsubdivide_build_base_mesh_from_tags(), unsubdivide_find_any_pole(), unsubdivide_is_all_quads(), unsubdivide_is_center_vertex_tag_valid(), unsubdivide_tag_disconnected_mesh_element(), update_data_blocks(), uv_box_select_exec(), uv_circle_select_exec(), uv_copy_mirrored_faces(), uv_find_nearest_edge(), uv_find_nearest_face_ex(), uv_find_nearest_vert(), uv_from_view_exec(), uv_hide_exec(), uv_map_clip_correct(), uv_map_transform_calc_bounds(), uv_map_transform_calc_center_median(), uv_mark_seam_exec(), uv_mesh_hide_sync_select(), uv_pin_exec(), uv_remove_doubles_to_selected_shared_vertex(), uv_reveal_exec(), uv_rip_object(), uv_sculpt_stroke_init(), uv_seams_from_islands_exec(), uv_select_all(), uv_select_edgeloop(), uv_select_flush_from_loop_edge_flag(), uv_select_flush_from_tag_face(), uv_select_flush_from_tag_loop(), uv_select_invert(), 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(), blender::ed::transform::uv_set_connectivity_distance(), uv_snap_uvs_to_adjacent_unselected(), uvedit_center(), uvedit_ensure_uvs(), uvedit_have_selection(), uvedit_nearest_uv(), uvedit_select_flush_from_verts(), uvedit_select_is_any_selected(), uvedit_translate(), uvedit_unwrap_cube_project(), uvedit_vertex_select_tagged(), v3d_editvertex_buts(), validate_solution(), blender::ed::object::vgroup_assign_verts(), blender::ed::object::vgroup_do_remap(), blender::ed::object::vgroup_mirror(), blender::ed::object::vgroup_parray_alloc(), blender::ed::object::vgroup_select_verts(), and walker_deselect_nth().
Definition at line 73 of file bmesh_iterators.hh.
Referenced by BKE_crazyspace_set_quats_editmesh(), BKE_editmesh_cache_ensure_face_centers(), BKE_editmesh_cache_ensure_face_normals(), BKE_mesh_foreach_mapped_edge(), BKE_mesh_foreach_mapped_face_center(), BKE_mesh_foreach_mapped_loop(), BKE_mesh_foreach_mapped_vert(), BKE_mesh_wrapper_vert_coords_copy(), BKE_mesh_wrapper_vert_coords_copy_with_mat4(), bm_decim_build_edge_cost(), bm_edge_symmetry_map(), blender::bm_edge_table_build(), blender::bm_face_loop_table_build(), BM_iter_mesh_bitmap_from_filter(), BM_iter_mesh_bitmap_from_filter_tessface(), BM_mesh_bisect_plane(), 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_edge(), BM_mesh_calc_path_region_face(), BM_mesh_calc_path_region_vert(), BM_mesh_calc_path_uv_region_face(), BM_mesh_calc_path_vert(), BM_mesh_copy(), BM_mesh_decimate_dissolve_ex(), BM_mesh_edgeloops_find_path(), bm_mesh_edges_sharp_tag(), BM_mesh_elem_table_check(), BM_mesh_intersect_edges(), BM_mesh_is_valid(), 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_vert_coords_apply(), BM_mesh_vert_coords_apply_with_mat4(), BM_mesh_vert_coords_get(), BM_mesh_vert_normals_get(), BM_mesh_wireframe(), BM_normals_loops_edges_tag(), bm_to_mesh_shape(), bm_to_mesh_vertex_map(), BM_uv_element_map_create(), BM_uv_vert_map_create(), bm_vert_fasthash_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(), bmo_spin_exec(), C_BVHTree_FromBMesh(), blender::draw::calc_face_tri_starts_bmesh(), construct_param_handle(), construct_param_handle_multi(), blender::ed::transform::create_mesh(), blender::ed::transform::createTransEditVerts(), blender::ed::transform::createTransMeshSkin(), blender::ed::transform::createTransMeshVertCData(), curve_deform_coords_impl(), deformVerts_do(), DRW_text_edit_mesh_measure_stats(), ED_mesh_mirror_spatial_table_begin(), edbm_decimate_exec(), edbm_face_split_by_edges_exec(), EDBM_select_interior_faces(), edbm_set_normals_from_faces_exec(), EDBM_verts_mirror_cache_begin_ex(), editmesh_partial_update_begin_fn(), fill_laplacian_matrix(), blender::bke::pbvh::Tree::from_bmesh(), get_weights_array(), init_laplacian_matrix(), make_child_duplis_faces_from_editmesh(), make_child_duplis_verts_from_editmesh(), blender::draw::mesh_render_data_loose_edges_bm(), blender::draw::mesh_render_data_loose_verts_bm(), mesh_symmetry_snap_exec(), sort_bmelem_flag(), blender::draw::statvis_calc_distort(), blender::ed::transform::transform_convert_mesh_connectivity_distance(), blender::ed::transform::transform_convert_mesh_islands_calc(), blender::ed::transform::transform_convert_mesh_mirrordata_calc(), uv_select_linked_multi(), uv_select_overlap(), blender::ed::object::vertex_parent_set_exec(), blender::ed::object::vgroup_copy_active_to_sel(), and blender::ed::object::vgroup_copy_active_to_sel_single().
Definition at line 80 of file bmesh_iterators.hh.
Referenced by BKE_mesh_mirror_bisect_on_mirror_plane_for_modifier(), BKE_mesh_remesh_voxel_fix_poles(), BM_mesh_bevel(), BM_mesh_decimate_unsubdivide_ex(), BM_mesh_intersect(), bm_remove_tagged_edges(), bm_remove_tagged_faces(), bm_remove_tagged_verts(), bm_remove_tagged_verts_loose(), bmo_dissolve_edges_exec(), bmo_dissolve_faces_exec(), bmo_dissolve_verts_exec(), bmo_remove_tagged_edges(), bmo_remove_tagged_faces(), bmo_remove_tagged_verts(), bmo_remove_tagged_verts_loose(), and bmo_triangle_fill_exec().
Definition at line 287 of file bmesh_iterators.hh.
Referenced by BM_iter_as_array(), BM_iter_at_index(), BM_mesh_calc_edge_groups(), BM_mesh_calc_face_groups(), BM_mesh_elem_hflag_disable_test(), BM_mesh_elem_hflag_enable_test(), and EDBM_stats_update().
| #define BM_ITYPE_MAX 14 |
Definition at line 58 of file bmesh_iterators.hh.
| #define BMITER_CB_DEF | ( | name | ) |
Definition at line 263 of file bmesh_iterators.hh.
| using BMIter__begin_cb = void (*)(void *) |
Definition at line 150 of file bmesh_iterators.hh.
| using BMIter__step_cb = void *(*)(void *) |
Definition at line 151 of file bmesh_iterators.hh.
| enum BMIterType |
BMesh Iterators.
The functions and structures in this file provide a unified method for iterating over the elements of a mesh and answering simple adjacency queries. Tool authors should use the iterators provided in this file instead of inspecting the structure directly.
Definition at line 34 of file bmesh_iterators.hh.
| int BM_iter_as_array | ( | BMesh * | bm, |
| char | itype, | ||
| void * | data, | ||
| void ** | array, | ||
| int | len ) |
Iterator as Array.
Sometimes its convenient to get the iterator as an array to avoid multiple calls to BM_iter_at_index.
Definition at line 80 of file bmesh_iterators.cc.
References bm, BM_iter_new, data, i, itype, and len.
Referenced by BM_mesh_elem_table_ensure(), bm_vert_dissolve_fan(), edbm_rip_invoke__vert(), blender::bke::pbvh::pbvh_bmesh_edge_loops(), quad_from_tris(), and skin_fix_hole_no_good_verts().
| void * BM_iter_as_arrayN | ( | BMesh * | bm, |
| char | itype, | ||
| void * | data, | ||
| int * | r_len, | ||
| void ** | stack_array, | ||
| int | stack_array_size ) |
Iterator as Array.
Allocates a new array, has the advantage that you don't need to know the size ahead of time.
Takes advantage of less common iterator usage to avoid counting twice, which you might end up doing when BM_iter_as_array is used.
Caller needs to free the array.
Definition at line 127 of file bmesh_iterators.cc.
References BLI_assert, bm, BM_EDGES_OF_MESH, BM_FACES_OF_MESH, BM_iter_init, BM_VERTS_OF_MESH, BMIter::count, data, i, itype, and MEM_malloc_arrayN().
Referenced by BM_mesh_decimate_dissolve().
| void * BM_iter_at_index | ( | BMesh * | bm, |
| char | itype, | ||
| void * | data, | ||
| int | index ) |
Definition at line 58 of file bmesh_iterators.cc.
References bm, BM_iter_new, data, i, and itype.
Referenced by BM_uv_vert_map_create(), bm_vert_dissolve_fan(), bm_vert_loop_pair(), bpy_bmelemseq_subscript_int(), bridge_loop_pair(), mesh_separate_material(), and stitch_init().
| int BM_iter_elem_count_flag | ( | char | itype, |
| void * | data, | ||
| char | hflag, | ||
| bool | value ) |
Elem Iter Flag Count.
Counts how many flagged / unflagged items are found in this element.
Definition at line 267 of file bmesh_iterators.cc.
References BM_elem_flag_test_bool, BM_ITER_ELEM, count, data, and itype.
Referenced by bm_vert_is_select_history_open(), and blender::ed::transform::transform_mesh_edge_slide_data_create().
| int BM_iter_mesh_bitmap_from_filter | ( | char | itype, |
| BMesh * | bm, | ||
| blender::MutableBitSpan | bitmap, | ||
| bool(* | test_fn )(BMElem *, void *user_data), | ||
| void * | user_data ) |
Definition at line 213 of file bmesh_iterators.cc.
References bm, BM_ITER_MESH_INDEX, i, and itype.
| int BM_iter_mesh_bitmap_from_filter_tessface | ( | BMesh * | bm, |
| blender::MutableBitSpan | bitmap, | ||
| bool(* | test_fn )(BMFace *, void *user_data), | ||
| void * | user_data ) |
Needed when we want to check faces, but return a loop aligned array.
Definition at line 237 of file bmesh_iterators.cc.
References bm, BM_FACES_OF_MESH, BM_ITER_MESH_INDEX, i, and BMFace::len.
| int BM_iter_mesh_count | ( | char | itype, |
| BMesh * | bm ) |
Utility function.
Definition at line 35 of file bmesh_iterators.cc.
References BLI_assert, bm, BM_EDGES_OF_MESH, BM_FACES_OF_MESH, BM_VERTS_OF_MESH, count, and itype.
| int BM_iter_mesh_count_flag | ( | char | itype, |
| BMesh * | bm, | ||
| char | hflag, | ||
| bool | value ) |
Mesh Iter Flag Count.
Counts how many flagged / unflagged items are found in this mesh.
Definition at line 323 of file bmesh_iterators.cc.
References bm, BM_elem_flag_test_bool, BM_ITER_MESH, count, and itype.
Referenced by bmo_collapse_uvs_exec(), and blender::ed::transform::transform_convert_mesh_connectivity_distance().
| BMITER_CB_DEF | ( | edge_of_face | ) |
| BMITER_CB_DEF | ( | edge_of_vert | ) |
| BMITER_CB_DEF | ( | elem_of_mesh | ) |
| BMITER_CB_DEF | ( | face_of_edge | ) |
| BMITER_CB_DEF | ( | face_of_vert | ) |
| BMITER_CB_DEF | ( | loop_of_edge | ) |
| BMITER_CB_DEF | ( | loop_of_face | ) |
| BMITER_CB_DEF | ( | loop_of_loop | ) |
| BMITER_CB_DEF | ( | loop_of_vert | ) |
| BMITER_CB_DEF | ( | vert_of_edge | ) |
| BMITER_CB_DEF | ( | vert_of_face | ) |
| int BMO_iter_as_array | ( | BMOpSlot | slot_args[BMO_OP_MAX_SLOTS], |
| const char * | slot_name, | ||
| char | restrictmask, | ||
| void ** | array, | ||
| int | len ) |
Operator Iterator as Array.
Sometimes its convenient to get the iterator as an array.
Definition at line 100 of file bmesh_iterators.cc.
References BMO_iter_new(), BMO_iter_step(), BMO_OP_MAX_SLOTS, i, and len.
Referenced by bmo_contextual_create_exec().
| void * BMO_iter_as_arrayN | ( | BMOpSlot | slot_args[BMO_OP_MAX_SLOTS], |
| const char * | slot_name, | ||
| char | restrictmask, | ||
| int * | r_len, | ||
| void ** | stack_array, | ||
| int | stack_array_size ) |
Definition at line 173 of file bmesh_iterators.cc.
References BLI_assert, BMO_iter_new(), BMO_iter_step(), BMO_OP_MAX_SLOTS, BMO_slot_buffer_len(), i, MEM_malloc_arrayN(), and MEM_reallocN.
| int BMO_iter_elem_count_flag | ( | BMesh * | bm, |
| char | itype, | ||
| void * | data, | ||
| short | oflag, | ||
| bool | value ) |
Elem Iter Tool Flag Count.
Counts how many flagged / unflagged items are found in this element.
Definition at line 282 of file bmesh_iterators.cc.
References BLI_assert, bm, BM_EDGE, BM_FACE, BM_ITER_ELEM, bm_iter_itype_htype_map, BM_LOOP, BM_VERT, BMO_edge_flag_test_bool, BMO_face_flag_test_bool, BMO_vert_flag_test_bool, count, data, itype, and oflag.
Referenced by bmo_contextual_create_exec(), bmo_edgeloop_fill_exec(), and bmo_edgenet_prepare_exec().
|
extern |
Definition at line 18 of file bmesh_iterators.cc.
Referenced by BMO_iter_elem_count_flag(), bpy_bmelemseq_ensure_lookup_table(), bpy_bmelemseq_index_update(), bpy_bmelemseq_sort(), bpy_bmelemseq_subscript_int(), and bpy_slot_from_py().