57 void add(
const int edge_i,
const int v1,
const int v2)
59 edges_of_vert_[v1].append(edge_i);
60 edges_of_vert_[
v2].append(edge_i);
64 return edges_of_vert_[vert_i];
78 void add(
const int primitive_i,
const int edge_i)
80 primitives_of_edge_[edge_i].append(primitive_i);
84 return primitives_of_edge_[edge_i];
100 std::copy(edges.begin(), edges.end(), edges_of_triangle_[tri_i].
begin());
104 return edges_of_triangle_[tri_i];
173 bool has_same_uv_vertices(
const UVEdge &other)
const;
245 float2 uv(
float factor,
float min_uv_distance);
316 const short island_index);
380 void dilate(
int max_iterations);
ATTR_WARN_UNUSED_RESULT const BMVert * v2
void reinitialize(const int64_t new_size)
Span< int > operator[](const int edge_i) const
EdgeToPrimitiveMap(const int edges_num)
void add(const int primitive_i, const int edge_i)
EdgeToPrimitiveMap()=delete
void add(const Span< int > edges, const int tri_i)
Span< int > operator[](const int tri_i) const
TriangleToEdgeMap()=delete
TriangleToEdgeMap(const int edges_num)
void add(const int edge_i, const int v1, const int v2)
VertToEdgeMap(const int verts_num)
Span< int > operator[](const int vert_i) const
unsigned __int64 uint64_t
VertToEdgeMap vert_to_edge_map
OffsetIndices< int > faces
TriangleToEdgeMap primitive_to_edge_map
Span< float3 > vert_positions
EdgeToPrimitiveMap edge_to_primitive_map
Array< int > uv_island_ids
MeshData(OffsetIndices< int > faces, Span< int3 > corner_tris, Span< int > corner_verts, Span< float2 > uv_map, Span< float3 > vert_positions)
bool connected_in_mesh() const
float2 uv(float factor, float min_uv_distance)
UVBorderCorner(UVBorderEdge *first, UVBorderEdge *second, float angle)
UVBorderEdge(UVEdge *edge, UVPrimitive *uv_primitive)
UVPrimitive * uv_primitive
UVVertex * get_uv_vertex(int index)
const UVVertex * get_other_uv_vertex() const
float outside_angle(const UVBorderEdge &edge) const
static std::optional< UVBorder > extract_from_edges(Vector< UVBorderEdge > &edges)
void update_indexes(uint64_t border_index)
void remove(int64_t index)
Vector< UVBorderEdge > edges
bool is_border_edge() const
Vector< UVPrimitive *, 2 > uv_primitives
bool has_same_vertices(const int2 &edge) const
bool has_shared_edge(Span< float2 > uv_map, const int loop_1, const int loop_2) const
std::array< UVVertex *, 2 > vertices
UVVertex * get_other_uv_vertex(const int vertex_index)
VectorList< UVPrimitive > uv_primitives
Vector< UVBorder > borders
VectorList< UVVertex > uv_vertices
Map< int64_t, Vector< UVVertex * > > uv_vertex_lookup
void print_debug(const MeshData &mesh_data) const
bool has_shared_edge(const UVPrimitive &primitive) const
void extend_border(const MeshData &mesh_data, const UVIslandsMask &mask, const short island_index)
VectorList< UVEdge > uv_edges
UVVertex * lookup_or_create(const UVVertex &vertex)
UVVertex * lookup(const UVVertex &vertex)
Tile(float2 udim_offset, ushort2 tile_resolution)
bool is_masked(const uint16_t island_index, const float2 uv) const
bool contains(const float2 uv) const
float get_pixel_size_in_uv_space() const
void dilate(int max_iterations)
void add(const MeshData &mesh_data, const UVIslands &islands)
const Tile * find_tile(const float2 uv) const
bool is_masked(const uint16_t island_index, const float2 uv) const
void add_tile(float2 udim_offset, ushort2 resolution)
UVIslands(const MeshData &mesh_data)
void extend_borders(const MeshData &mesh_data, const UVIslandsMask &islands_mask)
Vector< UVIsland > islands
void print_debug(const MeshData &mesh_data) const
Vector< std::pair< UVEdge *, UVEdge * > > shared_edges(UVPrimitive &other)
UVPrimitive(const int primitive_i)
UVEdge * get_uv_edge(const float2 uv1, const float2 uv2) const
bool has_shared_edge(const UVPrimitive &other) const
Vector< UVEdge *, 3 > edges
UVBorder extract_border() const
const UVVertex * get_other_uv_vertex(const UVVertex *v1, const UVVertex *v2) const
bool contains_uv_vertex(const UVVertex *uv_vertex) const
const UVVertex * get_uv_vertex(const MeshData &mesh_data, const uint8_t mesh_vert_index) const
Vector< UVEdge * > uv_edges
struct blender::bke::pbvh::uv_islands::UVVertex::@96 flags