From ca8e8fd8d4747943bbff5f37b4858c7cd32daef3 Mon Sep 17 00:00:00 2001 From: Jarrett Johnson Date: Mon, 11 Oct 2021 13:26:31 -0500 Subject: Fix T92102: Issues with align euler to vector node For fixed pivots, make sure the correct pivot axis is being used. Also add continues or invalid rotations. Differential Revision: https://developer.blender.org/D12824 --- source/blender/nodes/function/nodes/node_fn_align_euler_to_vector.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/blender/nodes/function/nodes/node_fn_align_euler_to_vector.cc b/source/blender/nodes/function/nodes/node_fn_align_euler_to_vector.cc index 4c741c96bb8..ae41cdfca5a 100644 --- a/source/blender/nodes/function/nodes/node_fn_align_euler_to_vector.cc +++ b/source/blender/nodes/function/nodes/node_fn_align_euler_to_vector.cc @@ -57,6 +57,7 @@ static void align_rotations_auto_pivot(IndexMask mask, const float3 vector = vectors[i]; if (is_zero_v3(vector)) { output_rotations[i] = input_rotations[i]; + continue; } float old_rotation[3][3]; @@ -106,10 +107,12 @@ static void align_rotations_fixed_pivot(IndexMask mask, if (local_main_axis == local_pivot_axis) { /* Can't compute any meaningful rotation angle in this case. */ output_rotations[i] = input_rotations[i]; + continue; } const float3 vector = vectors[i]; if (is_zero_v3(vector)) { + output_rotations[i] = input_rotations[i]; continue; } @@ -182,7 +185,7 @@ class MF_AlignEulerToVector : public fn::MultiFunction { } else { float3 local_pivot_axis = {0.0f, 0.0f, 0.0f}; - local_pivot_axis[main_axis_mode_] = 1; + local_pivot_axis[pivot_axis_mode_ - 1] = 1; align_rotations_fixed_pivot(mask, input_rotations, vectors, -- cgit v1.2.3