Fix T93546: Fill curve node ignores last point of non-cylic curves

The node is meant to consider all curves cyclic, which means that it
shouldn't account for one fewer segment on non-cyclic curves.
This commit is contained in:
Hans Goudey 2022-04-28 11:50:55 -05:00
parent 2d7957727c
commit 5b1ec08f04
Notes: blender-bot 2023-02-13 16:58:08 +01:00
Referenced by issue #93546, Weirdly filled non-cyclic curve
1 changed files with 2 additions and 4 deletions

View File

@ -48,20 +48,18 @@ static meshintersect::CDT_result<double> do_cdt(const bke::CurvesGeometry &curve
input.vert.reinitialize(curves.evaluated_points_num());
input.face.reinitialize(curves.curves_num());
VArray<bool> cyclic = curves.cyclic();
Span<float3> positions = curves.evaluated_positions();
for (const int i_curve : curves.curves_range()) {
const IndexRange points = curves.evaluated_points_for_curve(i_curve);
const int segment_size = bke::curves::curve_segment_size(points.size(), cyclic[i_curve]);
for (const int i : points) {
input.vert[i] = double2(positions[i].x, positions[i].y);
}
input.face[i_curve].resize(segment_size);
input.face[i_curve].resize(points.size());
MutableSpan<int> face_verts = input.face[i_curve];
for (const int i : IndexRange(segment_size)) {
for (const int i : face_verts.index_range()) {
face_verts[i] = points[i];
}
}