Удаление combite3 функций, изменение названий параметров функицй combine и exclude

This commit is contained in:
Andrey Pokidov 2026-04-03 15:10:57 +07:00
parent 54c762da14
commit 5425206401
10 changed files with 277 additions and 220 deletions

View file

@ -280,41 +280,41 @@ inline void bgc_fp64_rigid_pose3_get_reverse_pose(BGC_FP64_RigidPose3* const rev
// ================== Combine =================== //
inline void bgc_fp32_rigid_pose3_combine(BGC_FP32_RigidPose3* const combination, const BGC_FP32_RigidPose3* const first, const BGC_FP32_RigidPose3* const second)
inline void bgc_fp32_rigid_pose3_combine(BGC_FP32_RigidPose3* const combination, const BGC_FP32_RigidPose3* const external_pose, const BGC_FP32_RigidPose3* const internal_pose)
{
bgc_fp32_dual_quaternion_multiply_by_dual_quaternion(&combination->_versor, &second->_versor, &first->_versor);
bgc_fp32_dual_quaternion_multiply_by_dual_quaternion(&combination->_versor, &external_pose->_versor, &internal_pose->_versor);
_bgc_fp32_rigid_pose3_normalize(combination);
}
inline void bgc_fp64_rigid_pose3_combine(BGC_FP64_RigidPose3* const combination, const BGC_FP64_RigidPose3* const first, const BGC_FP64_RigidPose3* const second)
inline void bgc_fp64_rigid_pose3_combine(BGC_FP64_RigidPose3* const combination, const BGC_FP64_RigidPose3* const external_pose, const BGC_FP64_RigidPose3* const internal_pose)
{
bgc_fp64_dual_quaternion_multiply_by_dual_quaternion(&combination->_versor, &second->_versor, &first->_versor);
bgc_fp64_dual_quaternion_multiply_by_dual_quaternion(&combination->_versor, &external_pose->_versor, &internal_pose->_versor);
_bgc_fp64_rigid_pose3_normalize(combination);
}
// ================== Exclude =================== //
inline void bgc_fp32_rigid_pose3_exclude(BGC_FP32_RigidPose3* const difference, const BGC_FP32_RigidPose3* const base, const BGC_FP32_RigidPose3* const excludant)
inline void bgc_fp32_rigid_pose3_exclude(BGC_FP32_RigidPose3* const difference, const BGC_FP32_RigidPose3* const pose, const BGC_FP32_RigidPose3* const excludant)
{
BGC_FP32_Quaternion dual_part1, dual_part2;
bgc_fp32_quaternion_multiply_by_conjugate(&dual_part1, &base->_versor.real_part, &excludant->_versor.dual_part);
bgc_fp32_quaternion_multiply_by_conjugate(&dual_part2, &base->_versor.dual_part, &excludant->_versor.real_part);
bgc_fp32_quaternion_multiply_by_conjugate(&dual_part1, &pose->_versor.real_part, &excludant->_versor.dual_part);
bgc_fp32_quaternion_multiply_by_conjugate(&dual_part2, &pose->_versor.dual_part, &excludant->_versor.real_part);
bgc_fp32_quaternion_multiply_by_conjugate(&difference->_versor.real_part, &base->_versor.real_part, &excludant->_versor.real_part);
bgc_fp32_quaternion_multiply_by_conjugate(&difference->_versor.real_part, &pose->_versor.real_part, &excludant->_versor.real_part);
bgc_fp32_quaternion_add(&difference->_versor.dual_part, &dual_part1, &dual_part2);
_bgc_fp32_rigid_pose3_normalize(difference);
}
inline void bgc_fp64_rigid_pose3_exclude(BGC_FP64_RigidPose3* const difference, const BGC_FP64_RigidPose3* const base, const BGC_FP64_RigidPose3* const excludant)
inline void bgc_fp64_rigid_pose3_exclude(BGC_FP64_RigidPose3* const difference, const BGC_FP64_RigidPose3* const pose, const BGC_FP64_RigidPose3* const excludant)
{
BGC_FP64_Quaternion dual_part1, dual_part2;
bgc_fp64_quaternion_multiply_by_conjugate(&dual_part1, &base->_versor.real_part, &excludant->_versor.dual_part);
bgc_fp64_quaternion_multiply_by_conjugate(&dual_part2, &base->_versor.dual_part, &excludant->_versor.real_part);
bgc_fp64_quaternion_multiply_by_conjugate(&dual_part1, &pose->_versor.real_part, &excludant->_versor.dual_part);
bgc_fp64_quaternion_multiply_by_conjugate(&dual_part2, &pose->_versor.dual_part, &excludant->_versor.real_part);
bgc_fp64_quaternion_multiply_by_conjugate(&difference->_versor.real_part, &base->_versor.real_part, &excludant->_versor.real_part);
bgc_fp64_quaternion_multiply_by_conjugate(&difference->_versor.real_part, &pose->_versor.real_part, &excludant->_versor.real_part);
bgc_fp64_quaternion_add(&difference->_versor.dual_part, &dual_part1, &dual_part2);
_bgc_fp64_rigid_pose3_normalize(difference);