mirror of
https://github.com/love2d/love.git
synced 2026-08-15 15:51:12 +02:00
Re-apply commit b0094b5: Fix BezierCurve:render to avoid adding collinear points in some situations. Resolves issue #1501.
--HG-- branch : minor
This commit is contained in:
@@ -69,11 +69,14 @@ void subdivide(vector<love::Vector2> &points, int k)
|
||||
subdivide(right, k-1);
|
||||
|
||||
// merge (right is in reversed order)
|
||||
points.resize(left.size() + right.size() - 1);
|
||||
for (size_t i = 0; i < left.size(); ++i)
|
||||
// By this point the 'left' array has a point at the end that's collinear
|
||||
// with other points. It's still needed for the subdivide calls above but we
|
||||
// can get rid of it here.
|
||||
points.resize(left.size() + right.size() - 2);
|
||||
for (size_t i = 0; i < left.size() - 1; ++i)
|
||||
points[i] = left[i];
|
||||
for (size_t i = 1; i < right.size(); ++i)
|
||||
points[i-1 + left.size()] = right[right.size() - i - 1];
|
||||
points[i-1 + left.size() - 1] = right[right.size() - i - 1];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user