diff options
author | Jarrett Johnson <jarrett.johnson> | 2021-10-11 21:26:31 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2021-10-11 21:26:31 +0300 |
commit | ca8e8fd8d4747943bbff5f37b4858c7cd32daef3 (patch) | |
tree | 1e12e1625b7e9792481f4eb034d47e15de6c7cf9 /source | |
parent | d993c7b50300a588eb909e9e02b0735f2cb8f11b (diff) |
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
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/nodes/function/nodes/node_fn_align_euler_to_vector.cc | 5 |
1 files changed, 4 insertions, 1 deletions
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, |