From 39352af3f9da9caa0d21c15b3b2bd174840c309b Mon Sep 17 00:00:00 2001 From: Andrey Pokidov Date: Fri, 3 Apr 2026 21:25:22 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B2=D0=BE=D1=80=D0=BE=D1=82=D0=B0=20(turn3)=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BE=D1=81=D0=BD=D0=BE=D0=B2=D0=B5=20=D0=BC?= =?UTF-8?q?=D0=B0=D1=82=D1=80=D0=B8=D1=86=D1=8B=20=D0=BF=D0=BE=D0=B2=D0=BE?= =?UTF-8?q?=D1=80=D0=BE=D1=82=D0=B0=20(matrix3x3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- basic-geometry/turn3.c | 3 +++ basic-geometry/turn3.h | 12 ++++++++++++ 2 files changed, 15 insertions(+) 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)