|
Blender V4.3
|
Go to the source code of this file.
Classes | |
| struct | EDBMUpdate_Params |
| struct | MirrTopoStore_t |
| struct | BMBackup |
Macros | |
| #define | ED_MESH_PICK_DEFAULT_VERT_DIST 25 |
| #define | ED_MESH_PICK_DEFAULT_FACE_DIST 1 |
| #define | USE_LOOPSLIDE_HACK |
Enumerations | |
| enum | eEditMesh_PreSelPreviewAction { PRESELECT_ACTION_TRANSFORM = 1 , PRESELECT_ACTION_CREATE = 2 , PRESELECT_ACTION_DELETE = 3 } |
| #define ED_MESH_PICK_DEFAULT_FACE_DIST 1 |
Definition at line 583 of file ED_mesh.hh.
Referenced by paintface_mouse_select(), paintface_select_linked(), paintface_select_loop(), weight_sample_group_invoke(), and weight_sample_invoke().
| #define ED_MESH_PICK_DEFAULT_VERT_DIST 25 |
Definition at line 582 of file ED_mesh.hh.
Referenced by ed_wpaint_vertex_select_pick(), paintvert_select_linked_pick(), weight_sample_group_invoke(), and weight_sample_invoke().
| #define USE_LOOPSLIDE_HACK |
Definition at line 585 of file ED_mesh.hh.
| Enumerator | |
|---|---|
| PRESELECT_ACTION_TRANSFORM | |
| PRESELECT_ACTION_CREATE | |
| PRESELECT_ACTION_DELETE | |
Definition at line 345 of file ED_mesh.hh.
| UvElement * BM_uv_element_get | ( | const UvElementMap * | element_map, |
| const BMLoop * | l ) |
Return the UvElement associated with a given BMLoop, or NULL if no association exists.
| element_map | The UvElementMap to look in. |
| l | The loop to search for. |
Definition at line 1187 of file editmesh_utils.cc.
References BM_elem_index_get, element, l, UvElement::next, BMLoop::v, and UvElementMap::vertex.
Referenced by bm_uv_edge_select_build_islands(), createTransUVs(), iso_index_for_loop(), relaxation_iteration_uv(), stitch_init(), stitch_process_data(), stitch_select(), stitch_uv_edge_generate_linked_edges(), uv_edge_get(), uv_element_offset_from_face_get(), uv_isolate_selected_islands(), and uv_sculpt_stroke_init().
| UvElement * BM_uv_element_get_head | ( | UvElementMap * | element_map, |
| UvElement * | child ) |
Definition at line 1200 of file editmesh_utils.cc.
References BM_elem_index_get, UvElement::l, BMLoop::v, and UvElementMap::vertex.
Referenced by determine_uv_stitchability(), stitch_island_calculate_vert_rotation(), stitch_select_uv(), stitch_uv_edge_generate_linked_edges(), and stitch_validate_uv_stitchability().
| int BM_uv_element_get_unique_index | ( | UvElementMap * | element_map, |
| UvElement * | child ) |
Definition at line 607 of file editmesh_utils.cc.
References BLI_assert, BM_uv_element_map_ensure_unique_index(), and UvElementMap::storage.
Referenced by iso_index_for_loop().
| UvElementMap * BM_uv_element_map_create | ( | BMesh * | bm, |
| const Scene * | scene, | ||
| bool | uv_selected, | ||
| bool | use_winding, | ||
| bool | use_seams, | ||
| bool | do_islands ) |
A specialized vert map used by stitch operator.
Definition at line 968 of file editmesh_utils.cc.
References BLI_gset_free(), BLI_gset_ptr_new(), bm, BM_ELEM_CD_GET_FLOAT_P, BM_ELEM_CD_GET_VOID_P, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_elem_index_get, BM_ELEM_SELECT, BM_FACE, BM_face_calc_area_uv_signed(), BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_ELEM_INDEX, BM_ITER_MESH, BM_ITER_MESH_INDEX, BM_LOOPS_OF_FACE, BM_mesh_elem_index_ensure(), bm_uv_build_islands(), BM_uv_map_get_offsets(), BM_VERT, BM_VERTS_OF_MESH, compare_v2v2(), BMLoop::f, INVALID_ISLAND, UvElement::island, l, UvElement::l, BMFace::len, UvElement::loop_of_face_index, MEM_callocN, MEM_SAFE_FREE, next, UvElement::next, seam_connected(), UvElement::separate, STD_UV_CONNECT_LIMIT, UvElementMap::storage, UvElementMap::total_unique_uvs, UvElementMap::total_uvs, BMesh::totface, BMesh::totvert, BMUVOffsets::uv, UV_SYNC_SELECTION, uvedit_uv_select_test(), BMLoop::v, v, and UvElementMap::vertex.
Referenced by createTransUVs(), stitch_init(), uv_copy_exec(), uv_isolate_selected_islands(), uv_paste_exec(), uv_sculpt_stroke_init(), and uvedit_uv_straighten().
| UvElement ** BM_uv_element_map_ensure_head_table | ( | UvElementMap * | element_map | ) |
Definition at line 552 of file editmesh_utils.cc.
References UvElementMap::head_table, MEM_mallocN, UvElement::next, UvElement::separate, UvElementMap::storage, and UvElementMap::total_uvs.
Referenced by bm_uv_edge_select_build_islands(), and relaxation_iteration_uv().
| int * BM_uv_element_map_ensure_unique_index | ( | UvElementMap * | element_map | ) |
Definition at line 578 of file editmesh_utils.cc.
References BLI_assert, MEM_callocN, UvElementMap::storage, UvElementMap::total_unique_uvs, UvElementMap::total_uvs, and UvElementMap::unique_index_table.
Referenced by BM_uv_element_get_unique_index().
| void BM_uv_element_map_free | ( | UvElementMap * | element_map | ) |
Definition at line 1173 of file editmesh_utils.cc.
References UvElementMap::head_table, UvElementMap::island_indices, UvElementMap::island_total_unique_uvs, UvElementMap::island_total_uvs, MEM_SAFE_FREE, UvElementMap::storage, UvElementMap::unique_index_table, and UvElementMap::vertex.
Referenced by createTransUVs(), state_delete(), uv_copy_exec(), uv_isolate_selected_islands(), uv_paste_exec(), uv_sculpt_stroke_exit(), and uvedit_uv_straighten().
Definition at line 547 of file editmesh_utils.cc.
References v, and UvVertMap::vert.
Referenced by uv_select_flush_from_tag_sticky_loc_internal(), and uv_select_linked_multi().
Return a new UvVertMap from the edit-mesh.
Definition at line 439 of file editmesh_utils.cc.
References BKE_mesh_uv_vert_map_free(), bm, BM_ELEM_CD_GET_FLOAT_P, BM_elem_flag_test, BM_elem_index_get, BM_ELEM_SELECT, BM_FACE, BM_face_at_index(), BM_FACES_OF_MESH, BM_iter_at_index(), BM_ITER_ELEM_INDEX, BM_ITER_MESH, BM_ITER_MESH_INDEX, BM_LOOPS_OF_FACE, BM_mesh_elem_index_ensure(), BM_VERT, BM_VERTS_OF_MESH, UvVertMap::buf, CD_PROP_FLOAT2, compare_v2v2(), CustomData_get_offset(), UvMapVert::face_index, l, BMesh::ldata, BMFace::len, UvMapVert::loop_of_face_index, MEM_callocN, next, UvMapVert::next, UvMapVert::separate, STD_UV_CONNECT_LIMIT, BMesh::totvert, BMLoop::v, v, and UvVertMap::vert.
Referenced by uv_select_flush_from_loop_edge_flag(), uv_select_flush_from_tag_face(), uv_select_flush_from_tag_loop(), and uv_select_linked_multi().
| void BM_uv_vert_map_free | ( | UvVertMap * | vmap | ) |
Definition at line 1160 of file editmesh_utils.cc.
References UvVertMap::buf, MEM_freeN(), and UvVertMap::vert.
Referenced by uv_select_flush_from_loop_edge_flag(), uv_select_flush_from_tag_face(), uv_select_flush_from_tag_loop(), and uv_select_linked_multi().
| bool BMBVH_EdgeVisible | ( | const BMBVHTree * | tree, |
| const BMEdge * | e, | ||
| const Depsgraph * | depsgraph, | ||
| const ARegion * | region, | ||
| const View3D * | v3d, | ||
| const Object * | obedit ) |
Definition at line 1846 of file editmesh_utils.cc.
References add_v3_v3v3(), BMVert::co, copy_v3_v3(), depsgraph, e, ED_view3d_win_to_segment_clipped(), edge_ray_cast(), invert_m4_m4(), mid_v3_v3v3(), mul_m4_v3(), normalize_v3(), normalize_v3_length(), scale_point(), sub_v3_v3v3(), and tree.
Referenced by is_vert_slide_visible_bmesh().
| void ED_keymap_mesh | ( | wmKeyConfig * | keyconf | ) |
Note mesh keymap also for other space?
Definition at line 362 of file mesh_ops.cc.
References bevel_modal_keymap(), ED_operator_editmesh(), knifetool_modal_keymap(), point_normals_modal_keymap(), wmKeyMap::poll, RGN_TYPE_WINDOW, SPACE_EMPTY, and WM_keymap_ensure().
Referenced by ED_spacetypes_keymap().
| MDeformVert * ED_mesh_active_dvert_get_em | ( | Object * | ob, |
| BMVert ** | r_eve ) |
Definition at line 1408 of file meshtools.cc.
References BLI_listbase_is_empty(), bm, BM_ELEM_CD_GET_VOID_P, BM_mesh_active_vert_get(), CD_MDEFORMVERT, CustomData_get_offset(), Object::data, Object::mode, OB_MESH, OB_MODE_EDIT, Object::type, and BMesh::vdata.
Referenced by ED_mesh_active_dvert_get_only(), blender::ed::object::vgroup_copy_active_to_sel(), blender::ed::object::vgroup_copy_active_to_sel_single(), blender::ed::object::vgroup_normalize_active_vertex(), and blender::ed::object::vgroup_vert_active_mirror().
| MDeformVert * ED_mesh_active_dvert_get_ob | ( | Object * | ob, |
| int * | r_index ) |
Definition at line 1435 of file meshtools.cc.
References BKE_mesh_mselect_active_get(), Object::data, and ME_VSEL.
Referenced by ED_mesh_active_dvert_get_only(), blender::ed::object::vgroup_copy_active_to_sel(), blender::ed::object::vgroup_copy_active_to_sel_single(), blender::ed::object::vgroup_normalize_active_vertex(), and blender::ed::object::vgroup_vert_active_mirror().
| MDeformVert * ED_mesh_active_dvert_get_only | ( | Object * | ob | ) |
Definition at line 1449 of file meshtools.cc.
References ED_mesh_active_dvert_get_em(), ED_mesh_active_dvert_get_ob(), Object::mode, OB_MESH, OB_MODE_EDIT, and Object::type.
Referenced by update_active_vertex_weight(), blender::ed::object::vgroup_remove_weight(), view3d_panel_vgroup(), and view3d_panel_vgroup_poll().
| int ED_mesh_color_add | ( | Mesh * | mesh, |
| const char * | name, | ||
| bool | active_set, | ||
| bool | do_init, | ||
| ReportList * | reports ) |
Definition at line 381 of file mesh_data.cc.
References BKE_attribute_new(), BKE_id_attributes_active_color_set(), BKE_id_attributes_color_find(), bm, BM_data_layer_copy(), BM_LOOP, CD_PROP_BYTE_COLOR, CustomData_get_elem_size(), CustomData_get_named_layer(), DEG_id_tag_update(), AttributeOwner::from_id(), BMesh::ldata, mesh_customdata_get_type(), NC_GEOM, ND_DATA, and WM_main_add_notifier().
Referenced by output_toggle_exec().
| bool ED_mesh_color_ensure | ( | Mesh * | mesh, |
| const char * | name ) |
Definition at line 423 of file mesh_data.cc.
References BKE_attribute_calc_unique_name(), BKE_color_attribute_supported(), BKE_id_attributes_active_color_set(), BKE_id_attributes_default_color_set(), BKE_mesh_tessface_clear(), BLI_assert, CD_PROP_BYTE_COLOR, DEG_id_tag_update(), AttributeOwner::from_id(), and unique_name().
Referenced by blender::ed::sculpt_paint::vwpaint::mode_enter_generic(), vertex_color_brightness_contrast_exec(), vertex_color_hsv_exec(), vertex_color_invert_exec(), vertex_color_levels_exec(), vertex_color_smooth(), vertex_paint_from_weight(), and vpaint_stroke_test_start().
Returns the pinned mesh, the mesh from the pinned object, or the mesh from the active object.
Definition at line 1127 of file mesh_data.cc.
References blender::ed::object::context_active_object(), CTX_data_pointer_get_type(), data, Object::data, PointerRNA::data, GS, ID_ME, and mesh.
Referenced by ED_operator_editable_mesh(), blender::ed::mesh::mesh_active_attribute_poll(), mesh_customdata_clear_exec__internal(), mesh_customdata_custom_splitnormals_add_exec(), mesh_customdata_custom_splitnormals_clear_exec(), blender::ed::mesh::set_attribute::mesh_set_attribute_exec(), blender::ed::mesh::set_attribute::mesh_set_attribute_invoke(), and blender::ed::mesh::set_attribute::mesh_set_attribute_ui().
| void ED_mesh_edges_add | ( | Mesh * | mesh, |
| ReportList * | reports, | ||
| int | count ) |
Definition at line 949 of file mesh_data.cc.
References BKE_report(), count, mesh_add_edges(), and RPT_ERROR.
| void ED_mesh_edges_remove | ( | Mesh * | mesh, |
| ReportList * | reports, | ||
| int | count ) |
Definition at line 1040 of file mesh_data.cc.
References BKE_report(), count, mesh_remove_edges(), and RPT_ERROR.
| void ED_mesh_faces_add | ( | Mesh * | mesh, |
| ReportList * | reports, | ||
| int | count ) |
Definition at line 967 of file mesh_data.cc.
References BKE_report(), count, mesh_add_faces(), and RPT_ERROR.
| void ED_mesh_faces_remove | ( | Mesh * | mesh, |
| ReportList * | reports, | ||
| int | count ) |
Definition at line 1068 of file mesh_data.cc.
References BKE_report(), count, mesh_remove_faces(), and RPT_ERROR.
| void ED_mesh_geometry_clear | ( | Mesh * | mesh | ) |
Definition at line 1082 of file mesh_data.cc.
References mesh_remove_edges(), mesh_remove_faces(), mesh_remove_loops(), and mesh_remove_verts().
Referenced by mesh_separate_loose().
Definition at line 1120 of file mesh_data.cc.
References BKE_keyblock_find_by_index(), BLI_assert, Mesh::key, and Mesh::runtime.
Referenced by blender::ed::object::shape_key_report_if_locked().
| int ED_mesh_join_objects_exec | ( | bContext * | C, |
| wmOperator * | op ) |
Definition at line 318 of file meshtools.cc.
References b, blender::ed::object::base_free_and_unlink(), BKE_id_copy(), BKE_id_free_ex(), BKE_key_add(), BKE_key_sort(), BKE_keyblock_add(), BKE_keyblock_copy_settings(), BKE_keyblock_find_name(), BKE_mesh_clear_geometry(), BKE_mesh_from_object(), BKE_object_apply_mat4_ex(), BKE_object_defgroup_find_name(), BKE_object_free_derived_caches(), BKE_object_material_get(), BKE_objects_materials_test_all(), BKE_report(), BKE_reportf(), BLI_addtail(), BLI_assert, BLI_findindex(), BLI_listbase_is_empty(), Key::block, CD_CONSTRUCT, CD_PROP_FLOAT3, CD_PROP_INT32, CD_PROP_INT32_2D, CD_SET_DEFAULT, CTX_data_active_object(), CTX_DATA_BEGIN, CTX_DATA_END, CTX_data_ensure_evaluated_depsgraph(), CTX_data_main(), CTX_data_scene(), CustomData_add_layer_named(), CustomData_reset(), KeyBlock::data, Object::data, DEG_id_tag_update(), DEG_relations_tag_update(), depsgraph, ELEM, Key::id, Object::id, ID_RECALC_GEOMETRY, ID_RECALC_SELECT, ID_RECALC_TRANSFORM, id_us_min(), id_us_plus(), blender::implicit_sharing::info_for_mem_free(), invert_m4_m4_safe_ortho(), join_mesh_single(), KEY_RELATIVE, LIB_ID_FREE_NO_UI_USER, LIKELY, LISTBASE_FOREACH, LISTBASE_FOREACH_INDEX, Object::mat, Object::matbits, MAXMAT, MEM_callocN, MEM_freeN(), MEM_malloc_arrayN, MEM_mallocN, MEM_SAFE_FREE, mesh, mesh_join_offset_face_sets_ID(), MESH_MAX_VERTS, Object::mode, Node::name, NC_SCENE, ND_LAYER_CONTENT, ND_OB_ACTIVE, OB_MESH, OB_MODE_EDIT, OPERATOR_CANCELLED, OPERATOR_FINISHED, Object::parent, Object::parentinv, KeyBlock::relative, wmOperator::reports, RPT_WARNING, Object::totcol, KeyBlock::totelem, Key::totkey, Key::type, Object::type, Mesh::vertex_group_names, Mesh::verts_num, and WM_event_add_notifier().
Referenced by blender::ed::object::object_join_exec().
| void ED_mesh_loops_add | ( | Mesh * | mesh, |
| ReportList * | reports, | ||
| int | count ) |
Definition at line 958 of file mesh_data.cc.
References BKE_report(), count, mesh_add_loops(), and RPT_ERROR.
| void ED_mesh_loops_remove | ( | Mesh * | mesh, |
| ReportList * | reports, | ||
| int | count ) |
Definition at line 1054 of file mesh_data.cc.
References BKE_report(), count, mesh_remove_loops(), and RPT_ERROR.
Wrapper for object-mode/edit-mode.
call BM_mesh_elem_table_ensure first for edit-mesh.
Definition at line 971 of file meshtools.cc.
References BM_elem_index_get, BM_vert_at_index(), BMVert::co, Object::data, editbmesh_get_x_mirror_vert(), ME_EDIT_MIRROR_TOPO, and mesh_get_x_mirror_vert().
Referenced by blender::ed::object::vgroup_parray_mirror_assign(), and blender::ed::object::vgroup_parray_mirror_sync().
| void ED_mesh_mirror_spatial_table_begin | ( | Object * | ob, |
| BMEditMesh * | em, | ||
| Mesh * | mesh_eval ) |
Definition at line 33 of file editors/mesh/mesh_mirror.cc.
References BMEditMesh::bm, BM_ITER_MESH_INDEX, BM_mesh_elem_table_ensure(), BM_VERT, BM_VERTS_OF_MESH, BMVert::co, Object::data, ED_mesh_mirror_spatial_table_end(), MirrKdStore, BMesh::totvert, and Mesh::verts_num.
Referenced by ED_mesh_mirror_spatial_table_lookup(), mesh_get_x_mirror_faces(), and blender::ed::object::object_shape_key_mirror().
| void ED_mesh_mirror_spatial_table_end | ( | Object * | ob | ) |
Definition at line 92 of file editors/mesh/mesh_mirror.cc.
References MirrKdStore.
Referenced by add_verts_to_dgroups(), ED_editors_exit(), ED_mesh_mirror_spatial_table_begin(), EDBM_mesh_free_data(), blender::ed::object::editmode_load_free_ex(), mesh_get_x_mirror_faces(), blender::ed::sculpt_paint::vwpaint::mode_enter_generic(), blender::ed::sculpt_paint::vwpaint::mode_exit_generic(), blender::ed::object::object_shape_key_mirror(), and special_aftertrans_update__mesh().
| int ED_mesh_mirror_spatial_table_lookup | ( | Object * | ob, |
| BMEditMesh * | em, | ||
| Mesh * | mesh_eval, | ||
| const float | co[3] ) |
Definition at line 70 of file editors/mesh/mesh_mirror.cc.
References ED_mesh_mirror_spatial_table_begin(), KD_THRESH, and MirrKdStore.
Referenced by editbmesh_get_x_mirror_vert_spatial(), and mesh_get_x_mirror_vert_spatial().
Mode is 's' start, or 'e' end, or 'u' use if end, ob can be NULL.
Definition at line 848 of file meshtools.cc.
References ED_mesh_mirrtopo_init(), mesh_mirror_topo_table_get_meshes(), and mesh_topo_store.
Referenced by ed_mesh_mirror_topo_table_update().
| void ED_mesh_mirror_topo_table_end | ( | Object * | ob | ) |
Definition at line 857 of file meshtools.cc.
References ED_mesh_mirrtopo_free(), and mesh_topo_store.
Referenced by ED_editors_exit(), EDBM_mesh_free_data(), blender::ed::object::editmode_load_free_ex(), and blender::ed::sculpt_paint::vwpaint::mode_exit_generic().
| void ED_mesh_mirrtopo_free | ( | MirrTopoStore_t * | mesh_topo_store | ) |
Definition at line 348 of file editors/mesh/mesh_mirror.cc.
References MirrTopoStore_t::index_lookup, MEM_SAFE_FREE, mesh_topo_store, MirrTopoStore_t::prev_edge_tot, and MirrTopoStore_t::prev_vert_tot.
Referenced by ED_mesh_mirror_topo_table_end(), ED_mesh_mirrtopo_init(), and EDBM_verts_mirror_cache_begin_ex().
| void ED_mesh_mirrtopo_init | ( | BMEditMesh * | em, |
| Mesh * | mesh, | ||
| MirrTopoStore_t * | mesh_topo_store, | ||
| bool | skip_em_vert_array_init ) |
Definition at line 160 of file editors/mesh/mesh_mirror.cc.
References BLI_assert, BMEditMesh::bm, BM_EDGES_OF_MESH, BM_elem_index_get, BM_ITER_MESH, BM_mesh_elem_index_ensure(), BM_mesh_elem_table_ensure(), BM_VERT, ED_mesh_mirrtopo_free(), hash, MirrTopoVert_t::hash, MirrTopoStore_t::index_lookup, MEM_callocN, MEM_dupallocN, MEM_freeN(), MEM_mallocN, mesh_topo_store, mirrtopo_hash_sort(), mirrtopo_vert_sort(), MirrTopoStore_t::prev_edge_tot, MirrTopoStore_t::prev_is_editmode, MirrTopoStore_t::prev_vert_tot, BMesh::totedge, BMesh::totvert, BMEdge::v1, BMEdge::v2, MirrTopoVert_t::v_index, and BMesh::vtable.
Referenced by ED_mesh_mirror_topo_table_begin(), and EDBM_verts_mirror_cache_begin_ex().
| bool ED_mesh_mirrtopo_recalc_check | ( | BMEditMesh * | em, |
| Mesh * | mesh, | ||
| MirrTopoStore_t * | mesh_topo_store ) |
Definition at line 136 of file editors/mesh/mesh_mirror.cc.
References BMEditMesh::bm, MirrTopoStore_t::index_lookup, mesh_topo_store, MirrTopoStore_t::prev_edge_tot, MirrTopoStore_t::prev_is_editmode, MirrTopoStore_t::prev_vert_tot, BMesh::totedge, and BMesh::totvert.
Referenced by ed_mesh_mirror_topo_table_update().
| bool ED_mesh_pick_face | ( | bContext * | C, |
| Object * | ob, | ||
| const int | mval[2], | ||
| uint | dist_px, | ||
| uint * | r_index ) |
Face selection in object mode, currently only weight-paint and vertex-paint use this.
Definition at line 1166 of file meshtools.cc.
References BLI_assert, CTX_data_ensure_evaluated_depsgraph(), Object::data, depsgraph, ViewContext::depsgraph, DRW_select_buffer_find_nearest_to_point(), DRW_select_buffer_sample_point(), ED_view3d_select_id_validate(), ED_view3d_viewcontext_init(), GS, ID_ME, ViewContext::region, and ViewContext::v3d.
Referenced by ED_mesh_pick_face_vert(), paintface_mouse_select(), paintface_select_linked(), paintface_select_loop(), weight_sample_group_invoke(), and weight_sample_invoke().
| bool ED_mesh_pick_face_vert | ( | bContext * | C, |
| Object * | ob, | ||
| const int | mval[2], | ||
| uint | dist_px, | ||
| uint * | r_index ) |
Use when the back buffer stores face index values. but we want a vert. This gets the face then finds the closest vertex to mval.
Definition at line 1226 of file meshtools.cc.
References BKE_object_get_evaluated_mesh(), BLI_assert, CD_ORIGINDEX, CTX_data_ensure_evaluated_depsgraph(), CTX_wm_region(), CustomData_get_layer(), blender::Span< T >::data(), Object::data, DEG_get_evaluated_object(), depsgraph, ED_mesh_pick_face(), ed_mesh_pick_face_vert__mpoly_find(), Mesh::face_data, float, FLT_MAX, GS, ID_ME, ORIGINDEX_NONE, and Mesh::vert_data.
Referenced by weight_sample_invoke().
| bool ED_mesh_pick_vert | ( | bContext * | C, |
| Object * | ob, | ||
| const int | mval[2], | ||
| uint | dist_px, | ||
| bool | use_zbuf, | ||
| uint * | r_index ) |
Definition at line 1336 of file meshtools.cc.
References BKE_mesh_foreach_mapped_vert(), BKE_object_get_evaluated_mesh(), BLI_assert, CTX_data_ensure_evaluated_depsgraph(), Object::data, DEG_get_evaluated_object(), depsgraph, ViewContext::depsgraph, DRW_select_buffer_find_nearest_to_point(), DRW_select_buffer_sample_point(), ed_mesh_pick_vert__mapFunc(), ED_view3d_init_mats_rv3d(), ED_view3d_select_id_validate(), ED_view3d_viewcontext_init(), float, FLT_MAX, GS, ID_ME, blender::bke::AttributeAccessor::lookup(), MESH_FOREACH_NOP, ViewContext::region, and ViewContext::v3d.
Referenced by ed_wpaint_vertex_select_pick(), paintvert_select_linked_pick(), weight_sample_group_invoke(), and weight_sample_invoke().
| void ED_mesh_report_mirror | ( | wmOperator * | op, |
| int | totmirr, | ||
| int | totfail ) |
Definition at line 1115 of file mesh_data.cc.
References ED_mesh_report_mirror_ex(), and SCE_SELECT_VERTEX.
Referenced by blender::ed::object::shape_key_mirror_exec(), and blender::ed::object::vertex_group_mirror_exec().
| void ED_mesh_report_mirror_ex | ( | wmOperator * | op, |
| int | totmirr, | ||
| int | totfail, | ||
| char | selectmode ) |
Definition at line 1092 of file mesh_data.cc.
References BKE_reportf(), wmOperator::reports, RPT_INFO, RPT_WARNING, SCE_SELECT_EDGE, and SCE_SELECT_VERTEX.
Referenced by ED_mesh_report_mirror(), and edbm_select_mirror_exec().
| int ED_mesh_shapes_join_objects_exec | ( | bContext * | C, |
| wmOperator * | op ) |
Definition at line 731 of file meshtools.cc.
References BKE_key_add(), BKE_keyblock_add(), BKE_keyblock_convert_from_mesh(), BKE_report(), CD_MASK_BAREMESH, CTX_data_active_object(), CTX_DATA_BEGIN, CTX_DATA_END, CTX_data_ensure_evaluated_depsgraph(), CTX_data_main(), CTX_data_scene(), Object::data, DEG_get_evaluated_object(), DEG_get_evaluated_scene(), DEG_id_tag_update(), depsgraph, Key::id, ID_RECALC_SELECT, KEY_RELATIVE, blender::bke::mesh_eval_to_meshkey(), blender::bke::mesh_get_eval_deform(), ID::name, NC_SCENE, ND_OB_ACTIVE, OB_MESH, OPERATOR_CANCELLED, OPERATOR_FINISHED, wmOperator::reports, RPT_WARNING, Key::type, Mesh::verts_num, and WM_event_add_notifier().
Referenced by blender::ed::object::join_shapes_exec().
| void ED_mesh_split_faces | ( | Mesh * | mesh | ) |
Split all edges that would appear sharp based on face and edge sharpness tags and the auto smooth angle.
Definition at line 1147 of file mesh_data.cc.
References blender::VArrayCommon< T >::materialize().
Referenced by blender::ed::object::bake_mesh_new_from_object().
| void ED_mesh_undosys_type | ( | UndoType * | ut | ) |
Export for ED_undo_sys.
Definition at line 1062 of file editmesh_undo.cc.
References UndoType::flags, mesh_undosys_foreach_ID_ref(), mesh_undosys_poll(), mesh_undosys_step_decode(), mesh_undosys_step_encode(), mesh_undosys_step_free(), UndoType::name, UndoType::poll, UndoType::step_decode, UndoType::step_encode, UndoType::step_foreach_ID_ref, UndoType::step_free, UndoType::step_size, and UNDOTYPE_FLAG_NEED_CONTEXT_FOR_ENCODE.
Referenced by ED_undosys_type_init().
| int ED_mesh_uv_add | ( | Mesh * | mesh, |
| const char * | name, | ||
| bool | active_set, | ||
| bool | do_init, | ||
| ReportList * | reports ) |
Definition at line 221 of file mesh_data.cc.
References BKE_attribute_calc_unique_name(), BKE_reportf(), BM_data_layer_add_named(), BM_data_layer_copy(), BM_uv_map_ensure_select_and_pin_attrs(), CD_PROP_FLOAT2, CD_SET_DEFAULT, CustomData_add_layer_named(), CustomData_add_layer_named_with_data(), CustomData_get_active_layer(), CustomData_get_layer(), CustomData_has_layer(), CustomData_number_of_layers(), CustomData_set_layer_active(), DATA_, DEG_id_tag_update(), ED_mesh_uv_loop_reset_ex(), AttributeOwner::from_id(), MAX_MTFACE, MEM_dupallocN, NC_GEOM, ND_DATA, RPT_WARNING, unique_name(), and WM_main_add_notifier().
Referenced by ED_mesh_uv_ensure(), ED_uvedit_ensure_uvs(), and mesh_uv_texture_add_exec().
| void ED_mesh_uv_ensure | ( | Mesh * | mesh, |
| const char * | name ) |
Definition at line 363 of file mesh_data.cc.
References CD_PROP_FLOAT2, CustomData_number_of_layers(), and ED_mesh_uv_add().
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(), and ED_uvedit_add_simple_uvs().
Definition at line 211 of file mesh_data.cc.
References BM_LOOP, CD_PROP_FLOAT2, CustomData_get_active_layer(), ED_mesh_uv_loop_reset_ex(), mesh_customdata_get_type(), NC_GEOM, ND_DATA, and WM_event_add_notifier().
Referenced by reset_exec().
Without a bContext, called when UV-editing.
Definition at line 176 of file mesh_data.cc.
References BLI_assert, BM_elem_flag_test, BM_ELEM_SELECT, BM_FACES_OF_MESH, BM_ITER_MESH, CD_PROP_FLOAT2, CustomData_get_layer_n_for_write(), CustomData_get_n_offset(), CustomData_has_layer(), DEG_id_tag_update(), blender::offset_indices::OffsetIndices< T >::index_range(), mesh_uv_reset_bmface(), and mesh_uv_reset_mface().
Referenced by ED_mesh_uv_add(), and ED_mesh_uv_loop_reset().
Definition at line 348 of file mesh_data.cc.
References BKE_uv_map_edge_select_name_get(), CD_PROP_FLOAT2, CustomData_get_layer_name(), ensure_corner_boolean_attribute(), and MAX_CUSTOMDATA_LAYER_NAME.
Definition at line 309 of file mesh_data.cc.
References BKE_uv_map_edge_select_name_get(), CD_PROP_FLOAT2, CustomData_get_layer_name(), MAX_CUSTOMDATA_LAYER_NAME, and mesh_loop_boolean_custom_data_get_by_name().
Definition at line 355 of file mesh_data.cc.
References BKE_uv_map_pin_name_get(), CD_PROP_FLOAT2, CustomData_get_layer_name(), ensure_corner_boolean_attribute(), and MAX_CUSTOMDATA_LAYER_NAME.
Definition at line 321 of file mesh_data.cc.
References BKE_uv_map_pin_name_get(), CD_PROP_FLOAT2, CustomData_get_layer_name(), MAX_CUSTOMDATA_LAYER_NAME, and mesh_loop_boolean_custom_data_get_by_name().
Definition at line 341 of file mesh_data.cc.
References BKE_uv_map_vert_select_name_get(), CD_PROP_FLOAT2, CustomData_get_layer_name(), ensure_corner_boolean_attribute(), and MAX_CUSTOMDATA_LAYER_NAME.
Definition at line 301 of file mesh_data.cc.
References BKE_uv_map_vert_select_name_get(), CD_PROP_FLOAT2, CustomData_get_layer_name(), MAX_CUSTOMDATA_LAYER_NAME, and mesh_loop_boolean_custom_data_get_by_name().
| void ED_mesh_verts_add | ( | Mesh * | mesh, |
| ReportList * | reports, | ||
| int | count ) |
Definition at line 940 of file mesh_data.cc.
References BKE_report(), count, mesh_add_verts(), and RPT_ERROR.
| void ED_mesh_verts_remove | ( | Mesh * | mesh, |
| ReportList * | reports, | ||
| int | count ) |
Definition at line 1026 of file mesh_data.cc.
References BKE_report(), count, mesh_remove_verts(), and RPT_ERROR.
| void ED_operatormacros_mesh | ( | ) |
Definition at line 211 of file mesh_ops.cc.
References OPTYPE_REGISTER, OPTYPE_UNDO, ot, wmOperatorTypeMacro::ptr, RNA_boolean_set(), WM_operatortype_append_macro(), and WM_operatortype_macro_define().
Referenced by ED_spacemacros_init().
| void ED_operatortypes_mesh | ( | ) |
Definition at line 23 of file mesh_ops.cc.
References MESH_OT_attribute_set(), MESH_OT_average_normals(), MESH_OT_beautify_fill(), MESH_OT_bevel(), MESH_OT_bisect(), MESH_OT_blend_from_shape(), MESH_OT_bridge_edge_loops(), MESH_OT_colors_reverse(), MESH_OT_colors_rotate(), MESH_OT_convex_hull(), MESH_OT_customdata_custom_splitnormals_add(), MESH_OT_customdata_custom_splitnormals_clear(), MESH_OT_customdata_mask_clear(), MESH_OT_customdata_skin_add(), MESH_OT_customdata_skin_clear(), MESH_OT_decimate(), MESH_OT_delete(), MESH_OT_delete_edgeloop(), MESH_OT_delete_loose(), MESH_OT_dissolve_degenerate(), MESH_OT_dissolve_edges(), MESH_OT_dissolve_faces(), MESH_OT_dissolve_limited(), MESH_OT_dissolve_mode(), MESH_OT_dissolve_verts(), MESH_OT_dupli_extrude_cursor(), MESH_OT_duplicate(), MESH_OT_edge_collapse(), MESH_OT_edge_face_add(), MESH_OT_edge_rotate(), MESH_OT_edge_split(), MESH_OT_edgering_select(), MESH_OT_edges_select_sharp(), MESH_OT_extrude_context(), MESH_OT_extrude_edges_indiv(), MESH_OT_extrude_faces_indiv(), MESH_OT_extrude_region(), MESH_OT_extrude_repeat(), MESH_OT_extrude_verts_indiv(), MESH_OT_face_make_planar(), MESH_OT_face_set_extract(), MESH_OT_face_split_by_edges(), MESH_OT_faces_select_linked_flat(), MESH_OT_faces_shade_flat(), MESH_OT_faces_shade_smooth(), MESH_OT_fill(), MESH_OT_fill_grid(), MESH_OT_fill_holes(), MESH_OT_flip_normals(), MESH_OT_flip_quad_tessellation(), MESH_OT_hide(), MESH_OT_inset(), MESH_OT_intersect(), MESH_OT_intersect_boolean(), MESH_OT_knife_project(), MESH_OT_knife_tool(), MESH_OT_loop_multi_select(), MESH_OT_loop_select(), MESH_OT_loop_to_region(), MESH_OT_loopcut(), MESH_OT_mark_seam(), MESH_OT_mark_sharp(), MESH_OT_merge(), MESH_OT_merge_normals(), MESH_OT_mod_weighted_strength(), MESH_OT_normals_make_consistent(), MESH_OT_normals_tools(), MESH_OT_offset_edge_loops(), MESH_OT_paint_mask_extract(), MESH_OT_paint_mask_slice(), MESH_OT_point_normals(), MESH_OT_poke(), MESH_OT_polybuild_delete_at_cursor(), MESH_OT_polybuild_dissolve_at_cursor(), MESH_OT_polybuild_face_at_cursor(), MESH_OT_polybuild_split_at_cursor(), MESH_OT_polybuild_transform_at_cursor(), MESH_OT_primitive_circle_add(), MESH_OT_primitive_cone_add(), MESH_OT_primitive_cube_add(), MESH_OT_primitive_cube_add_gizmo(), MESH_OT_primitive_cylinder_add(), MESH_OT_primitive_grid_add(), MESH_OT_primitive_ico_sphere_add(), MESH_OT_primitive_monkey_add(), MESH_OT_primitive_plane_add(), MESH_OT_primitive_uv_sphere_add(), MESH_OT_quads_convert_to_tris(), MESH_OT_region_to_loop(), MESH_OT_remove_doubles(), MESH_OT_reveal(), MESH_OT_rip(), MESH_OT_rip_edge(), MESH_OT_screw(), MESH_OT_select_all(), MESH_OT_select_axis(), MESH_OT_select_by_attribute(), MESH_OT_select_face_by_sides(), MESH_OT_select_interior_faces(), MESH_OT_select_less(), MESH_OT_select_linked(), MESH_OT_select_linked_pick(), MESH_OT_select_loose(), MESH_OT_select_mirror(), MESH_OT_select_mode(), MESH_OT_select_more(), MESH_OT_select_non_manifold(), MESH_OT_select_nth(), MESH_OT_select_random(), MESH_OT_select_similar(), MESH_OT_select_similar_region(), MESH_OT_select_ungrouped(), MESH_OT_separate(), MESH_OT_set_normals_from_faces(), MESH_OT_shape_propagate_to_all(), MESH_OT_shortest_path_pick(), MESH_OT_shortest_path_select(), MESH_OT_smooth_normals(), MESH_OT_solidify(), MESH_OT_sort_elements(), MESH_OT_spin(), MESH_OT_split(), MESH_OT_split_normals(), MESH_OT_subdivide(), MESH_OT_subdivide_edgering(), MESH_OT_symmetrize(), MESH_OT_symmetry_snap(), MESH_OT_tris_convert_to_quads(), MESH_OT_unsubdivide(), MESH_OT_uv_texture_add(), MESH_OT_uv_texture_remove(), MESH_OT_uvs_reverse(), MESH_OT_uvs_rotate(), MESH_OT_vert_connect(), MESH_OT_vert_connect_concave(), MESH_OT_vert_connect_nonplanar(), MESH_OT_vert_connect_path(), MESH_OT_vertices_smooth(), MESH_OT_vertices_smooth_laplacian(), MESH_OT_wireframe(), and WM_operatortype_append().
Referenced by ED_spacetypes_init().
Definition at line 36 of file editmesh_automerge.cc.
References BKE_editmesh_from_object(), bm, BMEditMesh::bm, BMO_FLAG_DEFAULTS, BMO_op_exec(), BMO_op_finish(), BMO_op_init(), BMO_op_initf(), BMO_slot_copy, Object::data, EDBM_update(), params, BMesh::totvert, and update().
Referenced by EDBM_automerge_and_split(), edbm_remove_doubles_exec(), and special_aftertrans_update__mesh().
| void EDBM_automerge_and_split | ( | Object * | obedit, |
| bool | split_edges, | ||
| bool | split_faces, | ||
| bool | update, | ||
| char | hflag, | ||
| float | dist ) |
Definition at line 80 of file editmesh_automerge.cc.
References BKE_editmesh_from_object(), BLI_time_now_seconds(), bm, BMEditMesh::bm, BM_mesh_copy(), BM_mesh_free(), BM_mesh_intersect_edges(), BMO_FLAG_DEFAULTS, BMO_op_exec(), BMO_op_finish(), BMO_op_init(), BMO_SLOT_AS_GHASH, BMO_slot_get(), Object::data, EDBM_automerge(), EDBM_update(), LIKELY, params, printf, BMOperator::slots_in, and update().
Referenced by special_aftertrans_update__mesh().
| bool EDBM_deselect_by_material | ( | BMEditMesh * | em, |
| short | index, | ||
| bool | select ) |
Definition at line 2690 of file editmesh_select.cc.
References BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BMFace::mat_nr, and select().
Referenced by material_slot_de_select().
| void EDBM_deselect_flush | ( | BMEditMesh * | em | ) |
Definition at line 362 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_mesh_deselect_flush(), BMEditMesh::selectmode, and BMesh::selectmode.
Referenced by ED_uvedit_select_sync_flush(), edbm_select_random_exec(), uv_mouse_select_loop_generic_multi(), uv_select_linked_multi(), and blender::ed::object::vgroup_select_verts().
| BMEdge * EDBM_edge_find_nearest | ( | ViewContext * | vc, |
| float * | dist_px_manhattan_p ) |
Definition at line 657 of file editmesh_select.cc.
References BKE_view_layer_base_find(), BKE_view_layer_synced_ensure(), EDBM_edge_find_nearest_ex(), ViewContext::obact, ViewContext::scene, and ViewContext::view_layer.
Referenced by edbm_elem_find_nearest().
| BMEdge * EDBM_edge_find_nearest_ex | ( | ViewContext * | vc, |
| float * | dist_px_manhattan, | ||
| float * | r_dist_center, | ||
| bool | use_select_bias, | ||
| bool | use_cycle, | ||
| BMEdge ** | r_eed_zbuf, | ||
| blender::Span< Base * > | bases, | ||
| uint * | r_base_index ) |
Referenced by gizmo_preselect_edgering_test_select(), and loopcut_mouse_move().
| BMFace * EDBM_face_find_nearest | ( | ViewContext * | vc, |
| float * | dist_px_manhattan_p ) |
Definition at line 878 of file editmesh_select.cc.
References BKE_view_layer_base_find(), BKE_view_layer_synced_ensure(), EDBM_face_find_nearest_ex(), ViewContext::obact, ViewContext::scene, and ViewContext::view_layer.
Referenced by edbm_elem_find_nearest(), and knife_find_closest_face().
| BMFace * EDBM_face_find_nearest_ex | ( | ViewContext * | vc, |
| float * | dist_px_manhattan, | ||
| float * | r_dist_center, | ||
| bool | use_zbuf_single_px, | ||
| bool | use_select_bias, | ||
| bool | use_cycle, | ||
| BMFace ** | r_efa_zbuf, | ||
| blender::Span< Base * > | bases, | ||
| uint * | r_base_index ) |
| use_zbuf_single_px | Special case, when using the back-buffer selection, only use the pixel at vc->mval instead of using dist_px_manhattan_p to search over a larger region. This is needed because historically selection worked this way for a long time, however it's reasonable that some callers might want to expand the region too. So add an argument to do this, |
| void EDBM_flag_disable_all | ( | BMEditMesh * | em, |
| char | hflag ) |
Definition at line 423 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_EDGE, BM_FACE, BM_mesh_elem_hflag_disable_all(), and BM_VERT.
Referenced by do_lasso_select_mesh(), do_mesh_box_select(), edbm_bevel_calc(), edbm_bridge_edge_loops_for_single_editmesh(), edbm_delete_exec(), edbm_delete_loose_exec(), edbm_duplicate_exec(), edbm_extrude_discrete_faces(), edbm_extrude_edges_indiv(), edbm_extrude_ex(), edbm_flag_disable_all_multi(), edbm_inset_calc(), edbm_loop_to_region_exec(), edbm_merge_exec(), EDBM_mesh_deselect_all_multi_ex(), EDBM_mesh_reveal(), edbm_poke_face_exec(), edbm_polybuild_delete_at_cursor_invoke(), edbm_polybuild_dissolve_at_cursor_invoke(), edbm_region_to_loop_exec(), edbm_screw_exec(), edbm_select_all_exec(), edbm_select_face_by_sides_exec(), edbm_select_loose_exec(), EDBM_select_mirrored(), edbm_select_non_manifold_exec(), EDBM_select_pick(), EDBM_select_toggle_all(), edbm_select_ungrouped_exec(), edbm_spin_exec(), edgering_select(), knife_make_cuts(), mesh_bisect_exec(), mesh_circle_select(), mesh_symmetrize_exec(), mouse_mesh_loop(), mouse_mesh_loop_edge(), mouse_mesh_loop_edge_ring(), mouse_mesh_loop_face(), and uv_select_all_perform().
| void EDBM_flag_enable_all | ( | BMEditMesh * | em, |
| char | hflag ) |
Definition at line 428 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_EDGE, BM_FACE, BM_mesh_elem_hflag_enable_all(), and BM_VERT.
Referenced by edbm_select_all_exec(), EDBM_select_toggle_all(), and uv_select_all_perform().
| bool EDBM_mesh_deselect_all_multi | ( | bContext * | C | ) |
Definition at line 2769 of file editmesh_select.cc.
References BKE_view_layer_array_from_bases_in_edit_mode_unique_data(), CTX_data_ensure_evaluated_depsgraph(), depsgraph, ED_view3d_viewcontext_init(), EDBM_mesh_deselect_all_multi_ex(), ViewContext::scene, ViewContext::v3d, and ViewContext::view_layer.
| bool EDBM_mesh_deselect_all_multi_ex | ( | blender::Span< Base * > | bases | ) |
| void EDBM_mesh_elem_index_ensure_multi | ( | blender::Span< Object * > | objects, |
| char | htype ) |
Referenced by construct_param_handle_multi().
| void EDBM_mesh_free_data | ( | BMEditMesh * | em | ) |
Should only be called on the active edit-mesh, otherwise call BKE_editmesh_free_data.
Definition at line 319 of file editmesh_utils.cc.
References BKE_editmesh_free_data(), ED_mesh_mirror_spatial_table_end(), and ED_mesh_mirror_topo_table_end().
Referenced by EDBM_mesh_make_from_mesh(), blender::ed::object::editmode_load_free_ex(), and undomesh_to_editmesh().
| bool EDBM_mesh_hide | ( | BMEditMesh * | em, |
| bool | swap ) |
Swap is 0 or 1, if 1 it hides not selected.
Definition at line 1502 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_elem_hide_set, BM_ELEM_SELECT, BM_FACES_OF_MESH, BM_ITER_MESH, BM_VERTS_OF_MESH, EDBM_selectmode_flush(), SCE_SELECT_EDGE, SCE_SELECT_VERTEX, and BMEditMesh::selectmode.
Referenced by edbm_hide_exec(), and uv_hide_exec().
Definition at line 314 of file editmesh_utils.cc.
References EDBM_mesh_load_ex().
Referenced by blender::ed::object::object_hook_index_array(), and blender::ed::object::vertex_parent_set_exec().
ob->data, see: #46738, #46913. This ensures BKE_object_free_derived_caches runs on all objects that use this mesh. Definition at line 297 of file editmesh_utils.cc.
References BLI_listbase_is_empty(), bm, BM_mesh_bm_to_me(), Object::data, free_data(), params, BMesh::shapenr, Object::shapenr, and UNLIKELY.
Referenced by EDBM_mesh_load(), and blender::ed::object::editmode_load_free_ex().
Definition at line 263 of file editmesh_utils.cc.
References Object::data, and EDBM_mesh_make_from_mesh().
Referenced by blender::ed::object::editmode_enter_ex(), blender::ed::object::object_hook_index_array(), and blender::ed::object::vertex_parent_set_exec().
Replaces the edit-mesh in the object with a new one based on the given mesh.
Definition at line 269 of file editmesh_utils.cc.
References Object::actcol, BKE_mesh_to_bmesh(), bm, Object::data, EDBM_mesh_free_data(), EDBM_selectmode_flush(), BMesh::selectmode, and BMeshCreateParams::use_toolflags.
Referenced by EDBM_mesh_make(), and blender::ed::geometry::store_result_geometry().
| void EDBM_mesh_normals_update | ( | BMEditMesh * | em | ) |
Definition at line 1619 of file editmesh_utils.cc.
References EDBM_mesh_normals_update_ex(), and params.
Referenced by edbm_bridge_edge_loops_for_single_editmesh(), EDBM_mesh_reveal(), EDBM_update(), and blender::ed::object::object_origin_set_exec().
| void EDBM_mesh_normals_update_ex | ( | BMEditMesh * | em, |
| const BMeshNormalsUpdate_Params * | params ) |
Definition at line 1614 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_mesh_normals_update_ex(), and params.
Referenced by EDBM_mesh_normals_update().
| bool EDBM_mesh_reveal | ( | BMEditMesh * | em, |
| bool | select ) |
Definition at line 1544 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_EDGES_OF_MESH, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_elem_select_set(), BM_ELEM_TAG, BM_FACES_OF_MESH, BM_ITER_MESH, BM_VERTS_OF_MESH, EDBM_flag_disable_all(), EDBM_mesh_normals_update(), EDBM_selectmode_flush(), SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, select(), and BMEditMesh::selectmode.
Referenced by edbm_reveal_exec(), and uv_reveal_exec().
| void EDBM_mesh_stats_multi | ( | blender::Span< Object * > | objects, |
| int | totelem[3], | ||
| int | totelem_sel[3] ) |
Referenced by edbm_delete_loose_exec(), and edbm_tris_convert_to_quads_exec().
| eEditMesh_PreSelPreviewAction EDBM_preselect_action_get | ( | EditMesh_PreSelElem * | psel | ) |
Definition at line 83 of file editmesh_preselect_elem.cc.
References EditMesh_PreSelElem::preview_action.
Referenced by EDBM_preselect_elem_update_preview(), and gizmo_preselect_elem_test_select().
| void EDBM_preselect_action_set | ( | EditMesh_PreSelElem * | psel, |
| eEditMesh_PreSelPreviewAction | action ) |
Definition at line 78 of file editmesh_preselect_elem.cc.
References EditMesh_PreSelElem::preview_action.
Referenced by gizmo_preselect_elem_test_select().
| void EDBM_preselect_edgering_clear | ( | EditMesh_PreSelEdgeRing * | psel | ) |
Definition at line 144 of file editmesh_preselect_edgering.cc.
References EditMesh_PreSelEdgeRing::edges, EditMesh_PreSelEdgeRing::edges_len, MEM_SAFE_FREE, EditMesh_PreSelEdgeRing::verts, and EditMesh_PreSelEdgeRing::verts_len.
Referenced by EDBM_preselect_edgering_destroy(), EDBM_preselect_edgering_update_from_edge(), gizmo_preselect_edgering_test_select(), and ringsel_find_edge().
| EditMesh_PreSelEdgeRing * EDBM_preselect_edgering_create | ( | ) |
Definition at line 131 of file editmesh_preselect_edgering.cc.
References MEM_callocN.
Referenced by gizmo_preselect_edgering_setup(), and ringsel_init().
| void EDBM_preselect_edgering_destroy | ( | EditMesh_PreSelEdgeRing * | psel | ) |
Definition at line 138 of file editmesh_preselect_edgering.cc.
References EDBM_preselect_edgering_clear(), and MEM_freeN().
Referenced by gizmo_preselect_edgering_free(), and ringsel_exit().
| void EDBM_preselect_edgering_draw | ( | EditMesh_PreSelEdgeRing * | psel, |
| const float | matrix[4][4] ) |
Definition at line 153 of file editmesh_preselect_edgering.cc.
References EditMesh_PreSelEdgeRing::edges, EditMesh_PreSelEdgeRing::edges_len, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_COMP_F32, GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_test(), GPU_FETCH_FLOAT, GPU_matrix_mul, GPU_matrix_pop(), GPU_matrix_push(), GPU_PRIM_LINES, GPU_PRIM_POINTS, GPU_program_point_size(), GPU_SHADER_3D_POINT_UNIFORM_SIZE_UNIFORM_COLOR_AA, GPU_SHADER_3D_POLYLINE_UNIFORM_COLOR, GPU_vertformat_attr_add(), GPU_viewport_size_get_f(), immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniform1f(), immUniform2fv(), immUniformThemeColor3(), immVertex3fv(), immVertexFormat(), M_SQRT2, max_ff(), pos, TH_GIZMO_PRIMARY, TH_VERTEX_SIZE, UI_GetThemeValuef(), EditMesh_PreSelEdgeRing::verts, and EditMesh_PreSelEdgeRing::verts_len.
Referenced by gizmo_preselect_edgering_draw(), and ringsel_draw().
| void EDBM_preselect_edgering_update_from_edge | ( | EditMesh_PreSelEdgeRing * | psel, |
| BMesh * | bm, | ||
| BMEdge * | eed_start, | ||
| int | previewlines, | ||
| blender::Span< blender::float3 > | vert_positions ) |
Referenced by gizmo_preselect_edgering_test_select(), and ringsel_find_edge().
| void EDBM_preselect_elem_clear | ( | EditMesh_PreSelElem * | psel | ) |
Definition at line 112 of file editmesh_preselect_elem.cc.
References EditMesh_PreSelElem::edges, EditMesh_PreSelElem::edges_len, MEM_SAFE_FREE, EditMesh_PreSelElem::verts, and EditMesh_PreSelElem::verts_len.
Referenced by EDBM_preselect_elem_destroy(), EDBM_preselect_elem_update_from_single(), and gizmo_preselect_elem_test_select().
| EditMesh_PreSelElem * EDBM_preselect_elem_create | ( | ) |
Definition at line 88 of file editmesh_preselect_elem.cc.
References MEM_callocN, PRESELECT_ACTION_TRANSFORM, and EditMesh_PreSelElem::preview_action.
Referenced by gizmo_preselect_elem_setup().
| void EDBM_preselect_elem_destroy | ( | EditMesh_PreSelElem * | psel | ) |
Definition at line 96 of file editmesh_preselect_elem.cc.
References EDBM_preselect_elem_clear(), EDBM_preselect_preview_clear(), and MEM_freeN().
Referenced by gizmo_preselect_elem_free().
| void EDBM_preselect_elem_draw | ( | EditMesh_PreSelElem * | psel, |
| const float | matrix[4][4] ) |
Definition at line 121 of file editmesh_preselect_elem.cc.
References EditMesh_PreSelElem::edges, EditMesh_PreSelElem::edges_len, GPU_COMP_F32, GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_test(), GPU_FETCH_FLOAT, GPU_line_width(), GPU_matrix_mul, GPU_matrix_pop(), GPU_matrix_push(), GPU_point_size(), GPU_PRIM_LINES, GPU_PRIM_POINTS, GPU_PRIM_TRIS, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniformColor4ub(), immVertex3fv(), immVertexFormat(), pos, PRESELECT_ACTION_DELETE, PRESELECT_ACTION_TRANSFORM, EditMesh_PreSelElem::preview_action, EditMesh_PreSelElem::preview_lines, EditMesh_PreSelElem::preview_lines_len, EditMesh_PreSelElem::preview_tris, EditMesh_PreSelElem::preview_tris_len, EditMesh_PreSelElem::verts, and EditMesh_PreSelElem::verts_len.
Referenced by gizmo_preselect_elem_draw().
| void EDBM_preselect_elem_update_from_single | ( | EditMesh_PreSelElem * | psel, |
| BMesh * | bm, | ||
| BMElem * | ele, | ||
| blender::Span< blender::float3 > | vert_positions ) |
Referenced by gizmo_preselect_elem_test_select().
| void EDBM_preselect_elem_update_preview | ( | EditMesh_PreSelElem * | psel, |
| ViewContext * | vc, | ||
| BMesh * | bm, | ||
| BMElem * | ele, | ||
| const int | mval[2] ) |
Definition at line 382 of file editmesh_preselect_elem.cc.
References BLI_assert, bm, BM_EDGE, BM_FACE, BM_VERT, EDBM_preselect_action_get(), EDBM_preselect_preview_clear(), BMElem::head, BMHeader::htype, PRESELECT_ACTION_CREATE, view3d_preselect_update_preview_triangle_from_edge(), view3d_preselect_update_preview_triangle_from_face(), and view3d_preselect_update_preview_triangle_from_vert().
Referenced by gizmo_preselect_elem_test_select().
| void EDBM_preselect_preview_clear | ( | EditMesh_PreSelElem * | psel | ) |
Definition at line 103 of file editmesh_preselect_elem.cc.
References MEM_SAFE_FREE, EditMesh_PreSelElem::preview_lines, EditMesh_PreSelElem::preview_lines_len, EditMesh_PreSelElem::preview_tris, and EditMesh_PreSelElem::preview_tris_len.
Referenced by EDBM_preselect_elem_destroy(), EDBM_preselect_elem_update_preview(), and gizmo_preselect_elem_test_select().
| void EDBM_project_snap_verts | ( | bContext * | C, |
| Depsgraph * | depsgraph, | ||
| ARegion * | region, | ||
| Object * | obedit, | ||
| BMEditMesh * | em ) |
Definition at line 1916 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_SELECT, BM_ITER_MESH, BM_VERTS_OF_MESH, BMVert::co, CTX_data_scene(), CTX_wm_view3d(), depsgraph, ED_transform_snap_object_context_create(), ED_transform_snap_object_context_destroy(), ED_transform_snap_object_project_view3d(), ED_view3d_init_mats_rv3d(), ED_view3d_project_float_object(), mul_v3_m4v3(), params, SCE_SNAP_TARGET_NOT_ACTIVE, SCE_SNAP_TARGET_NOT_EDITED, SCE_SNAP_TARGET_NOT_NONEDITED, SCE_SNAP_TARGET_ONLY_SELECTABLE, SCE_SNAP_TO_FACE, SCE_SNAP_TO_INCLUDE_EDITED, SCE_SNAP_TO_INCLUDE_NONEDITED, SCE_SNAP_TO_ONLY_SELECTABLE, SET_FLAG_FROM_TEST, SNAP_GEOM_FINAL, SNAP_OCCLUSION_AS_SEEM, V3D_PROJ_RET_OK, and V3D_PROJ_TEST_NOP.
Referenced by edbm_dupli_extrude_cursor_invoke().
| void void void EDBM_redo_state_free | ( | BMBackup * | backup | ) |
Definition at line 85 of file editmesh_utils.cc.
References BM_mesh_data_free(), BMBackup::bmcopy, and MEM_freeN().
Referenced by edbm_bevel_exit(), edbm_bisect_exit(), edbm_connect_vert_pair(), and edbm_inset_exit().
| void EDBM_redo_state_restore | ( | BMBackup * | backup, |
| BMEditMesh * | em, | ||
| bool | recalc_looptris ) |
Restore a BMesh from backup.
Referenced by edbm_bevel_calc(), edbm_inset_calc(), and mesh_bisect_exec().
| void void EDBM_redo_state_restore_and_free | ( | BMBackup * | backup, |
| BMEditMesh * | em, | ||
| bool | recalc_looptris ) |
Delete the backup, flushing it to an edit-mesh.
Referenced by edbm_bevel_cancel(), edbm_connect_vert_pair(), and edbm_inset_cancel().
| BMBackup EDBM_redo_state_store | ( | BMEditMesh * | em | ) |
Save a copy of the BMesh for restoring later.
Definition at line 54 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_mesh_copy(), and BMBackup::bmcopy.
Referenced by edbm_bevel_init(), edbm_connect_vert_pair(), edbm_inset_init(), and mesh_bisect_invoke().
| void EDBM_select_flush | ( | BMEditMesh * | em | ) |
Definition at line 369 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_mesh_select_flush(), BMEditMesh::selectmode, and BMesh::selectmode.
Referenced by ED_uvedit_select_sync_flush(), edbm_dissolve_degenerate_exec(), edbm_edge_split_selected_edges(), edbm_edge_split_selected_verts(), EDBM_selectmode_set(), blender::ed::object::select_editbmesh_hook(), uv_mouse_select_loop_generic_multi(), and blender::ed::object::vgroup_select_verts().
| bool EDBM_select_interior_faces | ( | BMEditMesh * | em | ) |
Definition at line 2908 of file editmesh_select.cc.
References BMFaceLink::area, BLI_addtail(), BLI_assert, BLI_heap_free(), BLI_heap_insert(), BLI_heap_is_empty(), BLI_heap_new_ex(), BLI_heap_node_ptr(), BLI_heap_node_value(), BLI_heap_node_value_update(), BLI_heap_pop_min(), BLI_heap_remove(), BLI_heap_top(), BLI_movelisttolist(), BLI_pophead(), bm, BMEditMesh::bm, BM_EDGE, BM_edge_calc_length(), BM_edge_face_count_is_over, BM_EDGES_OF_MESH, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_index_get, BM_elem_index_set, BM_ELEM_TAG, BM_FACE, BM_face_at_index(), BM_face_calc_area(), BM_FACE_FIRST_LOOP, BM_face_select_set(), BM_FACES_OF_MESH, bm_interior_edge_is_manifold_except_face_index(), bm_interior_face_group_calc_cost(), bm_interior_loop_filter_fn(), BM_ITER_MESH, BM_ITER_MESH_INDEX, BM_mesh_calc_face_groups(), BM_mesh_elem_table_ensure(), BMLoop::e, e, ELEM, BMesh::elem_index_dirty, BMLoop::f, BMFaceLink::face, FLT_MAX, int, LISTBASE_FOREACH, MEM_callocN, MEM_freeN(), MEM_mallocN, BMLoop::next, POINTER_AS_INT, POINTER_FROM_INT, BMLoop::radial_next, STACK_CLEAR, STACK_DECLARE, STACK_INIT, STACK_PUSH, STACK_SIZE, BMesh::totedge, and BMesh::totface.
Referenced by edbm_faces_select_interior_exec().
| void EDBM_select_less | ( | BMEditMesh * | em, |
| bool | use_face_step ) |
Definition at line 398 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_ALL_NOLOOP, BM_ELEM_SELECT, BM_mesh_select_mode_clean(), BMO_FLAG_DEFAULTS, BMO_op_exec(), BMO_op_finish(), BMO_op_initf(), BMO_slot_buffer_hflag_disable(), EDBM_selectmode_flush(), SCE_SELECT_FACE, BMEditMesh::selectmode, and BMOperator::slots_out.
Referenced by edbm_select_less_exec(), and uv_select_more_less().
| void EDBM_select_mirrored | ( | BMEditMesh * | em, |
| const Mesh * | mesh, | ||
| int | axis, | ||
| bool | extend, | ||
| int * | r_totmirr, | ||
| int * | r_totfail ) |
Definition at line 103 of file editmesh_select.cc.
References bm, BMEditMesh::bm, BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_set, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ELEM_TAG, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_vert_select_set(), BM_VERTS_OF_MESH, e, EDBM_flag_disable_all(), EDBM_verts_mirror_cache_begin(), EDBM_verts_mirror_cache_end(), EDBM_verts_mirror_get(), EDBM_verts_mirror_get_edge(), EDBM_verts_mirror_get_face(), ME_EDIT_MIRROR_TOPO, SCE_SELECT_EDGE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, BMesh::selectmode, and v.
Referenced by edbm_select_mirror_exec().
| void EDBM_select_more | ( | BMEditMesh * | em, |
| bool | use_face_step ) |
flushes based on the current select mode. If in vertex select mode, verts select/deselect edges and faces, if in edge select mode, edges select/deselect faces and vertices, and in face select mode faces select/deselect edges and vertices.
Definition at line 376 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_ALL_NOLOOP, BM_ELEM_SELECT, BMO_FLAG_DEFAULTS, BMO_op_exec(), BMO_op_finish(), BMO_op_initf(), BMO_slot_buffer_hflag_enable(), EDBM_selectmode_flush(), SCE_SELECT_FACE, BMEditMesh::selectmode, and BMOperator::slots_out.
Referenced by edbm_select_more_exec(), and uv_select_more_less().
| bool EDBM_select_pick | ( | bContext * | C, |
| const int | mval[2], | ||
| const SelectPick_Params * | params ) |
Definition at line 2062 of file editmesh_select.cc.
References Object::actcol, blender::ed::object::base_activate(), BKE_editmesh_from_object(), BKE_view_layer_active_base_get(), BKE_view_layer_array_from_bases_in_edit_mode(), BKE_view_layer_synced_ensure(), BLI_assert_unreachable, BMEditMesh::bm, BM_edge_select_set(), BM_elem_flag_test, BM_ELEM_SELECT, BM_face_select_set(), BM_mesh_active_face_set(), BM_select_history_remove, BM_select_history_store, BM_vert_select_set(), Object::data, DEG_id_tag_update(), ED_view3d_viewcontext_init_object(), EDBM_flag_disable_all(), EDBM_selectmode_flush(), ViewContext::em, em_setup_viewcontext(), ID_RECALC_SELECT, BMEditMesh::mat_nr, BMFace::mat_nr, ViewContext::mval, NC_GEOM, NC_MATERIAL, ND_SELECT, ND_SHADING_LINKS, ViewContext::obedit, Base::object, params, ViewContext::scene, SEL_OP_ADD, SEL_OP_AND, SEL_OP_SET, SEL_OP_SUB, SEL_OP_XOR, unified_findnearest(), ViewContext::v3d, ViewContext::view_layer, and WM_event_add_notifier().
Referenced by edbm_point_normals_modal(), edbm_shortest_path_pick_invoke(), and view3d_select_exec().
| void EDBM_select_swap | ( | BMEditMesh * | em | ) |
Definition at line 2718 of file editmesh_select.cc.
References BMEditMesh::bm, BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_vert_select_set(), BM_VERTS_OF_MESH, SCE_SELECT_EDGE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, and BMesh::selectmode.
Referenced by edbm_select_all_exec(), and uv_select_all_perform().
| void EDBM_select_toggle_all | ( | BMEditMesh * | em | ) |
Definition at line 2708 of file editmesh_select.cc.
References BMEditMesh::bm, BM_ELEM_SELECT, EDBM_flag_disable_all(), EDBM_flag_enable_all(), BMesh::totedgesel, BMesh::totfacesel, and BMesh::totvertsel.
Referenced by uv_select_all_perform().
| void EDBM_selectmode_convert | ( | BMEditMesh * | em, |
| short | selectmode_old, | ||
| short | selectmode_new ) |
Expand & Contract the Selection (used when changing modes and Ctrl key held)
Flush the selection up:
Flush the selection down:
Definition at line 2350 of file editmesh_select.cc.
References bm, BMEditMesh::bm, BM_edge_is_all_face_flag_test(), BM_edge_is_any_vert_flag_test(), BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_set, BM_elem_flag_test, BM_ELEM_SELECT, BM_ELEM_TAG, BM_face_is_any_edge_flag_test(), BM_face_is_any_vert_flag_test(), BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_mesh_deselect_flush(), BM_vert_is_all_edge_flag_test(), BM_vert_is_all_face_flag_test(), BM_vert_select_set(), BM_VERTS_OF_MESH, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMesh::totedgesel, BMesh::totfacesel, and BMesh::totvertsel.
Referenced by edbm_select_sharp_edges_exec(), and EDBM_selectmode_toggle_multi().
| bool EDBM_selectmode_disable | ( | Scene * | scene, |
| BMEditMesh * | em, | ||
| short | selectmode_disable, | ||
| short | selectmode_fallback ) |
Use to disable a select-mode if its enabled, Using another mode as a fallback if the disabled mode is the only mode set.
Definition at line 2660 of file editmesh_select.cc.
References EDBM_selectmode_set(), NC_SCENE, ND_TOOLSETTINGS, BMEditMesh::selectmode, and WM_main_add_notifier().
Referenced by EDBM_selectmode_disable_multi_ex(), and knifeproject_exec().
| bool EDBM_selectmode_disable_multi | ( | bContext * | C, |
| short | selectmode_disable, | ||
| short | selectmode_fallback ) |
Definition at line 2795 of file editmesh_select.cc.
References BKE_view_layer_array_from_bases_in_edit_mode_unique_data(), CTX_data_ensure_evaluated_depsgraph(), CTX_data_scene(), depsgraph, ED_view3d_viewcontext_init(), EDBM_selectmode_disable_multi_ex(), ViewContext::scene, and ViewContext::view_layer.
Referenced by ringsel_finish().
| bool EDBM_selectmode_disable_multi_ex | ( | Scene * | scene, |
| blender::Span< Base * > | bases, | ||
| short | selectmode_disable, | ||
| short | selectmode_fallback ) |
Referenced by edbm_offset_edgeloop_exec().
| void EDBM_selectmode_flush | ( | BMEditMesh * | em | ) |
Definition at line 357 of file editmesh_utils.cc.
References EDBM_selectmode_flush_ex(), and BMEditMesh::selectmode.
Referenced by deselect_nth_active(), do_lasso_select_mesh(), do_mesh_box_select(), ED_uvedit_select_sync_flush(), edbm_bevel_exit(), edbm_connect_vert_pair(), edbm_edge_rotate_selected_exec(), edbm_intersect_select(), edbm_loop_multiselect_exec(), edbm_loop_to_region_exec(), EDBM_mesh_hide(), EDBM_mesh_make_from_mesh(), EDBM_mesh_reveal(), edbm_quads_convert_to_tris_exec(), edbm_remove_doubles_exec(), edbm_select_all_exec(), edbm_select_axis_exec(), edbm_select_by_attribute_exec(), edbm_select_face_by_sides_exec(), EDBM_select_less(), edbm_select_linked_exec(), edbm_select_linked_pick_ex(), edbm_select_loose_exec(), edbm_select_mirror_exec(), EDBM_select_more(), edbm_select_non_manifold_exec(), EDBM_select_pick(), edbm_select_random_exec(), edbm_select_sharp_edges_exec(), edbm_select_ungrouped_exec(), EDBM_selectmode_set(), edbm_unsubdivide_exec(), edbm_vert_connect_path_exec(), knifetool_finish_single_post(), mesh_bisect_exec(), mesh_symmetrize_exec(), mouse_mesh_loop(), mouse_mesh_shortest_path_edge(), mouse_mesh_shortest_path_face(), mouse_mesh_shortest_path_vert(), ringsel_finish(), similar_edge_select_exec(), similar_face_select_exec(), similar_vert_select_exec(), uv_mouse_select_multi(), uv_select_all_perform(), and uv_select_linked_multi().
| void EDBM_selectmode_flush_ex | ( | BMEditMesh * | em, |
| short | selectmode ) |
Definition at line 352 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_mesh_select_mode_flush_ex(), and BM_SELECT_LEN_FLUSH_RECALC_ALL.
Referenced by add_primitive_cube_gizmo_exec(), edbm_decimate_exec(), edbm_delete_edgeloop_exec(), EDBM_selectmode_flush(), edbm_unsubdivide_exec(), make_prim_finish(), ringsel_finish(), special_aftertrans_update__mesh(), and walker_deselect_nth().
| void EDBM_selectmode_set | ( | BMEditMesh * | em | ) |
When switching select mode, makes sure selection is consistent for editing also for paranoia checks to make sure edge or face mode works.
Definition at line 2296 of file editmesh_select.cc.
References BMEditMesh::bm, BM_edge_select_set(), BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_SELECT, BM_face_select_set(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_vert_select_set(), BM_VERTS_OF_MESH, EDBM_select_flush(), EDBM_selectmode_flush(), edbm_strip_selections(), SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, BMesh::selectmode, BMesh::totedgesel, BMesh::totfacesel, and BMesh::totvertsel.
Referenced by edbm_region_to_loop_exec(), EDBM_selectmode_disable(), edbm_selectmode_ensure(), EDBM_selectmode_set_multi(), edbm_selectmode_sync_multi_ex(), and EDBM_selectmode_toggle_multi().
| bool EDBM_selectmode_set_multi | ( | bContext * | C, |
| short | selectmode ) |
User access this.
Definition at line 2577 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BLI_assert, CTX_data_edit_object(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), EDBM_selectmode_set(), ID_RECALC_SELECT, ID_RECALC_SYNC_TO_EVAL, NC_GEOM, NC_SCENE, ND_SELECT, ND_TOOLSETTINGS, OB_MESH, BMEditMesh::selectmode, ToolSettings::selectmode, Object::type, WM_event_add_notifier(), and WM_main_add_notifier().
Referenced by blender::ed::object::object_mode_set_exec(), and transformops_loopsel_hack().
| void EDBM_selectmode_to_scene | ( | bContext * | C | ) |
Definition at line 336 of file editmesh_utils.cc.
References BKE_editmesh_from_object(), CTX_data_edit_object(), CTX_data_scene(), NC_SCENE, ND_TOOLSETTINGS, BMEditMesh::selectmode, and WM_event_add_notifier().
Referenced by edbm_region_to_loop_exec().
| bool EDBM_selectmode_toggle_multi | ( | bContext * | C, |
| short | selectmode_new, | ||
| int | action, | ||
| bool | use_extend, | ||
| bool | use_expand ) |
User facing function, does notification.
Definition at line 2456 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BLI_assert, CTX_data_edit_object(), CTX_data_scene(), CTX_data_tool_settings(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), EDBM_selectmode_convert(), EDBM_selectmode_set(), highest_order_bit_s(), ID_RECALC_SELECT, ID_RECALC_SYNC_TO_EVAL, NC_GEOM, NC_SCENE, ND_SELECT, ND_TOOLSETTINGS, OB_MESH, ret, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, ToolSettings::selectmode, Object::type, WM_event_add_notifier(), and WM_main_add_notifier().
Referenced by edbm_select_mode_exec().
| bool EDBM_unified_findnearest | ( | ViewContext * | vc, |
| blender::Span< Base * > | bases, | ||
| int * | r_base_index, | ||
| BMVert ** | r_eve, | ||
| BMEdge ** | r_eed, | ||
| BMFace ** | r_efa ) |
Referenced by edbm_shortest_path_pick_invoke().
| bool EDBM_unified_findnearest_from_raycast | ( | ViewContext * | vc, |
| blender::Span< Base * > | bases, | ||
| bool | use_boundary_vertices, | ||
| bool | use_boundary_edges, | ||
| int * | r_base_index_vert, | ||
| int * | r_base_index_edge, | ||
| int * | r_base_index_face, | ||
| BMVert ** | r_eve, | ||
| BMEdge ** | r_eed, | ||
| BMFace ** | r_efa ) |
Referenced by gizmo_preselect_elem_test_select().
| void EDBM_update | ( | Mesh * | mesh, |
| const EDBMUpdate_Params * | params ) |
So many tools call these that we better make it a generic function.
Definition at line 1655 of file editmesh_utils.cc.
References BKE_editmesh_looptris_and_normals_calc(), BKE_editmesh_looptris_calc(), BLI_assert, BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_SELECT, BM_lnorspace_invalidate(), BM_mesh_elem_table_check(), BM_SPACEARR_BMO_SET, DEG_id_tag_update(), EDBM_mesh_normals_update(), ID_RECALC_GEOMETRY, LISTBASE_FOREACH, NC_GEOM, ND_DATA, params, BMesh::selected, BMesh::spacearr_dirty, and WM_main_add_notifier().
Referenced by add_primitive_cube_gizmo_exec(), blender::ed::object::data_xform_tag_update(), 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_blend_from_shape_exec(), edbm_bridge_edge_loops_for_single_editmesh(), edbm_collapse_edge_exec(), edbm_connect_vert_pair(), 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_verts_exec(), edbm_do_smooth_laplacian_vertex_exec(), edbm_do_smooth_vertex_exec(), edbm_dupli_extrude_cursor_invoke(), edbm_duplicate_exec(), edbm_edge_rotate_selected_exec(), edbm_edge_split_selected_edges(), edbm_edge_split_selected_verts(), 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_shade_flat_exec(), edbm_faces_shade_smooth_exec(), edbm_fill_exec(), edbm_fill_grid_exec(), edbm_fill_holes_exec(), edbm_flip_normals_custom_loop_normals(), edbm_flip_normals_face_winding(), edbm_flip_quad_tessellation(), edbm_hide_exec(), edbm_inset_calc(), edbm_inset_cancel(), edbm_intersect_select(), edbm_mark_seam_exec(), edbm_mark_sharp_exec(), edbm_merge_exec(), edbm_mod_weighted_strength_exec(), edbm_normals_make_consistent_exec(), edbm_normals_tools_exec(), edbm_offset_edgeloop_exec(), edbm_point_normals_exec(), edbm_point_normals_modal(), edbm_poke_face_exec(), 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_quads_convert_to_tris_exec(), edbm_remove_doubles_exec(), edbm_reveal_exec(), edbm_reverse_colors_exec(), edbm_reverse_uvs_exec(), edbm_rip_edge_invoke(), edbm_rip_invoke(), edbm_rotate_colors_exec(), edbm_rotate_uvs_exec(), edbm_screw_exec(), edbm_select_nth_exec(), edbm_separate_exec(), edbm_set_normals_from_faces_exec(), edbm_shape_propagate_to_all_exec(), edbm_smooth_normals_exec(), edbm_solidify_exec(), edbm_spin_exec(), edbm_split_exec(), edbm_subdivide_edge_ring_exec(), edbm_subdivide_exec(), edbm_tris_convert_to_quads_exec(), edbm_unsubdivide_exec(), EDBM_update_extern(), edbm_vert_connect_concave_exec(), edbm_vert_connect_nonplaner_exec(), edbm_vert_connect_path_exec(), edbm_wireframe_exec(), knifetool_finish_single_post(), make_prim_finish(), mesh_bisect_exec(), blender::ed::mesh::set_attribute::mesh_set_attribute_exec(), mesh_symmetrize_exec(), mesh_symmetry_snap_exec(), mouse_mesh_shortest_path_edge(), mouse_mesh_shortest_path_face(), mouse_mesh_shortest_path_vert(), normals_split_merge(), ringsel_finish(), similar_edge_select_exec(), similar_face_select_exec(), similar_vert_select_exec(), sort_bmelem_flag(), uv_hide_exec(), and uv_reveal_exec().
| void EDBM_update_extern | ( | Mesh * | mesh, |
| bool | do_tessellation, | ||
| bool | is_destructive ) |
Bad level call from Python API.
Definition at line 1698 of file editmesh_utils.cc.
References EDBM_update(), and params.
| BMFace * EDBM_uv_active_face_get | ( | BMEditMesh * | em, |
| bool | sloppy, | ||
| bool | selected ) |
last_sel, use em->act_face otherwise get the last selected face in the edit-selections at the moment, last_sel is mainly useful for making sure the space image doesn't flicker.
Definition at line 1215 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_mesh_active_face_get(), and EDBM_uv_check().
Referenced by blender::draw::mesh_render_data_create().
| bool EDBM_uv_check | ( | BMEditMesh * | em | ) |
Can we edit UVs for this mesh?
Definition at line 1228 of file editmesh_utils.cc.
References BMEditMesh::bm, CD_PROP_FLOAT2, CustomData_has_layer(), BMesh::ldata, and BMesh::totface.
Referenced by ED_space_image_show_uvedit(), ED_uvedit_test(), EDBM_uv_active_face_get(), and uv_seams_from_islands_exec().
| bool EDBM_vert_color_check | ( | BMEditMesh * | em | ) |
Definition at line 1234 of file editmesh_utils.cc.
References BMEditMesh::bm, CD_PROP_BYTE_COLOR, CustomData_has_layer(), BMesh::ldata, and BMesh::totface.
| BMVert * EDBM_vert_find_nearest | ( | ViewContext * | vc, |
| float * | dist_px_manhattan_p ) |
Definition at line 398 of file editmesh_select.cc.
References BKE_view_layer_base_find(), BKE_view_layer_synced_ensure(), EDBM_vert_find_nearest_ex(), ViewContext::obact, ViewContext::scene, and ViewContext::view_layer.
Referenced by edbm_elem_find_nearest().
| BMVert * EDBM_vert_find_nearest_ex | ( | ViewContext * | vc, |
| float * | dist_px_manhattan_p, | ||
| bool | use_select_bias, | ||
| bool | use_cycle, | ||
| blender::Span< Base * > | bases, | ||
| uint * | r_base_index ) |
Nearest vertex under the cursor.
| dist_px_manhattan_p | (in/out), minimal distance to the nearest and at the end, actual distance. |
| use_select_bias |
|
| use_cycle | Cycle over elements within FIND_NEAR_CYCLE_THRESHOLD_MIN in order of index. |
| void EDBM_verts_mirror_apply | ( | BMEditMesh * | em, |
| int | sel_from, | ||
| int | sel_to ) |
Definition at line 1476 of file editmesh_utils.cc.
References BLI_assert, BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_SELECT, BM_ITER_MESH, BM_VERT, BM_VERTS_OF_MESH, BMVert::co, copy_v3_v3(), EDBM_verts_mirror_get(), BMesh::elem_table_dirty, v, and BMesh::vtable.
Referenced by edbm_blend_from_shape_exec(), edbm_do_smooth_laplacian_vertex_exec(), and edbm_do_smooth_vertex_exec().
| void EDBM_verts_mirror_cache_begin | ( | BMEditMesh * | em, |
| int | axis, | ||
| bool | use_self, | ||
| bool | use_select, | ||
| bool | respecthide, | ||
| bool | use_topology ) |
Definition at line 1389 of file editmesh_utils.cc.
References BM_SEARCH_MAXDIST_MIRR, and EDBM_verts_mirror_cache_begin_ex().
Referenced by edbm_blend_from_shape_exec(), edbm_do_smooth_laplacian_vertex_exec(), edbm_do_smooth_vertex_exec(), EDBM_select_mirrored(), edbm_shape_propagate_to_all_exec(), and blender::ed::object::vgroup_mirror().
| void EDBM_verts_mirror_cache_begin_ex | ( | BMEditMesh * | em, |
| int | axis, | ||
| bool | use_self, | ||
| bool | use_select, | ||
| bool | respecthide, | ||
| bool | use_topology, | ||
| float | maxdist, | ||
| int * | r_index ) |
| em | Edit-mesh used for generating mirror data. |
| use_self | Allow a vertex to point to itself (middle verts). |
| use_select | Restrict to selected verts. |
| respecthide | Skip hidden vertices. |
| use_topology | Use topology mirror. |
| maxdist | Distance for close point test. |
| r_index | Optional array to write into, as an alternative to a custom-data layer (length of total verts). |
Definition at line 1272 of file editmesh_utils.cc.
References BLI_assert, bm, BMEditMesh::bm, BM_CD_LAYER_ID, BM_data_layer_add_named(), BM_elem_flag_test, BM_ELEM_HIDDEN, BM_elem_index_get, BM_ELEM_SELECT, BM_ITER_MESH_INDEX, BM_mesh_elem_index_ensure(), BM_mesh_elem_table_ensure(), BM_VERT, BM_vert_at_index(), BM_VERTS_OF_MESH, cache_mirr_intptr_as_bmvert(), CD_FLAG_TEMPORARY, CD_PROP_INT32, BMVert::co, copy_v3_v3(), CustomData_get_layer_index(), CustomData_get_n_offset(), CustomData_get_named_layer_index(), ED_mesh_mirrtopo_free(), ED_mesh_mirrtopo_init(), CustomDataLayer::flag, MirrTopoStore_t::index_lookup, CustomData::layers, len_squared_v3v3(), mesh_topo_store, BMEditMesh::mirror_cdlayer, square_f(), BMesh::totvert, tree, v, BMesh::vdata, and VERT_INTPTR.
Referenced by EDBM_verts_mirror_cache_begin(), mesh_symmetry_snap_exec(), and transform_convert_mesh_mirrordata_calc().
| void EDBM_verts_mirror_cache_clear | ( | BMEditMesh * | em, |
| BMVert * | v ) |
Definition at line 1459 of file editmesh_utils.cc.
References BLI_assert, BMEditMesh::bm, CustomData_bmesh_get_layer_n(), BMHeader::data, BMVert::head, BMEditMesh::mirror_cdlayer, v, and BMesh::vdata.
| void EDBM_verts_mirror_cache_end | ( | BMEditMesh * | em | ) |
Definition at line 1471 of file editmesh_utils.cc.
References BMEditMesh::mirror_cdlayer.
Referenced by edbm_blend_from_shape_exec(), edbm_do_smooth_laplacian_vertex_exec(), edbm_do_smooth_vertex_exec(), EDBM_select_mirrored(), edbm_shape_propagate_to_all_exec(), and blender::ed::object::vgroup_mirror().
| BMVert * EDBM_verts_mirror_get | ( | BMEditMesh * | em, |
| BMVert * | v ) |
Definition at line 1407 of file editmesh_utils.cc.
References BLI_assert, bm, BMEditMesh::bm, CustomData_bmesh_get_layer_n(), BMHeader::data, BMVert::head, BMEditMesh::mirror_cdlayer, printf, BMesh::totvert, v, BMesh::vdata, and BMesh::vtable.
Referenced by EDBM_select_mirrored(), EDBM_verts_mirror_apply(), EDBM_verts_mirror_get_edge(), EDBM_verts_mirror_get_face(), shape_propagate(), and blender::ed::object::vgroup_mirror().
| BMEdge * EDBM_verts_mirror_get_edge | ( | BMEditMesh * | em, |
| BMEdge * | e ) |
Definition at line 1428 of file editmesh_utils.cc.
References BM_edge_exists(), e, EDBM_verts_mirror_get(), and LIKELY.
Referenced by EDBM_select_mirrored().
| BMFace * EDBM_verts_mirror_get_face | ( | BMEditMesh * | em, |
| BMFace * | f ) |
Definition at line 1442 of file editmesh_utils.cc.
References BM_face_exists(), BM_FACE_FIRST_LOOP, blender::Array< T, InlineBufferCapacity, Allocator >::data(), EDBM_verts_mirror_get(), BMFace::len, BMLoop::next, blender::Array< T, InlineBufferCapacity, Allocator >::size(), and BMLoop::v.
Referenced by EDBM_select_mirrored().
| BMVert * editbmesh_get_x_mirror_vert | ( | Object * | ob, |
| BMEditMesh * | em, | ||
| BMVert * | eve, | ||
| const float | co[3], | ||
| int | index, | ||
| bool | use_topology ) |
Definition at line 962 of file meshtools.cc.
References editbmesh_get_x_mirror_vert_spatial(), and editbmesh_get_x_mirror_vert_topo().
Referenced by blender::ed::object::ED_mesh_defvert_mirror_update_em(), and ED_mesh_mirror_get_vert().
| ViewContext em_setup_viewcontext | ( | bContext * | C | ) |
Definition at line 4382 of file editmesh_select.cc.
References BKE_editmesh_from_object(), CTX_data_ensure_evaluated_depsgraph(), depsgraph, ED_view3d_viewcontext_init(), ViewContext::em, and ViewContext::obedit.
Referenced by edbm_dupli_extrude_cursor_invoke(), edbm_preselect_or_active_init_viewcontext(), edbm_select_linked_pick_invoke(), EDBM_select_pick(), edbm_shortest_path_pick_invoke(), gizmo_preselect_edgering_test_select(), gizmo_preselect_elem_test_select(), knifeproject_exec(), knifetool_invoke(), loopcut_modal(), mouse_mesh_loop(), ringsel_init(), and view3d_circle_select_recalc().
| int * mesh_get_x_mirror_faces | ( | Object * | ob, |
| BMEditMesh * | em, | ||
| Mesh * | mesh_eval ) |
This is a Mesh-based copy of mesh_get_x_mirror_faces().
Definition at line 1099 of file meshtools.cc.
References BLI_assert, BLI_ghash_free(), BLI_ghash_insert(), BLI_ghash_lookup(), BLI_ghash_new_ex(), CD_MFACE, CustomData_get_layer(), Object::data, ED_mesh_mirror_spatial_table_begin(), ED_mesh_mirror_spatial_table_end(), blender::Span< T >::index_range(), ME_EDIT_MIRROR_TOPO, MEM_callocN, MEM_freeN(), mesh, mesh_get_x_mirror_vert(), mirror_facecmp(), mirror_facehash(), mirror_facerotation(), Mesh::totface_legacy, MFace::v1, MFace::v2, MFace::v3, MFace::v4, and Mesh::verts_num.
Referenced by PE_mirror_x().
Retrieves mirrored cache vert, or NULL if there isn't one.
Definition at line 901 of file meshtools.cc.
References mesh_get_x_mirror_vert_spatial(), and mesh_get_x_mirror_vert_topo().
Referenced by do_weight_paint_vertex_multi(), do_weight_paint_vertex_single(), blender::ed::object::ED_mesh_defvert_mirror_update_ob(), ED_mesh_mirror_get_vert(), envelope_bone_weighting(), heat_bone_weighting(), mesh_get_x_mirror_faces(), blender::ed::object::object_shape_key_mirror(), blender::ed::object::vgroup_mirror(), and weight_paint_set().
Definition at line 658 of file editface.cc.
References BKE_mesh_from_object(), paintface_flush_flags(), SEL_DESELECT, SEL_INVERT, SEL_SELECT, SEL_TOGGLE, and blender::bke::SpanAttributeWriter< T >::span.
Referenced by do_lasso_select_paintface(), do_paintface_box_select(), ed_wpaint_vertex_select_pick(), face_select_all_exec(), paint_facesel_circle_select(), paintface_mouse_select(), and paintface_select_loop_invoke().
Copy the face flags, most importantly selection from the mesh to the final evaluated mesh, use in object mode when selecting faces (while painting).
Definition at line 49 of file editface.cc.
References BKE_mesh_batch_cache_dirty_tag(), BKE_MESH_BATCH_DIRTY_ALL, BKE_MESH_BATCH_DIRTY_SELECT_PAINT, BKE_mesh_from_object(), BLI_assert, CD_ORIGINDEX, CTX_data_ensure_evaluated_depsgraph(), CustomData_get_layer(), Object::data, DEG_get_evaluated_object(), DEG_id_tag_update(), depsgraph, Mesh::face_data, Mesh::faces_num, ID_RECALC_SELECT, ID_RECALC_SYNC_TO_EVAL, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::bke::AttributeAccessor::lookup_or_default(), blender::VArrayCommon< T >::materialize(), NC_GEOM, ND_SELECT, ORIGINDEX_NONE, Object::runtime, blender::bke::GSpanAttributeWriter::span, and WM_event_add_notifier().
Referenced by do_lasso_select_paintface(), do_paintface_box_select(), paint_facesel_circle_select(), paint_select_less_exec(), paint_select_more_exec(), paintface_deselect_all_visible(), paintface_hide(), paintface_mouse_select(), paintface_reveal(), paintface_select_linked(), and paintface_select_loop().
Definition at line 159 of file editface.cc.
References BKE_mesh_from_object(), blender::bke::SpanAttributeWriter< T >::finish(), paintface_flush_flags(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by face_select_hide_exec().
Definition at line 717 of file editface.cc.
References add_v3_v3v3(), BKE_mesh_from_object(), CD_PROP_FLOAT2, copy_m3_m4(), CustomData_has_layer(), minmax_v3v3_v3(), mul_v3_m3v3(), and blender::Span< T >::slice().
Referenced by viewselected_exec().
| bool paintface_mouse_select | ( | bContext * | C, |
| const int | mval[2], | ||
| const SelectPick_Params * | params, | ||
| Object * | ob ) |
Definition at line 756 of file editface.cc.
References BKE_mesh_from_object(), BLI_assert_unreachable, CTX_wm_region(), ED_MESH_PICK_DEFAULT_FACE_DIST, ED_mesh_pick_face(), ED_region_tag_redraw(), int, paintface_deselect_all_visible(), paintface_flush_flags(), params, SEL_DESELECT, SEL_OP_ADD, SEL_OP_AND, SEL_OP_SET, SEL_OP_SUB, and SEL_OP_XOR.
Referenced by view3d_select_exec().
Definition at line 193 of file editface.cc.
References BKE_mesh_from_object(), blender::VArrayCommon< T >::index_range(), paintface_flush_flags(), select(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by face_vert_reveal_exec().
| void paintface_select_less | ( | Mesh * | mesh, |
| bool | face_step ) |
Definition at line 613 of file editface.cc.
References blender::Span< T >::slice(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by paint_select_less_exec().
Definition at line 319 of file editface.cc.
References BKE_mesh_from_object(), ED_MESH_PICK_DEFAULT_FACE_DIST, ED_mesh_pick_face(), blender::bke::SpanAttributeWriter< T >::finish(), indices, paintface_flush_flags(), paintface_select_linked_faces(), select(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by paint_select_linked_exec(), and paint_select_linked_pick_invoke().
Definition at line 457 of file editface.cc.
References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::as_span(), BKE_mesh_from_object(), CTX_data_ensure_evaluated_depsgraph(), CTX_wm_region(), DEG_get_evaluated_object(), depsgraph, ED_MESH_PICK_DEFAULT_FACE_DIST, ED_mesh_pick_face(), ED_view3d_init_mats_rv3d(), ED_view3d_select_id_validate(), ED_view3d_viewcontext_init(), find_closest_edge_in_poly(), blender::bke::SpanAttributeWriter< T >::finish(), follow_face_loop(), paintface_flush_flags(), select(), blender::Span< T >::slice(), blender::bke::SpanAttributeWriter< T >::span, and verts.
Referenced by paintface_select_loop_invoke().
| void paintface_select_more | ( | Mesh * | mesh, |
| bool | face_step ) |
Grow the selection of faces.
| face_step | If true will also select faces that only touch on the corner. |
Definition at line 559 of file editface.cc.
References blender::bke::SpanAttributeWriter< T >::span.
Referenced by paint_select_more_exec().
Definition at line 1087 of file editface.cc.
References BKE_mesh_from_object(), BKE_mesh_mselect_clear(), BKE_mesh_mselect_validate(), ELEM, paintvert_flush_flags(), SEL_DESELECT, SEL_INVERT, SEL_SELECT, SEL_TOGGLE, and blender::bke::SpanAttributeWriter< T >::span.
Referenced by do_lasso_select_paintvert(), do_paintvert_box_select(), ed_wpaint_vertex_select_pick(), paint_vertsel_circle_select(), paintvert_select_ungrouped(), and vert_select_all_exec().
| void paintvert_flush_flags | ( | Object * | ob | ) |
(similar to void paintface_flush_flags(Object *ob)) copy the vertex flags, most importantly selection from the mesh to the final evaluated mesh, use in object mode when selecting vertices (while painting).
Definition at line 822 of file editface.cc.
References BKE_mesh_batch_cache_dirty_tag(), BKE_MESH_BATCH_DIRTY_ALL, BKE_mesh_from_object(), BKE_object_get_evaluated_mesh(), CD_ORIGINDEX, CustomData_get_layer(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::bke::AttributeAccessor::lookup_or_default(), blender::VArrayCommon< T >::materialize(), ORIGINDEX_NONE, blender::bke::GSpanAttributeWriter::span, and Mesh::vert_data.
Referenced by do_lasso_select_paintvert(), do_paintvert_box_select(), ed_wpaint_vertex_select_pick(), paint_vertsel_circle_select(), paintvert_deselect_all_visible(), paintvert_hide(), paintvert_reveal(), paintvert_select_less_exec(), paintvert_select_more_exec(), paintvert_select_ungrouped(), and blender::ed::object::vgroup_select_verts().
Definition at line 1193 of file editface.cc.
References BKE_mesh_from_object(), blender::bke::SpanAttributeWriter< T >::finish(), paintvert_flush_flags(), paintvert_tag_select_update(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by vert_select_hide_exec().
Definition at line 1227 of file editface.cc.
References BKE_mesh_from_object(), paintvert_flush_flags(), paintvert_tag_select_update(), select(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by face_vert_reveal_exec().
| void paintvert_select_less | ( | Mesh * | mesh, |
| bool | face_step ) |
Definition at line 1026 of file editface.cc.
References face_step(), blender::bke::SpanAttributeWriter< T >::finish(), blender::Span< T >::size(), blender::Span< T >::slice(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by paintvert_select_less_exec().
Definition at line 945 of file editface.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_mesh_from_object(), blender::bke::SpanAttributeWriter< T >::finish(), indices, paintvert_select_linked_vertices(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by paintvert_select_linked_exec().
| void paintvert_select_linked_pick | ( | bContext * | C, |
| Object * | ob, | ||
| const int | region_coordinates[2], | ||
| bool | select ) |
Definition at line 931 of file editface.cc.
References ED_MESH_PICK_DEFAULT_VERT_DIST, ED_mesh_pick_vert(), int, paintvert_select_linked_vertices(), and select().
Referenced by paintvert_select_linked_pick_invoke().
| void paintvert_select_more | ( | Mesh * | mesh, |
| bool | face_step ) |
Definition at line 968 of file editface.cc.
References face_step(), blender::bke::SpanAttributeWriter< T >::finish(), blender::Span< T >::slice(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by paintvert_select_more_exec().
| void paintvert_select_ungrouped | ( | Object * | ob, |
| bool | extend, | ||
| bool | flush_flags ) |
Definition at line 1155 of file editface.cc.
References BKE_mesh_from_object(), blender::Span< T >::is_empty(), paintvert_deselect_all_visible(), paintvert_flush_flags(), SEL_DESELECT, and blender::bke::SpanAttributeWriter< T >::span.
Referenced by vert_select_ungrouped_exec().
Definition at line 1081 of file editface.cc.
References Object::data, DEG_id_tag_update(), ID_RECALC_SELECT, ID_RECALC_SYNC_TO_EVAL, NC_GEOM, ND_SELECT, and WM_event_add_notifier().
Referenced by do_lasso_select_paintvert(), do_paintvert_box_select(), ed_wpaint_vertex_select_pick(), paint_vertsel_circle_select(), paintvert_hide(), paintvert_reveal(), paintvert_select_less_exec(), paintvert_select_more_exec(), vert_select_all_exec(), and vert_select_ungrouped_exec().