|
Blender V4.3
|
#include "MEM_guardedalloc.h"#include "DNA_object_types.h"#include "BKE_editmesh.hh"#include "BKE_mesh.hh"#include "BKE_mesh_types.hh"#include "BLI_kdtree.h"#include "ED_mesh.hh"Go to the source code of this file.
Classes | |
| struct | MirrTopoVert_t |
Mesh Spatial Mirror API | ||
| #define | KD_THRESH 0.00002f | |
| struct { | ||
| KDTree_3d * tree | ||
| } | MirrKdStore = {nullptr} | |
| void | ED_mesh_mirror_spatial_table_begin (Object *ob, BMEditMesh *em, Mesh *mesh_eval) | |
| int | ED_mesh_mirror_spatial_table_lookup (Object *ob, BMEditMesh *em, Mesh *mesh_eval, const float co[3]) | |
| void | ED_mesh_mirror_spatial_table_end (Object *) | |
Mesh Topology Mirror API | |
| using | MirrTopoHash_t = uint |
| static int | mirrtopo_hash_sort (const void *l1, const void *l2) |
| static int | mirrtopo_vert_sort (const void *v1, const void *v2) |
| bool | ED_mesh_mirrtopo_recalc_check (BMEditMesh *em, Mesh *mesh, MirrTopoStore_t *mesh_topo_store) |
| void | ED_mesh_mirrtopo_init (BMEditMesh *em, Mesh *mesh, MirrTopoStore_t *mesh_topo_store, const bool skip_em_vert_array_init) |
| void | ED_mesh_mirrtopo_free (MirrTopoStore_t *mesh_topo_store) |
Mirror calculation for edit-mode and object mode.
Definition in file editors/mesh/mesh_mirror.cc.
| #define KD_THRESH 0.00002f |
Definition at line 27 of file editors/mesh/mesh_mirror.cc.
Referenced by ED_mesh_mirror_spatial_table_lookup().
| using MirrTopoHash_t = uint |
Definition at line 107 of file editors/mesh/mesh_mirror.cc.
| 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().
| 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, | ||
| const 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().
|
static |
Definition at line 114 of file editors/mesh/mesh_mirror.cc.
Referenced by ED_mesh_mirrtopo_init().
|
static |
Definition at line 125 of file editors/mesh/mesh_mirror.cc.
Referenced by ED_mesh_mirrtopo_init().
| struct { ... } MirrKdStore |
| KDTree_3d* tree |
Definition at line 30 of file editors/mesh/mesh_mirror.cc.
Referenced by blender::compositor::NodeGraph::add_bNodeTree(), blender::realtime_compositor::add_output_nodes(), blender::ed::space_node::add_root_catalogs_draw(), KDL::Tree::addTree(), blender::bke::anonymous_attribute_inferencing::analyze_anonymous_attribute_usages(), balance(), BKE_bvhtree_from_mesh_edges_init(), BKE_bvhtree_from_mesh_tris_init(), BKE_bvhtree_from_mesh_verts_init(), BKE_bvhtree_from_pointcloud_get(), BKE_object_as_kdtree(), BKE_shrinkwrap_compute_smooth_normal(), BKE_shrinkwrap_find_nearest_surface(), BKE_shrinkwrap_project_normal(), BKE_shrinkwrap_remesh_target_project(), BKE_shrinkwrap_snap_point_to_surface(), BLI_bvhtree_balance(), BLI_bvhtree_find_nearest(), BLI_bvhtree_find_nearest_ex(), BLI_bvhtree_find_nearest_first(), BLI_bvhtree_find_nearest_projected(), BLI_bvhtree_free(), BLI_bvhtree_get_bounding_box(), BLI_bvhtree_get_epsilon(), BLI_bvhtree_get_len(), BLI_bvhtree_get_tree_type(), BLI_bvhtree_insert(), BLI_bvhtree_intersect_plane(), BLI_bvhtree_new(), BLI_bvhtree_overlap_self(), BLI_bvhtree_overlap_thread_num(), BLI_bvhtree_range_query(), BLI_bvhtree_ray_cast(), BLI_bvhtree_ray_cast_all(), BLI_bvhtree_ray_cast_all_ex(), BLI_bvhtree_ray_cast_ex(), BLI_bvhtree_update_node(), BLI_bvhtree_update_tree(), BLI_dlrbTree_add(), BLI_dlrbTree_contains(), BLI_dlrbTree_free(), BLI_dlrbTree_init(), BLI_dlrbTree_insert(), BLI_dlrbTree_linkedlist_sync(), BLI_dlrbTree_search(), BLI_dlrbTree_search_exact(), BLI_dlrbTree_search_next(), BLI_dlrbTree_search_prev(), bm_edge_symmetry_map(), BMBVH_EdgeVisible(), bmesh_find_doubles_common(), brush_add(), build_implicit_tree_helper(), blender::nodes::node_geo_index_of_nearest_cc::build_kdtree(), blender::ed::asset::shelf::AssetCatalogSelectorTree::Item::build_row(), blender::ed::outliner::TreeDisplayDataAPI::build_tree(), blender::ed::outliner::TreeDisplayIDOrphans::build_tree(), blender::ed::outliner::TreeDisplayLibraries::build_tree(), blender::ed::outliner::TreeDisplayOverrideLibraryHierarchies::build_tree(), blender::ed::outliner::TreeDisplayOverrideLibraryProperties::build_tree(), blender::ed::outliner::TreeDisplayScenes::build_tree(), blender::ed::outliner::TreeDisplaySequencer::build_tree(), blender::ed::outliner::TreeDisplayViewLayer::build_tree(), blender::nodes::gizmos::build_tree_gizmo_propagation(), bvhcache_has_tree(), bvhcache_insert(), bvhtree_balance(), bvhtree_build_from_mvert(), bvhtree_CreatePyObject(), bvhtree_from_mesh_corner_tris_create_tree(), bvhtree_from_mesh_corner_tris_ex(), bvhtree_from_mesh_edges_create_tree(), bvhtree_from_mesh_edges_ex(), bvhtree_from_mesh_faces_create_tree(), bvhtree_from_mesh_setup_data(), bvhtree_from_mesh_verts_create_tree(), bvhtree_from_mesh_verts_ex(), bvhtree_node_inflate(), C_BVHTree_FromBMesh(), C_BVHTree_FromObject(), C_BVHTree_FromPolygons(), calc_duplicates_fast(), cast_ray_highpoly(), blender::ed::geometry::catalog_assets_draw(), blender::ed::object::catalog_assets_draw(), blender::ed::geometry::catalog_assets_draw_unassigned(), blender::ed::object::check_geometry_node_group_sockets(), blender::check_tree_for_time_node(), blender::ed::geometry::clear_operator_asset_trees(), blender::realtime_compositor::compute_schedule(), convert_channels(), convert_tree(), create_kdop_hull(), create_scene(), createFacepa(), blender::ed::greasepencil::curve_merge_by_distance(), blender::ed::greasepencil::curves_merge_endpoints_by_distance(), deduplicate(), deduplicate_test(), blender::depends_on_time(), blender::bke::node_field_inferencing::determine_group_input_states(), blender::bke::node_field_inferencing::determine_group_output_states(), blender::bke::discover_tree_zones(), dynamic_paint_paint_particle_cell_point_cb_ex(), dynamicPaint_paintParticles(), ED_select_similar_compare_float_tree(), EDBM_verts_mirror_cache_begin_ex(), edge_ray_cast(), blender::nodes::geo_eval_log::GeoTreeLog::ensure_node_warnings(), execute_posetree(), blender::asset_system::tests::AssetCatalogTreeTestFunctions::expect_tree_items(), blender::asset_system::tests::AssetCatalogTreeTestFunctions::expect_tree_root_items(), blender::nodes::inverse_eval::find_local_inverse_eval_targets(), find_nearest(), find_nearest_cb(), find_nearest_n(), find_nearest_n_with_len_squared_cb(), blender::nodes::node_geo_index_of_nearest_cc::find_nearest_non_self(), find_nearest_points_test(), blender::nodes::node_geo_index_of_nearest_cc::find_neighbors(), blender::nodes::find_node_tree_dependencies(), blender::nodes::find_output_attributes_to_store(), blender::ed::space_node::viewer_linking::find_overlapping_node(), blender::find_side_effect_nodes_for_nested_node(), blender::bke::find_zone_nodes(), blender::nodes::gizmos::foreach_active_gizmo_exposed_to_modifier(), blender::nodes::gizmos::foreach_gizmo_for_group_input(), blender::nodes::gizmos::foreach_gizmo_for_input(), free(), free_posetree(), blender::bke::pbvh::free_tree(), blender::compositor::NodeGraph::from_bNodeTree(), VolumeMeshBuilder::generate_vertices_and_quads(), blender::ed::object::geometry_node_tree_copy_assign_exec(), blender::ed::space_node::get_compute_context_hash_for_node_editor(), blender::bke::bNodeZoneType::get_corresponding_input(), blender::bke::bNodeZoneType::get_corresponding_input(), blender::bke::bNodeZoneType::get_corresponding_output(), blender::bke::bNodeZoneType::get_corresponding_output(), blender::bke::anonymous_attribute_inferencing::get_relations_by_node(), blender::ed::geometry::get_static_item_tree(), blender::ed::object::get_static_item_tree(), blender::bke::get_tree_zones(), blender::nodes::node_geo_index_of_nearest_cc::IndexOfNearestFieldInput::get_varray_for_context(), blender::ed::sculpt_paint::grease_pencil_fill_extension_cut(), heap_down(), heap_swap(), heap_up(), heapsimple_down(), heapsimple_up(), hide_simulation_node_skip_socket_value(), iksolver_clear_data(), iksolver_execute_tree(), initialize_chain(), blender::nodes::initialize_group_input(), initialize_posetree(), insert(), insert_check_1(), insert_check_2(), insert_check_3(), blender::bke::is_tree_changed(), isect_bvhtree_point_v3(), kdtree2d_balance(), kdtree2d_init(), kdtree2d_init_mapping(), kdtree2d_isect_tri(), kdtree2d_isect_tri_recursive(), kdtree2d_new(), kdtree2d_node_remove(), kdtree_order(), linkedlist_sync_add_node(), blender::ed::outliner::merged_element_search_fn_recursive(), mesh_corner_tris_target_project(), blender::geometry::mesh_merge_by_distance_all(), blender::modifyGeometry(), nearest_world_tree(), nearest_world_tree_co(), new(), blender::ed::space_node::node_add_catalog_assets_draw(), blender::ed::space_node::node_add_unassigned_assets_draw(), blender::ed::space_node::node_can_be_inserted_on_link(), blender::ed::space_node::node_clipboard_copy_exec(), blender::ed::space_node::node_clipboard_paste_exec(), blender::nodes::node_geo_attribute_capture_cc::node_declare(), blender::nodes::node_geo_foreach_geometry_element_cc::input_node::node_declare(), blender::nodes::node_geo_foreach_geometry_element_cc::output_node::node_declare(), blender::nodes::node_geo_repeat_cc::repeat_input_node::node_declare(), blender::nodes::node_geo_repeat_cc::repeat_output_node::node_declare(), blender::nodes::node_geo_simulation_cc::sim_output_node::node_declare(), blender::ed::space_node::node_find_indicated_socket(), blender::ed::space_node::node_get_invalid_links_extra_info(), node_join(), blender::nodes::node_geo_foreach_geometry_element_cc::input_node::node_layout(), blender::ed::space_node::node_link_is_gizmo_link(), node_minmax_init(), node_reroute_add_storage(), blender::bke::node_socket_move_default_value(), blender::bke::pbvh::node_tree_insert(), blender::bke::node_tree_to_dot(), blender::nodes::NodeMultiFunctions::NodeMultiFunctions(), nodetree_mark_previews_dirty_reccursive(), non_recursive_bvh_div_nodes(), btCollisionWorld::objectQuerySingleInternal(), KDL::operator<<(), blender::ed::outliner::outliner_add_collection_objects(), blender::ed::outliner::outliner_find_item_at_y(), blender::ed::outliner::outliner_free_tree(), blender::ed::outliner::outliner_id_copy_tag(), blender::ed::outliner::outliner_id_remap_find_tree_element(), blender::ed::outliner::outliner_sync_selection_from_outliner(), blender::ed::outliner::outliner_sync_selection_to_outliner(), blender::ed::outliner::outliner_tree_traverse(), blender::ed::object::parent_set_vert_find(), blender::ed::object::parent_set_vertex_parent(), blender::ed::object::parent_set_vertex_parent_with_kdtree(), PE_update_mirror_cache(), blender::geometry::point_merge_by_distance(), blender::ed::space_node::viewer_linking::position_viewer_node(), blender::nodes::process_nodes_for_depsgraph(), btCompoundCollisionAlgorithm::processCollision(), blender::bke::node_field_inferencing::propagate_data_requirements_from_right_to_left(), blender::bke::node_field_inferencing::propagate_field_status_from_left_to_right(), blender::bke::node_field_inferencing::propagate_special_data_requirements(), psys_find_parents(), psys_sph_density(), psys_thread_context_init_distribute(), blender::ed::space_node::push_compute_context_for_tree_path(), range_search(), range_search_cb(), range_search_with_len_squared_cb(), RE_bake_pixels_populate_from_objects(), blender::asset_system::AssetCatalogService::read_into_tree(), refit_kdop_hull(), remove_doubles_exec(), blender::ed::object::root_catalogs_draw(), rotate_left(), rotate_right(), blender::bke::pbvh::search_callback_occluded(), blender::compositor::NodeOperation::set_bnodetree(), blender::nodes::inverse_eval::set_socket_value(), blender::nodes::inverse_eval::set_value_node_value(), shrinkwrap_calc_normal_projection_cb_ex(), shrinkwrap_get_tarmat(), shrinkwrapModifier_deform(), shrinkwrapParams_deform(), sph_evaluate_func(), splineik_evaluate_bone(), splineik_evaluate_init(), splineik_execute_tree(), splineik_init_tree_from_pchan(), standard_test(), blender::draw::statvis_calc_intersect(), blender::draw::statvis_calc_thickness(), blender::ed::space_node::std_node_socket_draw(), blender::nodes::store_output_attributes(), target_project_edge(), TEST(), TEST(), blender::asset_system::tests::TEST_F(), blender::asset_system::tests::TEST_F(), blender::asset_system::tests::TEST_F(), blender::asset_system::tests::TEST_F(), blender::asset_system::tests::TEST_F(), blender::bke::node_tree_runtime::topology_cache_is_available(), blender::bke::pbvh::traverse_tree(), blender::ed::object::ui_template_modifier_asset_menu_items(), blender::ed::space_node::ui_template_node_asset_menu_items(), blender::ed::geometry::ui_template_node_operator_asset_menu_items(), blender::ed::geometry::ui_template_node_operator_asset_root_items(), uiTemplateNodeInputs(), blender::ed::object::unassigned_assets_draw(), blender::bke::anonymous_attribute_inferencing::update_anonymous_attribute_relations(), blender::bke::node_field_inferencing::update_field_inferencing(), blender::nodes::update_input_properties_from_node_tree(), blender::nodes::update_output_properties_from_node_tree(), blender::bke::node_field_inferencing::update_socket_states(), blender::nodes::gizmos::update_tree_gizmo_propagation(), blender::bke::update_zone_border_links(), uv_remove_doubles_to_selected(), uv_remove_doubles_to_unselected(), blender::ed::viewer_path::viewer_path_for_geometry_node(), and blender::nodes::node_geo_sample_nearest_surface_cc::SampleNearestSurfaceFunction::~SampleNearestSurfaceFunction().