|
Blender V4.3
|
#include "MEM_guardedalloc.h"#include "BLI_array.hh"#include "BLI_math_geom.h"#include "BLI_math_vector.h"#include "BLI_math_vector_types.hh"#include "BKE_attribute.hh"#include "BKE_customdata.hh"#include "bmesh.hh"Go to the source code of this file.
Macros | |
| #define | UV_ASPECT(l, r_uv) uv_aspect(l, aspect, cd_loop_uv_offset, r_uv) |
Functions | |
| BMUVOffsets | BM_uv_map_get_offsets_from_layer (const BMesh *bm, const int layer) |
| BMUVOffsets | BM_uv_map_get_offsets (const BMesh *bm) |
| static void | uv_aspect (const BMLoop *l, const float aspect[2], const int cd_loop_uv_offset, float r_uv[2]) |
| void | BM_face_uv_calc_center_median_weighted (const BMFace *f, const float aspect[2], const int cd_loop_uv_offset, float r_cent[2]) |
| void | BM_face_uv_calc_center_median (const BMFace *f, const int cd_loop_uv_offset, float r_cent[2]) |
| float | BM_face_uv_calc_cross (const BMFace *f, const int cd_loop_uv_offset) |
| void | BM_face_uv_minmax (const BMFace *f, float min[2], float max[2], const int cd_loop_uv_offset) |
| bool | BM_loop_uv_share_edge_check (BMLoop *l_a, BMLoop *l_b, const int cd_loop_uv_offset) |
| bool | BM_loop_uv_share_vert_check (BMLoop *l_a, BMLoop *l_b, const int cd_loop_uv_offset) |
| bool | BM_edge_uv_share_vert_check (BMEdge *e, BMLoop *l_a, BMLoop *l_b, const int cd_loop_uv_offset) |
| bool | BM_face_uv_point_inside_test (const BMFace *f, const float co[2], const int cd_loop_uv_offset) |
Typically we avoid hiding arguments, make this an exception since it reads poorly with so many repeated arguments.
Definition at line 68 of file bmesh_query_uv.cc.
Referenced by BM_face_uv_calc_center_median_weighted().
Check if two loops that share a vertex also have the same UV coordinates.
Definition at line 171 of file bmesh_query_uv.cc.
References BLI_assert, BM_ELEM_CD_GET_FLOAT_P, BM_loop_other_vert_loop_by_edge(), BM_loop_uv_share_vert_check(), e, equals_v2v2(), l_b, and BMLoop::v.
Referenced by uv_rip_pairs_from_loop().
| void BM_face_uv_calc_center_median | ( | const BMFace * | f, |
| const int | cd_loop_uv_offset, | ||
| float | r_cent[2] ) |
Definition at line 109 of file bmesh_query_uv.cc.
References add_v2_v2(), BM_ELEM_CD_GET_FLOAT_P, BM_FACE_FIRST_LOOP, BMFace::len, mul_v2_fl(), BMLoop::next, and zero_v2().
Referenced by do_lasso_select_mesh_uv(), make_child_duplis_faces_from_editmesh(), uv_box_select_exec(), uv_circle_select_exec(), and uv_find_nearest_face_ex().
| void BM_face_uv_calc_center_median_weighted | ( | const BMFace * | f, |
| const float | aspect[2], | ||
| int | cd_loop_uv_offset, | ||
| float | r_cent[2] ) |
Computes the UV center of a face, using the mean average weighted by edge length.
See BM_face_calc_center_median_weighted for matching spatial functionality.
| aspect | Calculate the center scaling by these values, and finally dividing. Since correct weighting depends on having the correct aspect. |
Definition at line 70 of file bmesh_query_uv.cc.
References BM_FACE_FIRST_LOOP, copy_v2_v2(), len_v2v2(), madd_v2_v2fl(), mul_v2_fl(), BMLoop::next, BMLoop::prev, UV_ASPECT, w(), and zero_v2().
Referenced by edgetag_cut_cost_face_uv(), facetag_cut_cost_edge_uv(), and facetag_cut_cost_vert_uv().
Calculate the UV cross product (use the sign to check the winding).
Definition at line 123 of file bmesh_query_uv.cc.
References BM_ELEM_CD_GET_FLOAT2_P, BM_FACE_FIRST_LOOP, cross_poly_v2(), blender::Array< T, InlineBufferCapacity, Allocator >::data(), BMFace::len, and BMLoop::next.
Referenced by bm_loop_calc_uv_angle_from_dir().
| void BM_face_uv_minmax | ( | const BMFace * | f, |
| float | min[2], | ||
| float | max[2], | ||
| const int | cd_loop_uv_offset ) |
Definition at line 136 of file bmesh_query_uv.cc.
References BM_ELEM_CD_GET_FLOAT_P, BM_FACE_FIRST_LOOP, min, minmax_v2v2_v2(), and BMLoop::next.
Referenced by uvedit_pack_islands_multi().
Check if the point is inside the UV face.
Definition at line 193 of file bmesh_query_uv.cc.
References BLI_assert, BM_ELEM_CD_GET_FLOAT2_P, BM_FACE_FIRST_LOOP, BM_face_is_normal_valid(), blender::Array< T, InlineBufferCapacity, Allocator >::data(), isect_point_poly_v2(), BMFace::len, and BMLoop::next.
Referenced by uv_find_nearest_face_ex().
Check if two loops that share an edge also have the same UV coordinates.
Definition at line 147 of file bmesh_query_uv.cc.
References BLI_assert, BM_ELEM_CD_GET_FLOAT_P, BMLoop::e, equals_v2v2(), l_b, BMLoop::next, and BMLoop::v.
Referenced by bm_loop_find_other_fan_loop_with_visible_face(), bm_loop_find_other_radial_loop_with_visible_face(), bm_loop_uv_shared_edge_check(), BM_mesh_calc_path_uv_edge(), ED_uvedit_selected_edges(), edgetag_add_adjacent_uv(), edgetag_test_cb(), facetag_add_adjacent_uv(), uv_rip_single_from_loop(), uv_seams_from_islands_exec(), uvedit_edge_select_set_noflush(), and uvedit_loop_find_other_radial_loop_with_visible_face().
Check if two loops that share a vertex also have the same UV coordinates.
Definition at line 160 of file bmesh_query_uv.cc.
References BLI_assert, BM_ELEM_CD_GET_FLOAT_P, equals_v2v2(), l_b, and BMLoop::v.
Referenced by BM_edge_uv_share_vert_check(), BM_mesh_calc_path_uv_vert(), ED_uvedit_selected_verts(), edgetag_add_adjacent_uv(), facetag_add_adjacent_uv(), mesh_calc_path_region_elem(), uv_select_linked_multi(), uvedit_uv_select_shared_vert(), uvedit_vert_is_all_other_faces_selected(), uvedit_vert_is_edge_select_any_other(), and uvedit_vert_is_face_select_any_other().
| BMUVOffsets BM_uv_map_get_offsets | ( | const BMesh * | bm | ) |
Retrieve the custom data offsets for layers used for user interaction with the active UV map.
Definition at line 45 of file bmesh_query_uv.cc.
References bm, BM_uv_map_get_offsets_from_layer(), CD_PROP_FLOAT2, CustomData_get_active_layer(), and BMesh::ldata.
Referenced by bm_uv_build_islands(), BM_uv_element_map_create(), BPy_BMLoopUV_AssignPyObject(), construct_param_edge_set_seams(), construct_param_handle(), construct_param_handle_multi(), construct_param_handle_subsurfed(), createTransUVs(), cylinder_project_exec(), do_lasso_select_mesh_uv(), ED_uvedit_ensure_uvs(), ED_uvedit_foreach_uv(), ED_uvedit_select_all(), ED_uvedit_selected_edges(), ED_uvedit_selected_faces(), ED_uvedit_selected_verts(), ED_uvedit_selectmode_clean(), ED_uvedit_selectmode_flush(), blender::draw::extract_edituv_data_bm(), blender::draw::extract_edituv_data_mesh(), blender::draw::extract_edituv_subdiv_data_bm(), blender::draw::extract_edituv_subdiv_data_mesh(), blender::draw::extract_face_dots_edituv_data(), smart_project_exec(), sphere_project_exec(), stitch_init(), stitch_propagate_uv_final_position(), transform_mesh_uv_edge_slide_data_create(), transform_mesh_uv_vert_slide_data_create(), uv_box_select_exec(), uv_circle_select_exec(), uv_find_nearest_edge(), uv_find_nearest_vert(), uv_hide_exec(), uv_map_clip_correct(), uv_mark_seam_exec(), uv_mouse_select_multi(), uv_pin_exec(), uv_remove_doubles_to_selected_shared_vertex(), uv_reveal_exec(), uv_rip_object(), uv_sculpt_stroke_init(), uv_seams_from_islands_exec(), uv_select_all(), uv_select_edgeloop(), uv_select_edgering(), uv_select_faceloop(), uv_select_flush_from_loop_edge_flag(), uv_select_flush_from_tag_face(), uv_select_flush_from_tag_loop(), uv_select_invert(), uv_select_linked_multi(), uv_select_more_less(), uv_select_overlap(), uv_select_pinned_exec(), uv_select_similar_edge_exec(), uv_select_similar_face_exec(), uv_select_similar_island_exec(), uv_select_similar_vert_exec(), uv_select_split_exec(), uv_set_connectivity_distance(), uv_shortest_path_pick_exec(), uv_shortest_path_pick_invoke(), uv_shortest_path_select_exec(), uv_snap_uvs_to_adjacent_unselected(), uvedit_center(), uvedit_deselect_flush(), uvedit_have_selection(), uvedit_nearest_uv(), uvedit_pack_islands_multi(), uvedit_select_flush(), uvedit_select_is_any_selected(), uvedit_translate(), uvedit_unwrap_cube_project(), and uvedit_uv_straighten().
| BMUVOffsets BM_uv_map_get_offsets_from_layer | ( | const BMesh * | bm, |
| int | layer ) |
Retrieve the custom data offsets for the UV map.
| layer | The layer index (where 0 is the first UV map). |
Definition at line 21 of file bmesh_query_uv.cc.
References BKE_uv_map_edge_select_name_get(), BKE_uv_map_pin_name_get(), BKE_uv_map_vert_select_name_get(), bm, CD_PROP_BOOL, CD_PROP_FLOAT2, CustomData_get_layer_index_n(), CustomData_get_offset_named(), CustomData::layers, BMesh::ldata, MAX_CUSTOMDATA_LAYER_NAME, CustomDataLayer::name, CustomDataLayer::offset, BMUVOffsets::pin, BMUVOffsets::select_edge, BMUVOffsets::select_vert, and BMUVOffsets::uv.
Referenced by BM_uv_map_get_offsets(), and BPy_BMLoopUV_CreatePyObject().
|
static |
Definition at line 54 of file bmesh_query_uv.cc.
References BM_ELEM_CD_GET_FLOAT_P, and l.