|
Blender V4.5
|
Go to the source code of this file.
Classes | |
| struct | BMEditMesh |
The EDBM module is for editmode bmesh stuff. In contrast, this module is for code shared with blenkernel that's only concerned with low level operations on the BMEditMesh structure.
Definition in file BKE_editmesh.hh.
| BMEditMesh * BKE_editmesh_copy | ( | BMEditMesh * | em | ) |
Definition at line 39 of file editmesh.cc.
References BKE_editmesh_copy(), BMEditMesh::bm, BM_mesh_copy(), BMEditMesh::looptris, BMEditMesh::mat_nr, and BMEditMesh::selectmode.
Referenced by BKE_editmesh_copy().
| BMEditMesh * BKE_editmesh_create | ( | BMesh * | bm | ) |
Definition at line 32 of file editmesh.cc.
References BKE_editmesh_create(), bm, and BMEditMesh::bm.
Referenced by BKE_editmesh_create(), geometry_extract_apply(), and undomesh_to_editmesh().
Return whether the evaluated mesh is a "descendant" of the original mesh: whether it is a version of the original mesh propagated during evaluation. This will be false if the mesh was taken from an different object during evaluation, with the object info node for example.
Definition at line 67 of file editmesh.cc.
References BKE_editmesh_eval_orig_map_available(), and Mesh::runtime.
Referenced by BKE_editmesh_eval_orig_map_available(), blender::draw::DRW_mesh_batch_cache_create_requested(), DRW_text_edit_mesh_measure_stats(), and knifetool_init_obinfo().
| void BKE_editmesh_free_data | ( | BMEditMesh * | em | ) |
Definition at line 132 of file editmesh.cc.
References BKE_editmesh_free_data(), BMEditMesh::bm, BM_mesh_free(), and BMEditMesh::looptris.
Referenced by BKE_editmesh_free_data(), EDBM_mesh_free_data(), and geometry_extract_apply().
| BMEditMesh * BKE_editmesh_from_object | ( | Object * | ob | ) |
Return the BMEditMesh for a given object.
In this case the caller must either:
Definition at line 61 of file editmesh.cc.
References BKE_editmesh_from_object(), BLI_assert, Object::data, OB_MESH, and Object::type.
Referenced by add_primitive_circle_exec(), add_primitive_cone_exec(), add_primitive_cube_exec(), add_primitive_cube_gizmo_exec(), add_primitive_cylinder_exec(), add_primitive_grid_exec(), add_primitive_icosphere_exec(), add_primitive_monkey_exec(), add_primitive_plane_exec(), add_primitive_uvsphere_exec(), blender::ed::transform::applyNormalRotation(), average_islands_scale_exec(), BKE_crazyspace_get_mapped_editverts(), BKE_editmesh_from_object(), BKE_modifier_get_evaluated_mesh_from_evaluated_object(), blender::ed::object::calc_active_center_for_editmode(), calc_ortho_extent(), blender::ed::transform::calcEdgeSlide_mval_range(), construct_param_handle_multi(), contarget_get_mesh_mat(), blender::ed::transform::create_mesh(), blender::ed::transform::createTransEdge(), blender::ed::transform::createTransEditVerts(), blender::ed::transform::createTransMeshSkin(), blender::ed::transform::createTransMeshVertCData(), blender::ed::transform::createTransUVs(), cube_project_exec(), cylinder_project_exec(), deform_verts(), dissolve_mode_poll_property(), do_lasso_select_mesh(), do_lasso_select_mesh_uv(), ED_operator_editmesh(), ED_operator_uvmap(), ED_space_image_auto_set(), ED_space_image_show_uvedit(), ED_transverts_update_obedit(), ED_uvedit_foreach_uv_multi(), ED_uvedit_get_aspect(), ED_uvedit_live_unwrap_begin(), ED_uvedit_selectmode_clean(), ED_uvedit_test(), ED_view3d_gizmo_mesh_preselect_get_active(), ED_view3d_viewcontext_init_object(), edbm_add_edge_face_exec(), EDBM_automerge(), EDBM_automerge_and_split(), edbm_average_normals_exec(), edbm_beautify_fill_exec(), edbm_bevel_calc(), edbm_bevel_cancel(), edbm_bevel_exit(), edbm_bevel_init(), edbm_bridge_edge_loops_exec(), edbm_collapse_edge_exec(), edbm_decimate_exec(), edbm_delete_edgeloop_exec(), edbm_delete_exec(), edbm_delete_loose_exec(), edbm_dissolve_degenerate_exec(), edbm_dissolve_edges_exec(), edbm_dissolve_faces_exec(), edbm_dissolve_limited_exec(), edbm_dissolve_mode_exec(), edbm_dissolve_verts_exec(), edbm_do_smooth_laplacian_vertex_exec(), edbm_do_smooth_vertex_exec(), edbm_duplicate_exec(), edbm_edge_rotate_selected_exec(), edbm_edge_split_exec(), EDBM_elem_from_index_any_multi(), EDBM_elem_to_index_any_multi(), edbm_extrude_context_exec(), edbm_extrude_edges_exec(), edbm_extrude_faces_exec(), edbm_extrude_region_exec(), edbm_extrude_repeat_exec(), edbm_extrude_verts_exec(), edbm_face_make_planar_exec(), edbm_face_split_by_edges_exec(), edbm_faces_select_interior_exec(), edbm_faces_shade_flat_exec(), edbm_faces_shade_smooth_exec(), edbm_fill_exec(), edbm_fill_grid_exec(), edbm_fill_holes_exec(), edbm_flag_disable_all_multi(), edbm_flip_normals_exec(), edbm_flip_quad_tessellation_exec(), edbm_hide_exec(), edbm_inset_calc(), edbm_inset_cancel(), edbm_inset_init(), edbm_intersect_boolean_exec(), edbm_intersect_exec(), edbm_loop_multiselect_exec(), edbm_loop_to_region_exec(), edbm_mark_seam_exec(), edbm_mark_sharp_exec(), edbm_merge_exec(), EDBM_mesh_deselect_all_multi_ex(), EDBM_mesh_elem_index_ensure_multi(), EDBM_mesh_knife(), EDBM_mesh_stats_multi(), edbm_mod_weighted_strength_exec(), edbm_normals_make_consistent_exec(), edbm_normals_tools_exec(), edbm_offset_edgeloop_exec(), edbm_point_normals_modal(), edbm_poke_face_exec(), edbm_preselect_or_active(), edbm_quads_convert_to_tris_exec(), edbm_region_to_loop_exec(), edbm_remove_doubles_exec(), edbm_reveal_exec(), edbm_reverse_colors_exec(), edbm_reverse_uvs_exec(), edbm_rip_edge_invoke(), edbm_rip_invoke(), edbm_rip_invoke__edge(), edbm_rip_invoke__vert(), edbm_rotate_colors_exec(), edbm_rotate_uvs_exec(), edbm_screw_exec(), edbm_select_all_exec(), edbm_select_axis_exec(), edbm_select_by_attribute_exec(), edbm_select_by_pole_count_exec(), edbm_select_face_by_sides_exec(), edbm_select_id_bm_elem_get(), edbm_select_less_exec(), edbm_select_linked_exec(), edbm_select_linked_flat_faces_exec(), edbm_select_linked_pick_exec(), edbm_select_loose_exec(), edbm_select_mirror_exec(), edbm_select_more_exec(), edbm_select_non_manifold_exec(), edbm_select_nth_exec(), EDBM_select_pick(), edbm_select_random_exec(), edbm_select_sharp_edges_exec(), edbm_select_similar_region_exec(), edbm_select_ungrouped_exec(), edbm_select_ungrouped_poll(), EDBM_selectmode_disable_multi_ex(), EDBM_selectmode_set_multi(), EDBM_selectmode_set_multi_ex(), edbm_selectmode_sync_multi_ex(), EDBM_selectmode_to_scene(), EDBM_selectmode_toggle_multi(), edbm_separate_exec(), edbm_set_normals_from_faces_exec(), edbm_shortest_path_pick_exec(), edbm_shortest_path_select_exec(), edbm_smooth_normals_exec(), edbm_solidify_exec(), edbm_sort_elements_exec(), edbm_spin_exec(), edbm_split_exec(), edbm_subdivide_edge_ring_exec(), edbm_subdivide_exec(), edbm_tris_convert_to_quads_exec(), EDBM_unified_findnearest_from_raycast(), edbm_unsubdivide_exec(), edbm_vert_connect_concave_exec(), edbm_vert_connect_exec(), edbm_vert_connect_nonplaner_exec(), edbm_vert_connect_path_exec(), edbm_vert_or_edge_select_mode_poll(), edbm_wireframe_exec(), edgering_select(), blender::bke::editbmesh_get_eval_cage_from_orig(), blender::ed::transform::editmesh_snapdata_init(), blender::ed::object::editmode_enter_ex(), em_setup_viewcontext(), blender::ed::transform::freeCustomNormalArray(), blender::ed::transform::getTransformOrientation_ex(), blender::ed::transform::gizmo_3d_foreach_selected(), gizmo_mesh_spin_init_refresh(), gizmo_preselect_edgering_test_select(), gizmo_preselect_elem_test_select(), blender::ed::transform::initNormalRotation(), knife_bvh_init(), knife_bvh_raycast_cb(), knife_find_line_hits(), knife_make_cuts(), knife_ray_intersect_face(), knifeproject_exec(), knifetool_finish_single_post(), knifetool_init(), knifetool_invoke(), loopcut_init(), make_prim_finish(), material_slot_assign_exec(), material_slot_de_select(), merge_type_itemf(), mesh_bisect_exec(), mesh_bisect_invoke(), mesh_circle_select(), blender::ed::transform::mesh_customdatacorrect_create_impl(), mesh_data_from_duplicator_object(), blender::ed::transform::mesh_partial_ensure(), blender::ed::transform::mesh_partial_update(), blender::ed::mesh::set_attribute::mesh_set_attribute_exec(), mesh_symmetrize_exec(), mesh_symmetry_snap_exec(), minimize_stretch_exit(), minimize_stretch_iteration(), mouse_mesh_loop(), mouse_mesh_shortest_path_edge(), mouse_mesh_shortest_path_face(), mouse_mesh_shortest_path_vert(), mouse_mesh_uv_shortest_path_edge(), mouse_mesh_uv_shortest_path_face(), mouse_mesh_uv_shortest_path_vert(), normals_split_merge(), point_normals_apply(), point_normals_init(), blender::ed::transform::recalcData_mesh_skin(), reset_exec(), ringsel_find_edge(), select_similar_type_itemf(), shape_itemf(), 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(), smart_project_exec(), snap_curs_to_sel_ex(), snap_sel_to_grid_exec(), snap_selected_to_location_rotation(), sort_bmelem_flag(), blender::ed::transform::special_aftertrans_update__mesh(), sphere_project_exec(), stats_object_edit(), stitch_exit(), stitch_init(), stitch_invoke(), blender::ed::transform::transform_convert_mesh_crazyspace_detect(), blender::ed::transform::transform_mesh_edge_slide_data_create(), blender::ed::transform::transform_mesh_uv_edge_slide_data_create(), blender::ed::transform::transform_mesh_uv_vert_slide_data_create(), blender::ed::transform::transformEnd(), uiTemplateEditModeSelection(), uv_box_select_exec(), uv_circle_select_exec(), uv_copy_exec(), uv_find_nearest_edge(), uv_find_nearest_face_ex(), uv_find_nearest_loop_from_edge(), uv_find_nearest_loop_from_vert(), uv_find_nearest_vert(), uv_from_view_exec(), uv_hide_exec(), uv_map_clip_correct(), uv_mouse_select_loop_generic_multi(), uv_mouse_select_multi(), uv_paste_exec(), uv_pin_exec(), uv_remove_doubles_to_selected(), uv_remove_doubles_to_selected_shared_vertex(), uv_remove_doubles_to_unselected(), uv_reveal_exec(), uv_sculpt_stroke_apply(), uv_sculpt_stroke_init(), uv_select_all_perform(), uv_select_edgeloop(), uv_select_edgering(), uv_select_faceloop(), uv_select_flush_from_tag_face(), uv_select_flush_from_tag_loop(), uv_select_linked_multi(), uv_select_more_less(), uv_select_overlap(), uv_select_pinned_exec(), uv_select_similar_edge_exec(), uv_select_similar_face_exec(), uv_select_similar_island_exec(), uv_select_similar_vert_exec(), uv_select_split_exec(), uv_shortest_path_pick_ex(), uv_shortest_path_pick_exec(), uv_shortest_path_pick_invoke(), uv_shortest_path_select_exec(), uv_snap_selection_exec(), uv_snap_uvs_offset(), uv_snap_uvs_to_adjacent_unselected(), uv_snap_uvs_to_cursor(), uv_snap_uvs_to_pixels(), uv_weld_align(), uvedit_center(), uvedit_ensure_uvs(), uvedit_have_selection_multi(), uvedit_nearest_uv(), uvedit_pack_islands_multi(), uvedit_select_is_any_selected_multi(), uvedit_translate(), uvedit_unwrap(), blender::ed::object::vgroup_do_remap(), blender::ed::object::vgroup_parray_mirror_assign(), blender::ed::object::vgroup_parray_mirror_sync(), blender::ed::object::vgroup_smooth_subset(), view3d_box_select_exec(), view3d_circle_select_exec(), and view3d_lasso_select().
| void BKE_editmesh_lnorspace_update | ( | BMEditMesh * | em | ) |
Definition at line 220 of file editmesh.cc.
References BKE_editmesh_lnorspace_update(), BMEditMesh::bm, and BM_lnorspace_update().
Referenced by BKE_editmesh_lnorspace_update(), BKE_editmesh_vert_coords_when_deformed(), edbm_average_normals_exec(), edbm_normals_tools_exec(), edbm_set_normals_from_faces_exec(), edbm_smooth_normals_exec(), blender::ed::transform::initNormalRotation(), blender::ed::transform::initTransform(), normals_split_merge(), point_normals_init(), and blender::ed::mesh::set_sharpness_by_angle_exec().
| void BKE_editmesh_looptris_and_normals_calc | ( | BMEditMesh * | em | ) |
Performing the face normal calculation at the same time as tessellation gives a reasonable performance boost (approx ~20% faster).
Definition at line 95 of file editmesh.cc.
References BKE_editmesh_looptris_and_normals_calc(), BKE_editmesh_looptris_calc_ex(), BMEditMesh::bm, BM_mesh_normals_update_ex(), BMeshCalcTessellation_Params::face_normals, and BMeshNormalsUpdate_Params::face_normals.
Referenced by BKE_editmesh_looptris_and_normals_calc(), EDBM_update(), blender::ed::object::editmode_enter_ex(), blender::ed::transform::mesh_partial_update(), blender::ed::object::object_hook_index_array(), blender::ed::transform::recalcData_mesh_skin(), blender::ed::geometry::store_result_geometry(), undomesh_to_editmesh(), and blender::ed::object::vertex_parent_set_exec().
| void BKE_editmesh_looptris_and_normals_calc_with_partial | ( | BMEditMesh * | em, |
| BMPartialUpdate * | bmpinfo ) |
Definition at line 122 of file editmesh.cc.
References BKE_editmesh_looptris_and_normals_calc_with_partial(), BKE_editmesh_looptris_calc_with_partial_ex(), BMEditMesh::bm, BM_mesh_normals_update_with_partial_ex(), BMeshCalcTessellation_Params::face_normals, and BMeshNormalsUpdate_Params::face_normals.
Referenced by BKE_editmesh_looptris_and_normals_calc_with_partial(), and editmesh_partial_update_update_fn().
| void BKE_editmesh_looptris_calc | ( | BMEditMesh * | em | ) |
Definition at line 88 of file editmesh.cc.
References BKE_editmesh_looptris_calc(), BKE_editmesh_looptris_calc_ex(), and BMeshCalcTessellation_Params::face_normals.
Referenced by BKE_editmesh_looptris_calc(), blender::ed::transform::createTransEditVerts(), EDBM_redo_state_restore(), EDBM_redo_state_restore_and_free(), and EDBM_update().
| void BKE_editmesh_looptris_calc_ex | ( | BMEditMesh * | em, |
| const BMeshCalcTessellation_Params * | params ) |
Definition at line 81 of file editmesh.cc.
References BKE_editmesh_looptris_calc_ex(), bm, BMEditMesh::bm, BM_mesh_calc_tessellation_ex(), BMEditMesh::looptris, poly_to_tri_count(), Array< T, InlineBufferCapacity, Allocator >::reinitialize(), BMesh::totface, and BMesh::totloop.
Referenced by BKE_editmesh_looptris_and_normals_calc(), BKE_editmesh_looptris_calc(), and BKE_editmesh_looptris_calc_ex().
| void BKE_editmesh_looptris_calc_with_partial | ( | BMEditMesh * | em, |
| BMPartialUpdate * | bmpinfo ) |
Definition at line 115 of file editmesh.cc.
References BKE_editmesh_looptris_calc_with_partial(), BKE_editmesh_looptris_calc_with_partial_ex(), and BMeshCalcTessellation_Params::face_normals.
Referenced by BKE_editmesh_looptris_calc_with_partial().
| void BKE_editmesh_looptris_calc_with_partial_ex | ( | BMEditMesh * | em, |
| BMPartialUpdate * | bmpinfo, | ||
| const BMeshCalcTessellation_Params * | params ) |
Definition at line 105 of file editmesh.cc.
References BKE_editmesh_looptris_calc_with_partial_ex(), BLI_assert, BMEditMesh::bm, BM_mesh_calc_tessellation_with_partial_ex(), Array< T, InlineBufferCapacity, Allocator >::is_empty(), BMEditMesh::looptris, poly_to_tri_count(), Array< T, InlineBufferCapacity, Allocator >::size(), BMesh::totface, and BMesh::totloop.
Referenced by BKE_editmesh_looptris_and_normals_calc_with_partial(), BKE_editmesh_looptris_calc_with_partial(), BKE_editmesh_looptris_calc_with_partial_ex(), and blender::ed::transform::mesh_partial_update().
| blender::Array< blender::float3 > BKE_editmesh_vert_coords_alloc | ( | Depsgraph * | depsgraph, |
| BMEditMesh * | em, | ||
| Scene * | scene, | ||
| Object * | ob ) |
Definition at line 160 of file editmesh.cc.
References BKE_editmesh_vert_coords_alloc(), BKE_mesh_foreach_mapped_vert(), BLI_BITMAP_NEW, BMEditMesh::bm, cage_mapped_verts_callback(), CD_MASK_BAREMESH, data, blender::bke::editbmesh_get_eval_cage(), MEM_freeN(), MESH_FOREACH_NOP, and BMesh::totvert.
Referenced by BKE_editmesh_vert_coords_alloc(), BKE_editmesh_vert_coords_when_deformed(), and knifetool_init_obinfo().
| blender::Array< blender::float3 > BKE_editmesh_vert_coords_alloc_orco | ( | BMEditMesh * | em | ) |
Definition at line 215 of file editmesh.cc.
References BKE_editmesh_vert_coords_alloc_orco(), BMEditMesh::bm, and BM_mesh_vert_coords_alloc().
Referenced by BKE_editmesh_vert_coords_alloc_orco(), and correctivesmooth_modifier_do().
| blender::Span< blender::float3 > BKE_editmesh_vert_coords_when_deformed | ( | Depsgraph * | depsgraph, |
| BMEditMesh * | em, | ||
| Scene * | scene, | ||
| Object * | obedit, | ||
| blender::Array< blender::float3 > & | r_alloc ) |
References BKE_editmesh_lnorspace_update(), and BKE_editmesh_vert_coords_when_deformed().
Referenced by BKE_editmesh_vert_coords_when_deformed(), BKE_editmesh_vert_coords_when_deformed(), blender::ed::transform::calcEdgeSlide_mval_range(), gizmo_preselect_edgering_test_select(), and ringsel_find_edge().