From a4813379f9ce26862d826cfc98d1f28e0bbe11d7 Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Mon, 2 Aug 2021 15:43:37 -0400 Subject: Fix T90042: Spline tangent calculation assert with coincident points --- source/blender/blenkernel/intern/spline_base.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender/blenkernel/intern/spline_base.cc') diff --git a/source/blender/blenkernel/intern/spline_base.cc b/source/blender/blenkernel/intern/spline_base.cc index a7caae967f6..987152f34bc 100644 --- a/source/blender/blenkernel/intern/spline_base.cc +++ b/source/blender/blenkernel/intern/spline_base.cc @@ -189,7 +189,11 @@ static float3 direction_bisect(const float3 &prev, const float3 &middle, const f const float3 dir_prev = (middle - prev).normalized(); const float3 dir_next = (next - middle).normalized(); - return (dir_prev + dir_next).normalized(); + const float3 result = (dir_prev + dir_next).normalized(); + if (UNLIKELY(result.is_zero())) { + return float3(0.0f, 0.0f, 1.0f); + } + return result; } static void calculate_tangents(Span positions, -- cgit v1.2.3