[Bf-blender-cvs] [1b7e01fcd0c] temp-T97352-3d-texturing-seam-bleeding-b2: Fix incorrect border update when wrapping around the list of edges.
Jeroen Bakker
noreply at git.blender.org
Wed Jun 15 17:24:32 CEST 2022
Commit: 1b7e01fcd0c9e0b41c83c8a4849eef70c31ee37a
Author: Jeroen Bakker
Date: Wed Jun 15 17:15:50 2022 +0200
Branches: temp-T97352-3d-texturing-seam-bleeding-b2
https://developer.blender.org/rB1b7e01fcd0c9e0b41c83c8a4849eef70c31ee37a
Fix incorrect border update when wrapping around the list of edges.
===================================================================
M source/blender/blenkernel/intern/uv_islands.cc
===================================================================
diff --git a/source/blender/blenkernel/intern/uv_islands.cc b/source/blender/blenkernel/intern/uv_islands.cc
index ebc2248634b..f03d123fb37 100644
--- a/source/blender/blenkernel/intern/uv_islands.cc
+++ b/source/blender/blenkernel/intern/uv_islands.cc
@@ -257,13 +257,21 @@ static MeshPrimitive *find_fill_border(const MeshVertex &v1,
const MeshVertex &v2,
const MeshVertex &v3)
{
+ printf("find primitive containing (%lld,%lld,%lld)\n", v1.v, v2.v, v3.v);
for (MeshEdge *edge : v1.edges) {
for (MeshPrimitive *primitive : edge->primitives) {
+ printf("- try primitive %lld containing (%lld,%lld,%lld)\n",
+ primitive->index,
+ primitive->vertices[0].vertex->v,
+ primitive->vertices[1].vertex->v,
+ primitive->vertices[2].vertex->v);
if (primitive->has_vertex(v1) && primitive->has_vertex(v2) && primitive->has_vertex(v3)) {
+ printf("- found primitive\n");
return primitive;
}
}
}
+ printf("- No primitive found\n");
return nullptr;
}
/**
@@ -461,13 +469,17 @@ static void extend_at_vert(UVIsland &island, UVBorderCorner &corner, const MeshD
}
int border_insert = corner.first->index;
- int border_next = corner.second->index;
border.remove(border_insert);
- if (border_next != 0) {
+
+ int border_next = corner.second->index;
+ if (border_next < border_insert) {
+ border_insert--;
+ }
+ else {
border_next--;
}
border.remove(border_next);
- border_insert = min_ii(border_insert, border.edges.size() - 1);
+
border.edges.insert(border_insert, new_border_edges);
border.update_indexes(border_index);
@@ -507,6 +519,7 @@ void UVIsland::extend_border(const UVIslandsMask &mask,
if (num_iterations == 1) {
printf("Last iteration\n");
}
+ validate_border();
std::optional<UVBorderCorner> extension_corner = sharpest_border_corner(*this);
if (!extension_corner.has_value()) {
break;
More information about the Bf-blender-cvs
mailing list