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:
parent
2d7957727c
commit
5b1ec08f04
Notes:
blender-bot
2023-02-13 16:58:08 +01:00
Referenced by issue #93546, Weirdly filled non-cyclic curve
|
@ -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];
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue