|
Blender V5.0
|
#include "BKE_attribute.hh"#include "BLI_compiler_attrs.h"#include "BLI_math_vector_types.hh"#include "BLI_span.hh"#include "BLI_virtual_array.hh"#include "DNA_windowmanager_enums.h"Go to the source code of this file.
Classes | |
| class | EditMeshSymmetryHelper |
| struct | EDBMUpdate_Params |
| struct | MirrTopoStore_t |
| struct | BMBackup |
Namespaces | |
| namespace | blender |
| namespace | blender::ed |
| namespace | blender::ed::mesh |
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 655 of file ED_mesh.hh.
Referenced by paintface_mouse_select(), paintface_select_linked(), weight_sample_group_invoke(), and weight_sample_invoke().
| #define ED_MESH_PICK_DEFAULT_VERT_DIST 25 |
Definition at line 654 of file ED_mesh.hh.
Referenced by ed_wpaint_vertex_select_pick(), paintface_select_loop(), paintvert_select_linked_pick(), weight_sample_group_invoke(), and weight_sample_invoke().
| #define USE_LOOPSLIDE_HACK |
Definition at line 657 of file ED_mesh.hh.
| Enumerator | |
|---|---|
| PRESELECT_ACTION_TRANSFORM | |
| PRESELECT_ACTION_CREATE | |
| PRESELECT_ACTION_DELETE | |
Definition at line 412 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 1221 of file editmesh_utils.cc.
References BM_elem_index_get, element, l, and UvElementMap::vertex.
Referenced by bm_uv_edge_select_build_islands(), blender::ed::transform::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(), and uv_sculpt_stroke_init().
| UvElement * BM_uv_element_get_head | ( | UvElementMap * | element_map, |
| UvElement * | child ) |
Definition at line 1234 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 647 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 1004 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_offsets_get(), BM_VERT, BM_VERTS_OF_MESH, compare_v2v2(), BMLoop::f, i, INVALID_ISLAND, UvElement::island, l, UvElement::l, BMFace::len, UvElement::loop_of_face_index, MEM_calloc_arrayN(), MEM_callocN(), MEM_SAFE_FREE, next, UvElement::next, seam_connected(), UvElement::separate, STD_UV_CONNECT_LIMIT, UvElementMap::storage, Scene::toolsettings, UvElementMap::total_unique_uvs, UvElementMap::total_uvs, BMUVOffsets::uv, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, uvedit_uv_select_test(), v, and UvElementMap::vertex.
Referenced by blender::ed::transform::createTransUVs(), stitch_init(), uv_copy_exec(), uv_paste_exec(), uv_sculpt_stroke_init(), uvedit_uv_islands_arrange(), and uvedit_uv_straighten().
| UvElement ** BM_uv_element_map_ensure_head_table | ( | UvElementMap * | element_map | ) |
Definition at line 592 of file editmesh_utils.cc.
References element, UvElementMap::head_table, i, MEM_mallocN(), 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 618 of file editmesh_utils.cc.
References BLI_assert, element, i, 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 1207 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 blender::ed::transform::createTransUVs(), state_delete(), uv_copy_exec(), uv_paste_exec(), uv_sculpt_stroke_exit(), and uvedit_uv_straighten().
Definition at line 587 of file editmesh_utils.cc.
References v, and UvVertMap::vert.
Referenced by uv_select_linked_multi().
Return a new UvVertMap from the edit-mesh.
Definition at line 471 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_HIDDEN, 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, i, l, BMFace::len, UvMapVert::loop_of_face_index, MEM_calloc_arrayN(), MEM_callocN(), next, UvMapVert::next, UvMapVert::separate, STD_UV_CONNECT_LIMIT, v, and UvVertMap::vert.
Referenced by uv_select_linked_multi().
| void BM_uv_vert_map_free | ( | UvVertMap * | vmap | ) |
Definition at line 1194 of file editmesh_utils.cc.
References UvVertMap::buf, MEM_freeN(), and UvVertMap::vert.
Referenced by 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 1958 of file editmesh_utils.cc.
References add_v3_v3v3(), 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(), tree, ARegion::winx, and ARegion::winy.
Referenced by blender::ed::transform::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 852 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, Mesh::runtime, Object::type, and Mesh::vertex_group_names.
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 879 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 893 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 340 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, blender::bke::Corner, CustomData_get_elem_size(), CustomData_get_named_layer(), CustomDataLayer::data, data, DEG_id_tag_update(), AttributeOwner::from_id(), mesh_customdata_get_type(), CustomDataLayer::name, name, 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 382 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, blender::bke::ColorByte, blender::bke::Corner, DEG_id_tag_update(), AttributeOwner::from_id(), name, 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 1088 of file mesh_data.cc.
References C, blender::ed::object::context_active_object(), CTX_data_pointer_get_type(), data, Object::data, PointerRNA::data, GS, and ID_ME.
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 911 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 1002 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 929 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 1030 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 1044 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 1081 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().
| void ED_mesh_loops_add | ( | Mesh * | mesh, |
| ReportList * | reports, | ||
| int | count ) |
Definition at line 920 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 1016 of file mesh_data.cc.
References BKE_report(), count, mesh_remove_loops(), and RPT_ERROR.
| int ED_mesh_mirror_get_vert | ( | Object * | ob, |
| int | index ) |
Wrapper for object-mode/edit-mode.
call BM_mesh_elem_table_ensure first for edit-mesh.
Definition at line 372 of file meshtools.cc.
References BM_elem_index_get, BM_vert_at_index(), BMVert::co, Object::data, editbmesh_get_x_mirror_vert(), Mesh::editflag, ME_EDIT_MIRROR_TOPO, mesh_get_x_mirror_vert(), and Mesh::runtime.
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(), i, MirrKdStore, Mesh::runtime, BMesh::totvert, and Mesh::verts_num.
Referenced by ED_mesh_mirror_spatial_table_lookup(), mesh_get_x_mirror_faces(), and blender::ed::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::shape_key_mirror(), and blender::ed::transform::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(), i, 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 249 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 258 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 346 of file editors/mesh/mesh_mirror.cc.
References MEM_SAFE_FREE, and mesh_topo_store.
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(), Mesh::edges_num, hash, MirrTopoVert_t::hash, MEM_calloc_arrayN(), MEM_dupallocN(), MEM_freeN(), MEM_mallocN(), mesh_topo_store, mirrtopo_hash_sort(), mirrtopo_vert_sort(), BMesh::totedge, BMesh::totvert, BMEdge::v1, BMEdge::v2, MirrTopoVert_t::v_index, Mesh::verts_num, 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, Mesh::edges_num, mesh_topo_store, BMesh::totedge, BMesh::totvert, and Mesh::verts_num.
Referenced by ed_mesh_mirror_topo_table_update().
| bool ED_mesh_pick_edge | ( | bContext * | C, |
| Object * | ob, | ||
| const int | mval[2], | ||
| uint | dist_px, | ||
| uint * | r_index ) |
Used for paint face loop selection which needs to get closest edge even though in face select mode. Changes the select_buffer context to edge selection for this.
Definition at line 701 of file meshtools.cc.
References BKE_view_layer_base_find(), BLI_assert, C, CTX_data_ensure_evaluated_depsgraph(), Object::data, depsgraph, ViewContext::depsgraph, DRW_select_buffer_context_create(), DRW_select_buffer_find_nearest_to_point(), DRW_select_buffer_sample_point(), ED_view3d_select_id_validate(), ED_view3d_viewcontext_init(), Mesh::edges_num, GS, Mesh::id, ID_ME, ID::name, ViewContext::obact, ORIGINDEX_NONE, ViewContext::region, SCE_SELECT_EDGE, ViewContext::v3d, and ViewContext::view_layer.
Referenced by paintface_select_loop().
| 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 567 of file meshtools.cc.
References BLI_assert, C, 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(), Mesh::faces_num, GS, Mesh::id, ID_ME, ID::name, ViewContext::region, and ViewContext::v3d.
Referenced by ED_mesh_pick_face_vert(), paintface_mouse_select(), paintface_select_linked(), 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 627 of file meshtools.cc.
References BKE_object_get_evaluated_mesh(), BLI_assert, C, CD_ORIGINDEX, CTX_data_ensure_evaluated_depsgraph(), CTX_wm_region(), CustomData_get_layer(), blender::Span< T >::data(), Object::data, DEG_get_evaluated(), depsgraph, ED_mesh_pick_face(), ed_mesh_pick_face_vert__mpoly_find(), Mesh::face_data, faces, float, FLT_MAX, GS, i, Mesh::id, ID_ME, ID::name, 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 780 of file meshtools.cc.
References Geometry::attributes, BKE_mesh_foreach_mapped_vert(), BKE_object_get_evaluated_mesh(), BLI_assert, C, CTX_data_ensure_evaluated_depsgraph(), data, Object::data, DEG_get_evaluated(), 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, Mesh::id, ID_ME, blender::bke::AttributeAccessor::lookup(), MESH_FOREACH_NOP, ID::name, blender::bke::Point, ViewContext::region, ARegion::regiondata, ViewContext::v3d, and Mesh::verts_num.
Referenced by ed_wpaint_vertex_select_pick(), paintvert_select_linked_pick(), weight_sample_group_invoke(), and weight_sample_invoke().
| void ED_mesh_report_mirror | ( | ReportList & | reports, |
| int | totmirr, | ||
| int | totfail ) |
Definition at line 1076 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 | ( | ReportList & | reports, |
| int | totmirr, | ||
| int | totfail, | ||
| char | selectmode ) |
Definition at line 1054 of file mesh_data.cc.
References BKE_reportf(), RPT_INFO, RPT_WARNING, SCE_SELECT_EDGE, and SCE_SELECT_VERTEX.
Referenced by ED_mesh_report_mirror(), ED_mesh_shapes_join_objects_exec(), and edbm_select_mirror_exec().
| wmOperatorStatus ED_mesh_shapes_join_objects_exec | ( | bContext * | C, |
| bool | ensure_keys_exist, | ||
| bool | mirror, | ||
| ReportList * | reports ) |
Definition at line 88 of file meshtools.cc.
References Vector< T, InlineBufferCapacity, Allocator >::append(), b, BKE_id_name(), BKE_key_add(), BKE_keyblock_add(), BKE_keyblock_convert_from_mesh(), BKE_keyblock_find_name(), BKE_keyblock_update_from_mesh(), BKE_object_get_evaluated_mesh(), BKE_report(), BKE_reportf(), C, create_mirrored_name(), CTX_data_active_object(), CTX_DATA_BEGIN, CTX_DATA_END, CTX_data_ensure_evaluated_depsgraph(), CTX_data_main(), Object::data, DEG_get_evaluated(), DEG_id_tag_update(), DEG_relations_tag_update(), depsgraph, ED_mesh_report_mirror_ex(), Mesh::id, ID_RECALC_GEOMETRY, Vector< T, InlineBufferCapacity, Allocator >::is_empty(), Mesh::key, KEY_RELATIVE, name, NC_GEOM, ND_DATA, OB_MESH, OPERATOR_CANCELLED, OPERATOR_FINISHED, RPT_ERROR, RPT_INFO, RPT_WARNING, SCE_SELECT_VERTEX, blender::ed::object::shape_key_mirror(), Key::type, Mesh::verts_num, and WM_main_add_notifier().
Referenced by blender::ed::object::join_shapes_exec(), and blender::ed::object::update_all_shape_keys_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 1108 of file mesh_data.cc.
References blender::bke::Edge, blender::bke::Face, blender::offset_indices::OffsetIndices< T >::index_range(), blender::bke::AttributeAccessor::lookup(), blender::bke::AttributeAccessor::lookup_or_default(), blender::VArrayCommon< T >::materialize(), and blender::threading::parallel_for().
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 1220 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 218 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_attr_pin_ensure_for_all_layers(), CD_PROP_FLOAT2, CD_SET_DEFAULT, Mesh::corner_data, Mesh::corners_num, 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(), AttributeOwner::from_id(), Mesh::id, MAX_MTFACE, MEM_dupallocN(), name, NC_GEOM, ND_DATA, reset_uv_map(), RPT_WARNING, Mesh::runtime, unique_name(), and WM_main_add_notifier().
Referenced by ED_mesh_uv_ensure(), mesh_uv_texture_add_exec(), and uvedit_ensure_uvs().
| void ED_mesh_uv_ensure | ( | Mesh * | mesh, |
| const char * | name ) |
Definition at line 322 of file mesh_data.cc.
References CD_PROP_FLOAT2, CustomData_number_of_layers(), ED_mesh_uv_add(), and name.
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 208 of file mesh_data.cc.
References BM_LOOP, C, CD_PROP_FLOAT2, CustomData_get_active_layer_name(), mesh_customdata_get_type(), name, NC_GEOM, ND_DATA, reset_uv_map(), and WM_event_add_notifier().
Referenced by reset_exec().
| blender::bke::AttributeWriter< bool > ED_mesh_uv_map_pin_layer_ensure | ( | Mesh * | mesh, |
| int | uv_index ) |
Definition at line 314 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.
| blender::VArray< bool > ED_mesh_uv_map_pin_layer_get | ( | const Mesh * | mesh, |
| int | uv_index ) |
Definition at line 298 of file mesh_data.cc.
References BKE_uv_map_pin_name_get(), CD_PROP_FLOAT2, CustomData_get_layer_name(), get_corner_boolean_attribute(), and MAX_CUSTOMDATA_LAYER_NAME.
| void ED_mesh_verts_add | ( | Mesh * | mesh, |
| ReportList * | reports, | ||
| int | count ) |
Definition at line 902 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 988 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 21 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_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_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_reorder_vertices_spatial(), 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_by_pole_count(), 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(), blender::ed::mesh::MESH_OT_set_sharpness_by_angle(), 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(), SCULPT_OT_face_set_extract(), SCULPT_OT_paint_mask_extract(), SCULPT_OT_paint_mask_slice(), and WM_operatortype_append().
Referenced by ED_spacetypes_init().
Definition at line 76 of file editmesh_automerge.cc.
References edbm_automerge_impl(), and update().
Referenced by EDBM_automerge_and_split(), edbm_remove_doubles_exec(), and blender::ed::transform::special_aftertrans_update__mesh().
| bool EDBM_automerge_and_split | ( | Object * | obedit, |
| bool | split_edges, | ||
| bool | split_faces, | ||
| bool | update, | ||
| char | hflag, | ||
| float | dist ) |
Definition at line 94 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 blender::ed::transform::special_aftertrans_update__mesh().
Definition at line 81 of file editmesh_automerge.cc.
References edbm_automerge_impl(), and update().
Referenced by edbm_bevel_calc(), and mesh_symmetrize_exec().
| bool EDBM_deselect_by_material | ( | BMEditMesh * | em, |
| short | index, | ||
| bool | select ) |
Definition at line 2954 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().
| BMEdge * EDBM_edge_find_nearest | ( | ViewContext * | vc, |
| float * | dist_px_manhattan_p ) |
Definition at line 801 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 1020 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 440 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_EDGE, BM_ELEM_SELECT, BM_FACE, BM_mesh_elem_hflag_disable_all(), BM_VERT, and EDBM_uvselect_clear().
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_by_pole_count_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(), uv_mesh_hide_sync_select(), and uv_select_all().
| void EDBM_flag_enable_all | ( | BMEditMesh * | em, |
| char | hflag ) |
Definition at line 450 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_EDGE, BM_ELEM_SELECT, BM_FACE, BM_mesh_elem_hflag_enable_all(), BM_VERT, and EDBM_uvselect_clear().
Referenced by edbm_select_all_exec(), EDBM_select_toggle_all(), and uv_select_all().
| bool EDBM_mesh_deselect_all_multi | ( | bContext * | C | ) |
Definition at line 3033 of file editmesh_select.cc.
References BKE_view_layer_array_from_bases_in_edit_mode_unique_data(), C, 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 | ) |
References C.
| 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 341 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(), blender::ed::geometry::get_original_geometry_eval_copy(), 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 1536 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_edge_is_wire(), 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, e, EDBM_selectmode_flush(), EDBM_uvselect_clear(), ELEM, SCE_SELECT_EDGE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, swap, and v.
Referenced by edbm_hide_exec(), and uv_mesh_hide_sync_select().
Definition at line 336 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().
Definition at line 319 of file editmesh_utils.cc.
References bm, BM_mesh_bm_to_me(), Object::data, free_data(), object_shapenr_basis_index_ensured(), params, Mesh::runtime, Object::shapenr, and UNLIKELY.
Referenced by EDBM_mesh_load(), blender::ed::object::editmode_load_free_ex(), and blender::ed::geometry::get_original_geometry_eval_copy().
| void EDBM_mesh_make | ( | Object * | ob, |
| int | select_mode, | ||
| bool | add_key_index ) |
Definition at line 282 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 288 of file editmesh_utils.cc.
References Object::actcol, BKE_mesh_to_bmesh(), bm, Object::data, EDBM_mesh_free_data(), EDBM_selectmode_flush(), object_shapenr_basis_index_ensured(), Mesh::runtime, 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 1731 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 1726 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 1609 of file editmesh_utils.cc.
References bm, 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_FACE_FIRST_LOOP, BM_face_uvselect_set_shared(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_loop_edge_uvselect_set_shared(), BM_loop_vert_uvselect_set_shared(), BM_mesh_uvselect_mode_flush(), BM_VERTS_OF_MESH, CD_PROP_FLOAT2, CustomData_get_offset(), BMLoop::e, EDBM_flag_disable_all(), EDBM_mesh_normals_update(), EDBM_selectmode_flush(), EDBM_uvselect_clear(), i, BMLoop::next, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, select, BMEditMesh::selectmode, BMesh::uv_select_sync_valid, and BMLoop::v.
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 84 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 79 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 145 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 132 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 139 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 154 of file editmesh_preselect_edgering.cc.
References EditMesh_PreSelEdgeRing::edges, EditMesh_PreSelEdgeRing::edges_len, GPU_blend(), GPU_BLEND_ALPHA, GPU_BLEND_NONE, GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_test(), 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(), i, immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immUniform1f(), immUniform2fv(), immUniformThemeColor3(), immVertex3fv(), immVertexFormat(), M_SQRT2, max_ff(), pos, TH_GIZMO_PRIMARY, TH_VERTEX_SIZE, U, 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 ) |
References bm.
Referenced by gizmo_preselect_edgering_test_select(), and ringsel_find_edge().
| void EDBM_preselect_elem_clear | ( | EditMesh_PreSelElem * | psel | ) |
Definition at line 113 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 89 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 97 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 138 of file editmesh_preselect_elem.cc.
References Delete, edbm_preselect_imm_color(), EditMesh_PreSelElem::edges, EditMesh_PreSelElem::edges_len, GPU_DEPTH_LESS_EQUAL, GPU_DEPTH_NONE, GPU_depth_test(), 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_POINT_UNIFORM_COLOR, GPU_SHADER_3D_UNIFORM_COLOR, GPU_vertformat_attr_add(), i, immBegin(), immBindBuiltinProgram(), immEnd(), immUnbindProgram(), immVertex3fv(), immVertexFormat(), LinesOrPoints, Polygons, 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 ) |
References bm, C, face_step(), params, and select.
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 401 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 104 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 2028 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_elem_flag_test, BM_ELEM_SELECT, BM_ITER_MESH, BM_VERTS_OF_MESH, C, BMVert::co, CTX_data_scene(), CTX_wm_view3d(), depsgraph, ED_view3d_init_mats_rv3d(), ED_view3d_project_float_object(), mul_v3_m4v3(), params, ARegion::regiondata, 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, ToolSettings::snap_flag, blender::ed::transform::snap_object_context_create(), blender::ed::transform::snap_object_context_destroy(), blender::ed::transform::snap_object_project_view3d(), Scene::toolsettings, 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_from_verts | ( | BMEditMesh * | em, |
| bool | select ) |
Mode independent selection/de-selection flush from vertices.
| select | When true, flush the selection state to de-selected elements, otherwise perform the opposite, flushing de-selection. |
Definition at line 384 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_mesh_select_flush_from_verts(), select, BMEditMesh::selectmode, and BMesh::selectmode.
Referenced by edbm_dissolve_degenerate_exec(), edbm_edge_split_selected_edges(), edbm_edge_split_selected_verts(), edbm_select_random_exec(), EDBM_selectmode_set(), blender::ed::object::select_editbmesh_hook(), and blender::ed::object::vgroup_select_verts().
| bool EDBM_select_interior_faces | ( | BMEditMesh * | em | ) |
Definition at line 3172 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, BMLoop::f, BMFaceLink::face, FLT_MAX, i, LISTBASE_FOREACH, MEM_calloc_arrayN(), MEM_freeN(), MEM_malloc_arrayN(), BMLoop::next, POINTER_AS_INT, POINTER_FROM_INT, BMLoop::radial_next, STACK_CLEAR, STACK_DECLARE, STACK_INIT, STACK_PUSH, and STACK_SIZE.
Referenced by edbm_faces_select_interior_exec().
| void EDBM_select_less | ( | BMEditMesh * | em, |
| bool | use_face_step ) |
Definition at line 414 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(), EDBM_uvselect_clear(), 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 140 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(), Mesh::editflag, ME_EDIT_MIRROR_TOPO, SCE_SELECT_EDGE, SCE_SELECT_VERTEX, BMEditMesh::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 391 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(), EDBM_uvselect_clear(), 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 2231 of file editmesh_select.cc.
References 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, bm, BMEditMesh::bm, BM_edge_select_set(), BM_edge_uvselect_set_pick(), BM_elem_flag_test, BM_ELEM_SELECT, BM_face_select_set(), BM_face_uvselect_set_pick(), BM_mesh_active_face_set(), BM_select_history_remove, BM_select_history_store, BM_vert_select_set(), BM_vert_uvselect_set_pick(), C, CD_PROP_FLOAT2, CustomData_get_offset(), 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, blender::ed::object::material_active_index_set(), ViewContext::mval, NC_GEOM, ND_SELECT, ViewContext::obedit, Base::object, params, ViewContext::scene, SEL_OP_ADD, SEL_OP_AND, SEL_OP_SET, SEL_OP_SUB, SEL_OP_XOR, Scene::toolsettings, unified_findnearest(), ToolSettings::uv_sticky, UV_STICKY_LOCATION, 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 2982 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_invert().
| void EDBM_select_toggle_all | ( | BMEditMesh * | em | ) |
Definition at line 2972 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.
| 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 2567 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_select_flush_from_verts(), 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, and SCE_SELECT_VERTEX.
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 2927 of file editmesh_select.cc.
References EDBM_selectmode_set(), NC_SCENE, ND_TOOLSETTINGS, BMEditMesh::selectmode, ToolSettings::selectmode, Scene::toolsettings, 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 3059 of file editmesh_select.cc.
References BKE_view_layer_array_from_bases_in_edit_mode_unique_data(), C, 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 edbm_region_to_loop_exec(), and ringsel_finish().
| bool EDBM_selectmode_disable_multi_ex | ( | Scene * | scene, |
| blender::Span< Base * > | bases, | ||
| short | selectmode_disable, | ||
| short | selectmode_fallback ) |
References C.
Referenced by edbm_offset_edgeloop_exec().
| void EDBM_selectmode_flush | ( | BMEditMesh * | em | ) |
Definition at line 379 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(), 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_by_pole_count_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_mirrored_extend_all(), 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_mesh_hide_sync_select(), and uv_select_invert().
| void EDBM_selectmode_flush_ex | ( | BMEditMesh * | em, |
| short | selectmode ) |
Definition at line 374 of file editmesh_utils.cc.
References BMEditMesh::bm, BM_mesh_select_mode_flush_ex(), and BMSelectFlushFlag_All.
Referenced by add_primitive_cube_gizmo_exec(), edbm_decimate_exec(), edbm_delete_edgeloop_exec(), EDBM_selectmode_flush(), edbm_tris_convert_to_quads_exec(), edbm_unsubdivide_exec(), make_prim_finish(), ringsel_finish(), blender::ed::transform::special_aftertrans_update__mesh(), and walker_deselect_nth().
| void EDBM_selectmode_set | ( | BMEditMesh * | em, |
| short | selectmode ) |
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 2504 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_mesh_uvselect_mode_flush_update(), BM_vert_select_set(), BM_VERTS_OF_MESH, CD_PROP_FLOAT2, CustomData_get_offset(), EDBM_select_flush_from_verts(), EDBM_selectmode_flush(), edbm_strip_selections(), BMesh::ldata, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, BMesh::selectmode, BMesh::totedgesel, BMesh::totfacesel, BMesh::totvertsel, and BMesh::uv_select_sync_valid.
Referenced by EDBM_selectmode_disable(), edbm_selectmode_ensure(), EDBM_selectmode_set_multi_ex(), edbm_selectmode_sync_multi_ex(), and EDBM_selectmode_toggle_multi().
| bool EDBM_selectmode_set_multi | ( | bContext * | C, |
| short | selectmode ) |
High level select-mode setting utility. This operates on tool-settings and all edit-mode objects.
Definition at line 2873 of file editmesh_select.cc.
References BKE_editmesh_from_object(), BKE_view_layer_active_object_get(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BKE_view_layer_synced_ensure(), BLI_assert, C, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), EDBM_selectmode_set_multi_ex(), Object::mode, OB_MESH, OB_MODE_EDIT, and Object::type.
Referenced by blender::ed::object::object_mode_set_exec(), and blender::ed::transform::transformops_loopsel_hack().
| bool EDBM_selectmode_set_multi_ex | ( | Scene * | scene, |
| blender::Span< Object * > | objects, | ||
| const short | selectmode ) |
Select-mode setting utility. This operates on tool-settings and all objects passed in.
Definition at line 2843 of file editmesh_select.cc.
References BKE_editmesh_from_object(), DEG_id_tag_update(), EDBM_selectmode_set(), Scene::id, ID_RECALC_SELECT, ID_RECALC_SYNC_TO_EVAL, NC_GEOM, NC_SCENE, ND_SELECT, ND_TOOLSETTINGS, BMEditMesh::selectmode, ToolSettings::selectmode, Scene::toolsettings, and WM_main_add_notifier().
Referenced by EDBM_selectmode_set_multi(), and uv_rip_exec().
| void EDBM_selectmode_to_scene | ( | bContext * | C | ) |
Definition at line 358 of file editmesh_utils.cc.
References BKE_editmesh_from_object(), C, CTX_data_edit_object(), CTX_data_scene(), NC_SCENE, ND_TOOLSETTINGS, BMEditMesh::selectmode, ToolSettings::selectmode, Scene::toolsettings, and WM_event_add_notifier().
| bool EDBM_selectmode_toggle_multi | ( | bContext * | C, |
| short | selectmode_toggle, | ||
| int | action, | ||
| bool | use_extend, | ||
| bool | use_expand ) |
User facing function, handles notification.
| selectmode_toggle | The mode to adjust based on action, must not contain mixed flags. |
Definition at line 2678 of file editmesh_select.cc.
References bitscan_forward_i(), BKE_editmesh_from_object(), BKE_view_layer_array_from_objects_in_edit_mode_unique_data(), BLI_assert, BMEditMesh::bm, BM_mesh_select_is_mixed(), C, CTX_data_edit_object(), CTX_data_scene(), CTX_data_tool_settings(), CTX_data_view_layer(), CTX_wm_view3d(), DEG_id_tag_update(), ED_uvedit_sync_uvselect_ensure_if_needed(), EDBM_selectmode_convert(), EDBM_selectmode_set(), EDBM_uvselect_clear(), ELEM, highest_order_bit_s(), Scene::id, 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, ToolSettings::uv_flag, UV_FLAG_SELECT_SYNC, 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 ) |
References C, params, and select.
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 1767 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(), Mesh::id, ID_RECALC_GEOMETRY, LISTBASE_FOREACH, NC_GEOM, ND_DATA, params, Mesh::runtime, 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_and_split(), edbm_automerge_impl(), 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_mesh_hide_sync_select(), 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 1810 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 1249 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 1262 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_uvselect_clear | ( | BMEditMesh * | em | ) |
Definition at line 460 of file editmesh_utils.cc.
References BMEditMesh::bm, and BM_mesh_uvselect_clear().
Referenced by add_primitive_cube_gizmo_exec(), ED_uvedit_deselect_all(), edbm_bevel_exit(), edbm_decimate_exec(), edbm_delete_edgeloop_exec(), EDBM_flag_disable_all(), EDBM_flag_enable_all(), edbm_intersect_select(), edbm_loop_multiselect_exec(), edbm_loop_to_region_exec(), EDBM_mesh_hide(), EDBM_mesh_reveal(), edbm_select_axis_exec(), edbm_select_by_attribute_exec(), edbm_select_by_pole_count_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_nth_exec(), edbm_select_random_exec(), edbm_select_sharp_edges_exec(), edbm_select_ungrouped_exec(), EDBM_selectmode_toggle_multi(), edbm_tris_convert_to_quads_exec(), knifetool_finish_single_post(), make_prim_finish(), 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(), uv_mesh_hide_sync_select(), and blender::ed::object::vgroup_select_verts().
| bool EDBM_vert_color_check | ( | BMEditMesh * | em | ) |
Definition at line 1268 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 542 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 1510 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 1423 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 1306 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(), i, len_squared_v3v3(), mesh_topo_store, BMEditMesh::mirror_cdlayer, square_f(), tree, v, and VERT_INTPTR.
Referenced by EDBM_verts_mirror_cache_begin(), mesh_symmetry_snap_exec(), and blender::ed::transform::transform_convert_mesh_mirrordata_calc().
| void EDBM_verts_mirror_cache_clear | ( | BMEditMesh * | em, |
| BMVert * | v ) |
Definition at line 1493 of file editmesh_utils.cc.
References BLI_assert, BMEditMesh::bm, CustomData_bmesh_get_layer_n(), BMEditMesh::mirror_cdlayer, v, and BMesh::vdata.
| void EDBM_verts_mirror_cache_end | ( | BMEditMesh * | em | ) |
Definition at line 1505 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 1441 of file editmesh_utils.cc.
References BLI_assert, bm, BMEditMesh::bm, CustomData_bmesh_get_layer_n(), BMEditMesh::mirror_cdlayer, printf, 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 1462 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 1476 of file editmesh_utils.cc.
References BM_face_exists(), BM_FACE_FIRST_LOOP, blender::Array< T, InlineBufferCapacity, Allocator >::data(), EDBM_verts_mirror_get(), i, 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 363 of file meshtools.cc.
References editbmesh_get_x_mirror_vert_spatial(), and editbmesh_get_x_mirror_vert_topo().
Referenced by ED_mesh_mirror_get_vert(), and blender::ed::object::mesh_defvert_mirror_update_em().
| ViewContext em_setup_viewcontext | ( | bContext * | C | ) |
Definition at line 5074 of file editmesh_select.cc.
References BKE_editmesh_from_object(), C, 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 500 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(), Mesh::editflag, i, blender::Span< T >::index_range(), ME_EDIT_MIRROR_TOPO, MEM_calloc_arrayN(), MEM_freeN(), 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 302 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(), ED_mesh_mirror_get_vert(), envelope_bone_weighting(), heat_bone_weighting(), blender::ed::object::mesh_defvert_mirror_update_ob(), mesh_get_x_mirror_faces(), blender::ed::object::shape_key_mirror(), blender::ed::object::vgroup_mirror(), and weight_paint_set().
Definition at line 623 of file editface.cc.
References BKE_mesh_from_object(), C, blender::bke::Face, Mesh::faces_num, blender::bke::GSpanAttributeWriter::finish(), i, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::AttributeAccessor::lookup_or_default(), paintface_flush_flags(), SEL_DESELECT, SEL_INVERT, SEL_SELECT, and SEL_TOGGLE.
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 40 of file editface.cc.
References Geometry::attributes, BKE_mesh_batch_cache_dirty_tag(), BKE_MESH_BATCH_DIRTY_ALL, BKE_MESH_BATCH_DIRTY_SELECT_PAINT, BKE_mesh_from_object(), BLI_assert, C, CD_ORIGINDEX, CTX_data_ensure_evaluated_depsgraph(), CustomData_get_layer(), Object::data, DEG_get_evaluated(), DEG_id_tag_update(), depsgraph, blender::bke::Face, Mesh::face_data, Mesh::faces_num, blender::bke::GSpanAttributeWriter::finish(), i, 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(), blender::bke::mesh_select_face_flush(), NC_GEOM, ND_SELECT, ORIGINDEX_NONE, Object::runtime, 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 150 of file editface.cc.
References BKE_mesh_from_object(), C, blender::bke::Face, Mesh::faces_num, blender::bke::SpanAttributeWriter< T >::finish(), i, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::mesh_hide_face_flush(), paintface_flush_flags(), and blender::bke::SpanAttributeWriter< T >::span.
Referenced by face_select_hide_exec().
Definition at line 682 of file editface.cc.
References add_v3_v3v3(), Geometry::attributes, BKE_mesh_from_object(), CD_PROP_FLOAT2, copy_m3_m4(), Mesh::corner_data, CustomData_has_layer(), blender::bke::Face, faces, Mesh::faces_num, i, blender::bke::AttributeAccessor::lookup_or_default(), minmax_v3v3_v3(), mul_v3_m3v3(), and Span< T >::slice().
Referenced by view3d_calc_minmax_selected().
| bool paintface_mouse_select | ( | bContext * | C, |
| const int | mval[2], | ||
| const SelectPick_Params & | params, | ||
| Object * | ob ) |
Definition at line 721 of file editface.cc.
References Mesh::act_face, BKE_mesh_from_object(), BLI_assert_unreachable, C, CTX_wm_region(), ED_MESH_PICK_DEFAULT_FACE_DIST, ED_mesh_pick_face(), ED_region_tag_redraw(), blender::bke::Face, blender::bke::GAttributeWriter::finish(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write(), blender::bke::AttributeAccessor::lookup_or_default(), 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 184 of file editface.cc.
References BKE_mesh_from_object(), C, blender::bke::Face, Mesh::faces_num, blender::bke::GSpanAttributeWriter::finish(), i, blender::VArrayCommon< T >::index_range(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::AttributeAccessor::lookup_or_default(), blender::bke::mesh_hide_face_flush(), paintface_flush_flags(), blender::bke::MutableAttributeAccessor::remove(), and select.
Referenced by face_vert_reveal_exec().
| void paintface_select_less | ( | Mesh * | mesh, |
| bool | face_step ) |
Definition at line 578 of file editface.cc.
References blender::bke::Face, face_step(), faces, i, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::AttributeAccessor::lookup_or_default(), blender::threading::parallel_for(), Span< T >::slice(), blender::bke::SpanAttributeWriter< T >::span, and Mesh::verts_num.
Referenced by paint_select_less_exec().
Definition at line 310 of file editface.cc.
References BKE_mesh_from_object(), C, ED_MESH_PICK_DEFAULT_FACE_DIST, ED_mesh_pick_face(), blender::bke::Face, Mesh::faces_num, blender::bke::SpanAttributeWriter< T >::finish(), i, indices, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), 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 418 of file editface.cc.
References VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::as_span(), BKE_mesh_from_object(), blender::bke::mesh::build_edge_to_face_map(), C, CTX_data_ensure_evaluated_depsgraph(), CTX_wm_region(), DEG_get_evaluated(), depsgraph, ED_MESH_PICK_DEFAULT_VERT_DIST, ED_mesh_pick_edge(), ED_view3d_init_mats_rv3d(), ED_view3d_select_id_validate(), ED_view3d_viewcontext_init(), Mesh::edges_num, blender::bke::Face, faces, blender::bke::SpanAttributeWriter< T >::finish(), follow_face_loop(), i, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::AttributeAccessor::lookup_or_default(), paintface_flush_flags(), ARegion::regiondata, select, and blender::bke::SpanAttributeWriter< T >::span.
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 524 of file editface.cc.
References blender::bke::Face, face_step(), faces, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::AttributeAccessor::lookup_or_default(), blender::threading::parallel_for(), blender::bke::Point, and blender::bke::SpanAttributeWriter< T >::span.
Referenced by paint_select_more_exec().
| bool paintvert_deselect_all_visible | ( | Object * | ob, |
| int | action, | ||
| bool | flush_flags ) |
Definition at line 1052 of file editface.cc.
References BKE_mesh_from_object(), BKE_mesh_mselect_clear(), BKE_mesh_mselect_validate(), ELEM, blender::bke::GSpanAttributeWriter::finish(), i, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::AttributeAccessor::lookup_or_default(), paintvert_flush_flags(), blender::bke::Point, SEL_DESELECT, SEL_INVERT, SEL_SELECT, SEL_TOGGLE, and Mesh::verts_num.
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 787 of file editface.cc.
References Geometry::attributes, 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::GSpanAttributeWriter::finish(), i, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::bke::AttributeAccessor::lookup_or_default(), blender::VArrayCommon< T >::materialize(), blender::bke::mesh_select_vert_flush(), ORIGINDEX_NONE, blender::bke::Point, 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 1158 of file editface.cc.
References BKE_mesh_from_object(), C, blender::bke::SpanAttributeWriter< T >::finish(), i, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::mesh_hide_vert_flush(), paintvert_flush_flags(), paintvert_tag_select_update(), blender::bke::Point, blender::bke::SpanAttributeWriter< T >::span, and Mesh::verts_num.
Referenced by vert_select_hide_exec().
Definition at line 1192 of file editface.cc.
References BKE_mesh_from_object(), C, blender::bke::GSpanAttributeWriter::finish(), i, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::AttributeAccessor::lookup_or_default(), blender::bke::mesh_hide_vert_flush(), paintvert_flush_flags(), paintvert_tag_select_update(), blender::bke::Point, blender::bke::MutableAttributeAccessor::remove(), select, and Mesh::verts_num.
Referenced by face_vert_reveal_exec().
| void paintvert_select_less | ( | Mesh * | mesh, |
| bool | face_step ) |
Definition at line 991 of file editface.cc.
References blender::bke::mesh::build_edge_to_face_map(), blender::bke::Edge, blender::bke::Face, face_step(), faces, blender::bke::SpanAttributeWriter< T >::finish(), i, Span< T >::index_range(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::AttributeAccessor::lookup_or_default(), blender::bke::Point, Span< T >::size(), Span< T >::slice(), blender::bke::SpanAttributeWriter< T >::span, and Mesh::verts_num.
Referenced by paintvert_select_less_exec().
Definition at line 910 of file editface.cc.
References BKE_mesh_from_object(), C, Mesh::faces_num, blender::bke::SpanAttributeWriter< T >::finish(), i, indices, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), paintvert_select_linked_vertices(), blender::bke::Point, 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 896 of file editface.cc.
References C, ED_MESH_PICK_DEFAULT_VERT_DIST, ED_mesh_pick_vert(), 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 933 of file editface.cc.
References blender::bke::mesh::build_edge_to_face_map(), blender::bke::Edge, Mesh::edges_num, blender::bke::Face, face_step(), faces, blender::bke::SpanAttributeWriter< T >::finish(), i, Span< T >::index_range(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::AttributeAccessor::lookup_or_default(), blender::bke::Point, Span< T >::slice(), blender::bke::SpanAttributeWriter< T >::span, and Mesh::verts_num.
Referenced by paintvert_select_more_exec().
| void paintvert_select_ungrouped | ( | Object * | ob, |
| bool | extend, | ||
| bool | flush_flags ) |
Definition at line 1120 of file editface.cc.
References BKE_mesh_from_object(), blender::bke::GSpanAttributeWriter::finish(), i, Span< T >::is_empty(), blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::AttributeAccessor::lookup_or_default(), paintvert_deselect_all_visible(), paintvert_flush_flags(), blender::bke::Point, and SEL_DESELECT.
Referenced by vert_select_ungrouped_exec().
Definition at line 1046 of file editface.cc.
References C, 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().