Fix #124211: FCurve generates NaNs with Vector handles

The issue here was that the left handle of the first point was calculated
incorrectly (set to the position of the point itself), which caused a
NaN when attempting to normalize a zero vector when computing extrapolation
vectors.

Pull Request: https://projects.blender.org/blender/blender/pulls/124239
This commit is contained in:
Lukas Stockner
2024-07-08 15:01:18 +02:00
committed by Lukas Stockner
parent a0869d2ca6
commit 26b6c2b94d

View File

@@ -738,7 +738,7 @@ static void curvemap_make_table(const CurveMapping *cumap, CurveMap *cuma)
/* Process middle elements */
for (int a = 0; a < bezt_totpoint; a++) {
bezt_next = (a != bezt_totpoint - 1) ? &bezt[a + 1] : bezt_post_ptr;
calchandle_curvemap(&bezt[a], (bezt_prev) ? bezt_prev : &bezt[0], bezt_next);
calchandle_curvemap(&bezt[a], bezt_prev, bezt_next);
bezt_prev = &bezt[a];
}