Уменшение количества внутренних методов за счёт методов получения матрицы поворота для веросора; исправления в методах проверки матрицы поворота; добавление методов вычисления поворота (turn3) по матрице поворота 3x3

This commit is contained in:
Andrey Pokidov 2026-04-03 02:22:11 +07:00
parent abf99a7126
commit 54c762da14
9 changed files with 448 additions and 351 deletions

View file

@ -324,24 +324,24 @@ inline void bgc_fp64_rigid_pose3_exclude(BGC_FP64_RigidPose3* const difference,
inline void bgc_fp32_rigid_pose3_get_matrix(BGC_FP32_Matrix3x3* const matrix, const BGC_FP32_RigidPose3* const pose)
{
_bgc_fp32_versor_get_rotation_matrix(matrix, &pose->_versor.real_part);
bgc_fp32_quaternion_get_rotation_matrix(matrix, &pose->_versor.real_part);
}
inline void bgc_fp64_rigid_pose3_get_matrix(BGC_FP64_Matrix3x3* const matrix, const BGC_FP64_RigidPose3* const pose)
{
_bgc_fp64_versor_get_rotation_matrix(matrix, &pose->_versor.real_part);
bgc_fp64_quaternion_get_rotation_matrix(matrix, &pose->_versor.real_part);
}
// ============= Get Reverse Matrix ============= //
inline void bgc_fp32_rigid_pose3_get_reverse_matrix(BGC_FP32_Matrix3x3* const matrix, const BGC_FP32_RigidPose3* const pose)
{
_bgc_fp32_versor_get_reverse_matrix(matrix, &pose->_versor.real_part);
bgc_fp32_quaternion_get_reverse_matrix(matrix, &pose->_versor.real_part);
}
inline void bgc_fp64_rigid_pose3_get_reverse_matrix(BGC_FP64_Matrix3x3* const matrix, const BGC_FP64_RigidPose3* const pose)
{
_bgc_fp64_versor_get_reverse_matrix(matrix, &pose->_versor.real_part);
bgc_fp64_quaternion_get_reverse_matrix(matrix, &pose->_versor.real_part);
}
// ================= Get Shift ================== //
@ -392,13 +392,13 @@ inline void bgc_fp64_rigid_pose3_get_reverse_shift(BGC_FP64_Vector3* const shift
inline void bgc_fp32_rigid_pose3_get_affine(BGC_FP32_Affine3* const affine_map, const BGC_FP32_RigidPose3* const pose)
{
_bgc_fp32_versor_get_rotation_matrix(&affine_map->distortion, &pose->_versor.real_part);
bgc_fp32_quaternion_get_rotation_matrix(&affine_map->distortion, &pose->_versor.real_part);
bgc_fp32_rigid_pose3_get_shift(&affine_map->shift, pose);
}
inline void bgc_fp64_rigid_pose3_get_affine(BGC_FP64_Affine3* const affine_map, const BGC_FP64_RigidPose3* const pose)
{
_bgc_fp64_versor_get_rotation_matrix(&affine_map->distortion, &pose->_versor.real_part);
bgc_fp64_quaternion_get_rotation_matrix(&affine_map->distortion, &pose->_versor.real_part);
bgc_fp64_rigid_pose3_get_shift(&affine_map->shift, pose);
}
@ -406,13 +406,13 @@ inline void bgc_fp64_rigid_pose3_get_affine(BGC_FP64_Affine3* const affine_map,
inline void bgc_fp32_rigid_pose3_get_reverse_affine(BGC_FP32_Affine3* const affine_map, const BGC_FP32_RigidPose3* const pose)
{
_bgc_fp32_versor_get_reverse_matrix(&affine_map->distortion, &pose->_versor.real_part);
bgc_fp32_quaternion_get_reverse_matrix(&affine_map->distortion, &pose->_versor.real_part);
bgc_fp32_rigid_pose3_get_reverse_shift(&affine_map->shift, pose);
}
inline void bgc_fp64_rigid_pose3_get_reverse_affine(BGC_FP64_Affine3* const affine_map, const BGC_FP64_RigidPose3* const pose)
{
_bgc_fp64_versor_get_reverse_matrix(&affine_map->distortion, &pose->_versor.real_part);
bgc_fp64_quaternion_get_reverse_matrix(&affine_map->distortion, &pose->_versor.real_part);
bgc_fp64_rigid_pose3_get_reverse_shift(&affine_map->shift, pose);
}