Исправления в нормализации дуальных кватернионов и позиционирования с помощью дуальных кватернионов

This commit is contained in:
Andrey Pokidov 2026-03-18 20:23:50 +07:00
parent 24d37be75d
commit a57f13f4a9
9 changed files with 206 additions and 170 deletions

View file

@ -94,7 +94,7 @@ inline void bgc_fp32_slerp3_get_phase_turn(BGC_FP32_Turn3* turn, const BGC_FP32_
BGC_FP32_Quaternion q;
bgc_fp32_quaternion_multiply_by_real(&q, &slerp->_cosine_weight, cosine);
bgc_fp32_quaternion_multiply_by_real_number(&q, &slerp->_cosine_weight, cosine);
bgc_fp32_quaternion_add_scaled(&q, &q, &slerp->_sine_weight, sine);
bgc_fp32_turn3_set_quaternion(turn, &q);
@ -108,7 +108,7 @@ inline void bgc_fp64_slerp3_get_phase_turn(BGC_FP64_Turn3* turn, const BGC_FP64_
BGC_FP64_Quaternion q;
bgc_fp64_quaternion_multiply_by_real(&q, &slerp->_cosine_weight, cosine);
bgc_fp64_quaternion_multiply_by_real_number(&q, &slerp->_cosine_weight, cosine);
bgc_fp64_quaternion_add_scaled(&q, &q, &slerp->_sine_weight, sine);
bgc_fp64_turn3_set_quaternion(turn, &q);
@ -124,7 +124,7 @@ inline void bgc_fp32_slerp3_get_phase_rotation_matrix(BGC_FP32_Matrix3x3* rotati
BGC_FP32_Quaternion q;
bgc_fp32_quaternion_multiply_by_real(&q, &slerp->_cosine_weight, cosine);
bgc_fp32_quaternion_multiply_by_real_number(&q, &slerp->_cosine_weight, cosine);
bgc_fp32_quaternion_add_scaled(&q, &q, &slerp->_sine_weight, sine);
bgc_fp32_quaternion_get_rotation_matrix(rotation_matrix, &q);
@ -138,7 +138,7 @@ inline void bgc_fp64_slerp3_get_phase_rotation_matrix(BGC_FP64_Matrix3x3* rotati
BGC_FP64_Quaternion q;
bgc_fp64_quaternion_multiply_by_real(&q, &slerp->_cosine_weight, cosine);
bgc_fp64_quaternion_multiply_by_real_number(&q, &slerp->_cosine_weight, cosine);
bgc_fp64_quaternion_add_scaled(&q, &q, &slerp->_sine_weight, sine);
bgc_fp64_quaternion_get_rotation_matrix(rotation_matrix, &q);
@ -154,7 +154,7 @@ inline void bgc_fp32_slerp3_get_phase_reverse_matrix(BGC_FP32_Matrix3x3* reverse
BGC_FP32_Quaternion q;
bgc_fp32_quaternion_multiply_by_real(&q, &slerp->_cosine_weight, cosine);
bgc_fp32_quaternion_multiply_by_real_number(&q, &slerp->_cosine_weight, cosine);
bgc_fp32_quaternion_add_scaled(&q, &q, &slerp->_sine_weight, sine);
bgc_fp32_quaternion_get_reverse_matrix(reverse_matrix, &q);
@ -168,7 +168,7 @@ inline void bgc_fp64_slerp3_get_phase_reverse_matrix(BGC_FP64_Matrix3x3* reverse
BGC_FP64_Quaternion q;
bgc_fp64_quaternion_multiply_by_real(&q, &slerp->_cosine_weight, cosine);
bgc_fp64_quaternion_multiply_by_real_number(&q, &slerp->_cosine_weight, cosine);
bgc_fp64_quaternion_add_scaled(&q, &q, &slerp->_sine_weight, sine);
bgc_fp64_quaternion_get_reverse_matrix(reverse_matrix, &q);
@ -184,7 +184,7 @@ inline void bgc_fp32_slerp3_get_phase_both_matrices(BGC_FP32_Matrix3x3* rotation
BGC_FP32_Quaternion q;
bgc_fp32_quaternion_multiply_by_real(&q, &slerp->_cosine_weight, cosine);
bgc_fp32_quaternion_multiply_by_real_number(&q, &slerp->_cosine_weight, cosine);
bgc_fp32_quaternion_add_scaled(&q, &q, &slerp->_sine_weight, sine);
bgc_fp32_quaternion_get_both_matrices(rotation_matrix, reverse_matrix, &q);
@ -198,7 +198,7 @@ inline void bgc_fp64_slerp3_get_phase_both_matrices(BGC_FP64_Matrix3x3* rotation
BGC_FP64_Quaternion q;
bgc_fp64_quaternion_multiply_by_real(&q, &slerp->_cosine_weight, cosine);
bgc_fp64_quaternion_multiply_by_real_number(&q, &slerp->_cosine_weight, cosine);
bgc_fp64_quaternion_add_scaled(&q, &q, &slerp->_sine_weight, sine);
bgc_fp64_quaternion_get_both_matrices(rotation_matrix, reverse_matrix, &q);