1
1

Fix T98258: Duplicated last vertex after GPencil sample.

Also fixed an unreported issue of incorrect interpolation of thickness.

Reviewed By: Aleš Jelovčan (frogstomp), Antonio Vazquez (antoniov)

Differential Revision: https://developer.blender.org/D15005
This commit is contained in:
2022-05-23 16:15:15 +08:00
committed by Bastien Montagne
parent 2d67b375a1
commit 3fe1079ecf
4 changed files with 11 additions and 6 deletions

View File

@@ -236,6 +236,7 @@ static int stroke_march_next_point(const bGPDstroke *gps,
}
else {
next_point_index = gps->totpoints - 1;
remaining_till_next = 0;
break;
}
}
@@ -263,15 +264,18 @@ static int stroke_march_next_point(const bGPDstroke *gps,
float ratio = remaining_march / remaining_till_next;
interp_v3_v3v3(result, step_start, point, ratio);
*ratio_result = ratio;
float d1 = len_v3v3(result, &gps->points[*index_from].x);
float d2 = len_v3v3(result, &gps->points[next_point_index].x);
float vratio = d1 / (d1 + d2);
*pressure = interpf(
gps->points[next_point_index].pressure, gps->points[*index_from].pressure, ratio);
gps->points[next_point_index].pressure, gps->points[*index_from].pressure, vratio);
*strength = interpf(
gps->points[next_point_index].strength, gps->points[*index_from].strength, ratio);
gps->points[next_point_index].strength, gps->points[*index_from].strength, vratio);
interp_v4_v4v4(vert_color,
gps->points[*index_from].vert_color,
gps->points[next_point_index].vert_color,
ratio);
vratio);
return next_point_index == 0 ? gps->totpoints : next_point_index;
}
@@ -320,6 +324,7 @@ static int stroke_march_next_point_no_interp(const bGPDstroke *gps,
}
else {
next_point_index = gps->totpoints - 1;
remaining_till_next = 0;
break;
}
}