Уменшение количества внутренних методов за счёт методов получения матрицы поворота для веросора; исправления в методах проверки матрицы поворота; добавление методов вычисления поворота (turn3) по матрице поворота 3x3
This commit is contained in:
parent
abf99a7126
commit
54c762da14
9 changed files with 448 additions and 351 deletions
|
|
@ -129,28 +129,20 @@ inline int bgc_fp64_matrix2x2_is_singular(const BGC_FP64_Matrix2x2* const matrix
|
|||
|
||||
inline int bgc_fp32_matrix2x2_is_rotation(const BGC_FP32_Matrix2x2* const matrix)
|
||||
{
|
||||
BGC_FP32_Matrix2x2 product;
|
||||
const float r1r1 = matrix->r1c1 * matrix->r1c1 + matrix->r1c2 * matrix->r1c2;
|
||||
const float r1r2 = matrix->r1c1 * matrix->r2c1 + matrix->r1c2 * matrix->r2c2;
|
||||
const float r2r2 = matrix->r2c1 * matrix->r2c1 + matrix->r2c2 * matrix->r2c2;
|
||||
|
||||
product.r1c1 = matrix->r1c1 * matrix->r1c1 + matrix->r1c2 * matrix->r2c1;
|
||||
product.r1c2 = matrix->r1c1 * matrix->r1c2 + matrix->r1c2 * matrix->r2c2;
|
||||
|
||||
product.r2c1 = matrix->r2c1 * matrix->r1c1 + matrix->r2c2 * matrix->r2c1;
|
||||
product.r2c2 = matrix->r2c1 * matrix->r1c2 + matrix->r2c2 * matrix->r2c2;
|
||||
|
||||
return bgc_fp32_matrix2x2_is_identity(&product);
|
||||
return bgc_fp32_is_square_unit(r1r1) && bgc_fp32_is_square_unit(r2r2) && bgc_fp32_is_zero(r1r2);
|
||||
}
|
||||
|
||||
inline int bgc_fp64_matrix2x2_is_rotation(const BGC_FP64_Matrix2x2* const matrix)
|
||||
{
|
||||
BGC_FP64_Matrix2x2 product;
|
||||
const double r1r1 = matrix->r1c1 * matrix->r1c1 + matrix->r1c2 * matrix->r1c2;
|
||||
const double r1r2 = matrix->r1c1 * matrix->r2c1 + matrix->r1c2 * matrix->r2c2;
|
||||
const double r2r2 = matrix->r2c1 * matrix->r2c1 + matrix->r2c2 * matrix->r2c2;
|
||||
|
||||
product.r1c1 = matrix->r1c1 * matrix->r1c1 + matrix->r1c2 * matrix->r2c1;
|
||||
product.r1c2 = matrix->r1c1 * matrix->r1c2 + matrix->r1c2 * matrix->r2c2;
|
||||
|
||||
product.r2c1 = matrix->r2c1 * matrix->r1c1 + matrix->r2c2 * matrix->r2c1;
|
||||
product.r2c2 = matrix->r2c1 * matrix->r1c2 + matrix->r2c2 * matrix->r2c2;
|
||||
|
||||
return bgc_fp64_matrix2x2_is_identity(&product);
|
||||
return bgc_fp64_is_square_unit(r1r1) && bgc_fp64_is_square_unit(r2r2) && bgc_fp64_is_zero(r1r2);
|
||||
}
|
||||
|
||||
// ==================== Copy ==================== //
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue