|
Blender V4.3
|
Classes | |
| class | EdgeToPrimitiveMap |
| struct | Fan |
| struct | FanSegment |
| struct | MeshData |
| class | TriangleToEdgeMap |
| struct | UVBorder |
| struct | UVBorderCorner |
| struct | UVBorderEdge |
| struct | UVEdge |
| struct | UVIsland |
| struct | UVIslands |
| struct | UVIslandsMask |
| struct | UVPrimitive |
| struct | UVVertex |
| class | VertToEdgeMap |
Functions | |
| static void | uv_edge_append_to_uv_vertices (UVEdge &uv_edge) |
| static void | uv_primitive_append_to_uv_edges (UVPrimitive &uv_primitive) |
| static void | uv_primitive_append_to_uv_vertices (UVPrimitive &uv_primitive) |
Mesh Primitives | |
| static int | primitive_get_other_uv_vertex (const MeshData &mesh_data, const int3 &tri, const int v1, const int v2) |
| static bool | primitive_has_shared_uv_edge (const Span< float2 > uv_map, const int3 &tri, const int3 &tri_other) |
| static int | get_uv_loop (const MeshData &mesh_data, const int3 &tri, const int vert) |
| static rctf | primitive_uv_bounds (const int3 &tri, const Span< float2 > uv_map) |
UVVertex | |
| static void | uv_vertex_init_flags (UVVertex &uv_vertex) |
| static Vector< int > | connecting_mesh_primitive_indices (const UVVertex &uv_vertex) |
UVIsland | |
| static UVPrimitive * | add_primitive (const MeshData &mesh_data, UVIsland &uv_island, const int primitive_i) |
| static std::optional< UVBorderCorner > | sharpest_border_corner (UVBorder &border, float *r_angle) |
| static std::optional< UVBorderCorner > | sharpest_border_corner (UVIsland &island) |
| static void | add_uv_primitive_shared_uv_edge (const MeshData &mesh_data, UVIsland &island, UVVertex *connected_vert_1, UVVertex *connected_vert_2, float2 uv_unconnected, const int mesh_primitive_i) |
| static int | find_fill_primitive (const MeshData &mesh_data, UVBorderCorner &corner) |
| static void | add_uv_primitive_fill (UVIsland &island, UVVertex &uv_vertex1, UVVertex &uv_vertex2, UVVertex &uv_vertex3, const int fill_primitive_i) |
| static void | extend_at_vert (const MeshData &mesh_data, UVIsland &island, UVBorderCorner &corner, float min_uv_distance) |
| static void | reset_extendability_flags (UVIsland &island) |
UVIslandsMask | |
| static ushort2 | mask_resolution_from_tile_resolution (ushort2 tile_resolution) |
| static void | add_uv_island (const MeshData &mesh_data, UVIslandsMask::Tile &tile, const UVIsland &uv_island, int16_t island_index) |
| static bool | dilate_x (UVIslandsMask::Tile &islands_mask) |
| static bool | dilate_y (UVIslandsMask::Tile &islands_mask) |
| static void | dilate_tile (UVIslandsMask::Tile &tile, int max_iterations) |
MeshData | |
| static constexpr int | INVALID_UV_ISLAND_ID = -1 |
| static void | mesh_data_init_edges (MeshData &mesh_data) |
| static void | extract_uv_neighbors (const MeshData &mesh_data, const Span< int > uv_island_ids, const int primitive_i, Vector< int > &prims_to_add) |
| static int | mesh_data_init_primitive_uv_island_ids (MeshData &mesh_data) |
| static void | mesh_data_init (MeshData &mesh_data) |
|
static |
Definition at line 421 of file pbvh_uv_islands.cc.
References blender::bke::pbvh::uv_islands::MeshData::corner_tris, blender::bke::pbvh::uv_islands::MeshData::edges, blender::bke::pbvh::uv_islands::UVPrimitive::edges, get_uv_loop(), blender::bke::pbvh::uv_islands::UVIsland::lookup_or_create(), blender::bke::pbvh::uv_islands::MeshData::primitive_to_edge_map, uv_edge_append_to_uv_vertices(), blender::bke::pbvh::uv_islands::UVEdge::uv_primitives, blender::bke::pbvh::uv_islands::UVIsland::uv_primitives, and blender::bke::pbvh::uv_islands::UVEdge::vertices.
Referenced by blender::bke::pbvh::uv_islands::UVIslands::UVIslands().
|
static |
Definition at line 1515 of file pbvh_uv_islands.cc.
References barycentric_inside_triangle_v2(), barycentric_weights_v2(), ceil(), blender::bke::pbvh::uv_islands::MeshData::corner_tris, floor(), max_ii(), min_ii(), primitive_uv_bounds(), tile, blender::bke::pbvh::uv_islands::MeshData::uv_map, blender::bke::pbvh::uv_islands::UVIsland::uv_primitives, KernelWorkTile::x, x, rctf::xmax, rcti::xmax, rctf::xmin, rcti::xmin, KernelWorkTile::y, rctf::ymax, rcti::ymax, rctf::ymin, and rcti::ymin.
Referenced by blender::bke::pbvh::uv_islands::UVIslandsMask::add().
|
static |
Definition at line 869 of file pbvh_uv_islands.cc.
References blender::bke::pbvh::uv_islands::UVPrimitive::edges, blender::bke::pbvh::uv_islands::UVIsland::lookup_or_create(), uv_primitive_append_to_uv_edges(), uv_primitive_append_to_uv_vertices(), blender::bke::pbvh::uv_islands::UVIsland::uv_primitives, and blender::bke::pbvh::uv_islands::UVEdge::vertices.
Referenced by extend_at_vert().
|
static |
Definition at line 800 of file pbvh_uv_islands.cc.
References blender::bke::pbvh::uv_islands::MeshData::corner_tris, blender::bke::pbvh::uv_islands::MeshData::corner_verts, blender::bke::pbvh::uv_islands::UVPrimitive::edges, get_uv_loop(), blender::bke::pbvh::uv_islands::UVIsland::lookup_or_create(), primitive_get_other_uv_vertex(), blender::bke::pbvh::uv_islands::UVVertex::uv, uv_primitive_append_to_uv_edges(), uv_primitive_append_to_uv_vertices(), blender::bke::pbvh::uv_islands::UVIsland::uv_primitives, blender::bke::pbvh::uv_islands::UVVertex::vertex, and blender::bke::pbvh::uv_islands::UVEdge::vertices.
Referenced by extend_at_vert().
|
static |
Get a list containing the indices of mesh primitives (primitive of the input mesh), that surround the given uv_vertex in uv-space.
Definition at line 245 of file pbvh_uv_islands.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append_non_duplicates(), and blender::bke::pbvh::uv_islands::UVVertex::uv_edges.
Referenced by blender::bke::pbvh::uv_islands::Fan::mark_already_added_segments().
|
static |
Definition at line 1620 of file pbvh_uv_islands.cc.
References dilate_x(), dilate_y(), and tile.
Referenced by blender::bke::pbvh::uv_islands::UVIslandsMask::dilate().
|
static |
Definition at line 1572 of file pbvh_uv_islands.cc.
References blender::bke::pbvh::uv_islands::UVIslandsMask::Tile::mask, blender::bke::pbvh::uv_islands::UVIslandsMask::Tile::mask_resolution, and x.
Referenced by dilate_tile().
|
static |
Definition at line 1595 of file pbvh_uv_islands.cc.
References blender::bke::pbvh::uv_islands::UVIslandsMask::Tile::mask, blender::bke::pbvh::uv_islands::UVIslandsMask::Tile::mask_resolution, and x.
Referenced by dilate_tile().
|
static |
Definition at line 891 of file pbvh_uv_islands.cc.
References add_uv_primitive_fill(), add_uv_primitive_shared_uv_edge(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::bke::pbvh::uv_islands::Fan::best_path_between(), blender::bke::pbvh::uv_islands::UVIsland::borders, blender::bke::pbvh::uv_islands::MeshData::corner_tris, blender::bke::pbvh::uv_islands::Fan::count_edges_not_added(), blender::bke::pbvh::uv_islands::UVBorderEdge::edge, blender::bke::pbvh::uv_islands::UVBorder::edges, find_fill_primitive(), blender::bke::pbvh::uv_islands::Fan::flags, blender::bke::pbvh::uv_islands::UVEdge::get_other_uv_vertex(), blender::bke::pbvh::uv_islands::UVPrimitive::get_uv_edge(), blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), blender::bke::pbvh::uv_islands::Fan::init_uv_coordinates(), blender::bke::pbvh::uv_islands::Fan::is_manifold, blender::bke::pbvh::uv_islands::UVIsland::lookup_or_create(), blender::bke::pbvh::uv_islands::Fan::mark_already_added_segments(), primitive_get_other_uv_vertex(), blender::bke::pbvh::uv_islands::UVBorder::remove(), blender::bke::pbvh::uv_islands::UVBorderEdge::reverse_order, blender::Vector< T, InlineBufferCapacity, Allocator >::size(), blender::bke::pbvh::uv_islands::UVBorder::update_indexes(), blender::bke::pbvh::uv_islands::UVVertex::uv, blender::bke::pbvh::uv_islands::UVBorderEdge::uv_primitive, blender::bke::pbvh::uv_islands::UVIsland::uv_primitives, blender::bke::pbvh::uv_islands::UVVertex::vertex, and blender::bke::pbvh::uv_islands::UVEdge::vertices.
Referenced by blender::bke::pbvh::uv_islands::UVIsland::extend_border().
|
static |
NOTE: doesn't support weird topology where unconnected mesh primitives share the same uv island. For a accurate implementation we should use implement an uv_prim_lookup.
Definition at line 146 of file pbvh_uv_islands.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::bke::pbvh::uv_islands::MeshData::corner_tris, blender::bke::pbvh::uv_islands::MeshData::edge_to_primitive_map, INVALID_UV_ISLAND_ID, primitive_has_shared_uv_edge(), blender::bke::pbvh::uv_islands::MeshData::primitive_to_edge_map, and blender::bke::pbvh::uv_islands::MeshData::uv_map.
Referenced by mesh_data_init_primitive_uv_island_ids().
|
static |
Find a primitive that can be used to fill give corner. Will return -1 when no primitive can be found.
Definition at line 845 of file pbvh_uv_islands.cc.
References blender::bke::pbvh::uv_islands::MeshData::corner_tris, blender::bke::pbvh::uv_islands::MeshData::edge_to_primitive_map, blender::bke::pbvh::uv_islands::MeshData::edges, primitive_get_other_uv_vertex(), blender::bke::pbvh::uv_islands::MeshData::vert_to_edge_map, and blender::bke::pbvh::uv_islands::UVVertex::vertex.
Referenced by extend_at_vert().
|
static |
Definition at line 76 of file pbvh_uv_islands.cc.
References BLI_assert_unreachable, and blender::bke::pbvh::uv_islands::MeshData::corner_verts.
Referenced by add_primitive(), and add_uv_primitive_shared_uv_edge().
|
static |
Definition at line 1490 of file pbvh_uv_islands.cc.
References max_ii().
|
static |
Definition at line 195 of file pbvh_uv_islands.cc.
References mesh_data_init_edges(), mesh_data_init_primitive_uv_island_ids(), and blender::bke::pbvh::uv_islands::MeshData::uv_island_len.
Referenced by blender::bke::pbvh::uv_islands::MeshData::MeshData().
|
static |
Definition at line 103 of file pbvh_uv_islands.cc.
References blender::bke::pbvh::uv_islands::EdgeToPrimitiveMap::add(), blender::bke::pbvh::uv_islands::TriangleToEdgeMap::add(), blender::bke::pbvh::uv_islands::VertToEdgeMap::add(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_or_modify(), blender::bke::pbvh::uv_islands::MeshData::corner_tris, blender::bke::pbvh::uv_islands::MeshData::corner_verts, blender::bke::pbvh::uv_islands::MeshData::edge_to_primitive_map, blender::bke::pbvh::uv_islands::MeshData::edges, blender::Span< T >::index_range(), blender::bke::pbvh::uv_islands::MeshData::primitive_to_edge_map, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::reserve(), blender::Span< T >::size(), v2, and blender::bke::pbvh::uv_islands::MeshData::vert_to_edge_map.
Referenced by mesh_data_init().
|
static |
Definition at line 170 of file pbvh_uv_islands.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::bke::pbvh::uv_islands::MeshData::corner_tris, extract_uv_neighbors(), blender::Array< T, InlineBufferCapacity, Allocator >::fill(), blender::Span< T >::index_range(), INVALID_UV_ISLAND_ID, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), blender::Vector< T, InlineBufferCapacity, Allocator >::pop_last(), blender::Array< T, InlineBufferCapacity, Allocator >::reinitialize(), blender::Span< T >::size(), and blender::bke::pbvh::uv_islands::MeshData::uv_island_ids.
Referenced by mesh_data_init().
|
static |
Definition at line 44 of file pbvh_uv_islands.cc.
References BLI_assert, blender::bke::pbvh::uv_islands::MeshData::corner_verts, ELEM, and v2.
Referenced by add_uv_primitive_shared_uv_edge(), extend_at_vert(), and find_fill_primitive().
|
static |
Definition at line 61 of file pbvh_uv_islands.cc.
Referenced by extract_uv_neighbors().
|
static |
Definition at line 87 of file pbvh_uv_islands.cc.
References BLI_rctf_do_minmax_v(), BLI_rctf_init_minmax(), and result.
Referenced by add_uv_island().
|
static |
Definition at line 1029 of file pbvh_uv_islands.cc.
References blender::bke::pbvh::uv_islands::UVIsland::borders, and blender::bke::pbvh::uv_islands::UVIsland::uv_vertices.
Referenced by blender::bke::pbvh::uv_islands::UVIsland::extend_border().
|
static |
Definition at line 470 of file pbvh_uv_islands.cc.
References blender::bke::pbvh::uv_islands::UVBorder::edges, blender::bke::pbvh::uv_islands::UVVertex::flags, blender::bke::pbvh::uv_islands::UVVertex::is_border, blender::bke::pbvh::uv_islands::UVVertex::is_extended, blender::bke::pbvh::uv_islands::UVBorder::outside_angle(), and result.
Referenced by blender::bke::pbvh::uv_islands::UVIsland::extend_border(), and sharpest_border_corner().
|
static |
Definition at line 490 of file pbvh_uv_islands.cc.
References blender::bke::pbvh::uv_islands::UVIsland::borders, result, and sharpest_border_corner().
|
static |
Definition at line 19 of file pbvh_uv_islands.cc.
References blender::bke::pbvh::uv_islands::UVEdge::vertices.
Referenced by add_primitive(), and uv_primitive_append_to_uv_vertices().
|
static |
Definition at line 26 of file pbvh_uv_islands.cc.
References blender::bke::pbvh::uv_islands::UVPrimitive::edges.
Referenced by add_uv_primitive_fill(), and add_uv_primitive_shared_uv_edge().
|
static |
Definition at line 33 of file pbvh_uv_islands.cc.
References blender::bke::pbvh::uv_islands::UVPrimitive::edges, and uv_edge_append_to_uv_vertices().
Referenced by add_uv_primitive_fill(), and add_uv_primitive_shared_uv_edge().
|
static |
Definition at line 224 of file pbvh_uv_islands.cc.
References blender::bke::pbvh::uv_islands::UVVertex::flags, blender::bke::pbvh::uv_islands::UVVertex::is_border, and blender::bke::pbvh::uv_islands::UVVertex::is_extended.
Referenced by blender::bke::pbvh::uv_islands::UVVertex::UVVertex(), and blender::bke::pbvh::uv_islands::UVVertex::UVVertex().
|
staticconstexpr |
Definition at line 141 of file pbvh_uv_islands.cc.
Referenced by extract_uv_neighbors(), and mesh_data_init_primitive_uv_island_ids().