diff --git a/basic-geometry/turn3.c b/basic-geometry/turn3.c index 98d78f5..52257ae 100644 --- a/basic-geometry/turn3.c +++ b/basic-geometry/turn3.c @@ -62,6 +62,9 @@ extern inline void bgc_fp64_turn3_exclude(BGC_FP64_Turn3* const difference, cons extern inline void bgc_fp32_turn3_get_rotation_matrix(BGC_FP32_Matrix3x3* const matrix, const BGC_FP32_Turn3* const turn); extern inline void bgc_fp64_turn3_get_rotation_matrix(BGC_FP64_Matrix3x3* const matrix, const BGC_FP64_Turn3* const turn); +extern inline int bgc_fp32_turn3_set_rotation_matrix(BGC_FP32_Turn3* const turn, const BGC_FP32_Matrix3x3* const matrix); +extern inline int bgc_fp64_turn3_set_rotation_matrix(BGC_FP64_Turn3* const turn, const BGC_FP64_Matrix3x3* const matrix); + extern inline void bgc_fp32_turn3_get_reverse_matrix(BGC_FP32_Matrix3x3* const matrix, const BGC_FP32_Turn3* const turn); extern inline void bgc_fp64_turn3_get_reverse_matrix(BGC_FP64_Matrix3x3* const matrix, const BGC_FP64_Turn3* const turn); diff --git a/basic-geometry/turn3.h b/basic-geometry/turn3.h index 5a2ca98..4dd171a 100644 --- a/basic-geometry/turn3.h +++ b/basic-geometry/turn3.h @@ -371,6 +371,18 @@ inline void bgc_fp64_turn3_get_rotation_matrix(BGC_FP64_Matrix3x3* const matrix, bgc_fp64_quaternion_get_rotation_matrix(matrix, &turn->_versor); } +// ============ Set Rotation Matrix ============= // + +inline int bgc_fp32_turn3_set_rotation_matrix(BGC_FP32_Turn3* const turn, const BGC_FP32_Matrix3x3* const matrix) +{ + return bgc_fp32_quaternion_set_rotation_matrix(&turn->_versor, matrix); +} + +inline int bgc_fp64_turn3_set_rotation_matrix(BGC_FP64_Turn3* const turn, const BGC_FP64_Matrix3x3* const matrix) +{ + return bgc_fp64_quaternion_set_rotation_matrix(&turn->_versor, matrix); +} + // ============= Get Reverse Matrix ============= // inline void bgc_fp32_turn3_get_reverse_matrix(BGC_FP32_Matrix3x3* const matrix, const BGC_FP32_Turn3* const turn)