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:
parent
b81f1b8cf1
commit
c4e5a7d59a
Notes:
blender-bot
2023-02-14 05:43:04 +01:00
Referenced by issue #98258, GPencil: Double vertices after simplify with short sample length
|
@ -1 +1 @@
|
|||
Subproject commit fb1eac2ec80c0adee69990a5386b74a5bd4ca00c
|
||||
Subproject commit 647c85462d87c3a9d3a189d28d72d1bd93f4d4a8
|
|
@ -1 +1 @@
|
|||
Subproject commit 7025cd28ede25eb44208722f842e35b10325c6cc
|
||||
Subproject commit d936e4c01fa263a71a7d0665628ae621283b15ee
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 53b7c02a062c3d6ec6b38ce670836321b4e78fab
|
||||
Subproject commit ccc8fceb6bd83ffbf6e5207247fb8f76fc47a5b6
|
Loading…
Reference in New Issue