Добавление функций определения поворотов (versor) между направлениями и базисами

This commit is contained in:
Andrey Pokidov 2025-06-04 23:47:55 +07:00
parent e6a94ab8d9
commit 2a4d5522d3
12 changed files with 784 additions and 287 deletions

View file

@ -44,6 +44,62 @@ inline void bgc_vector2_set_values_fp64(const double x1, const double x2, BgcVec
destination->x2 = x2;
}
// ================= Directions ================= //
inline int bgc_vector2_get_direction_fp32(const int direction, BgcVector2FP32* vector)
{
switch (direction) {
case BGC_DIRECTION_X1:
vector->x1 = 1.0f;
vector->x2 = 0.0f;
return 1;
case BGC_DIRECTION_X2:
vector->x1 = 0.0f;
vector->x2 = 1.0f;
return 1;
case -BGC_DIRECTION_X1:
vector->x1 = -1.0f;
vector->x2 = 0.0f;
return 1;
case -BGC_DIRECTION_X2:
vector->x1 = 0.0f;
vector->x2 = -1.0f;
return 1;
}
return 0;
}
inline int bgc_vector2_get_direction_fp64(const int direction, BgcVector2FP64* vector)
{
switch (direction) {
case BGC_DIRECTION_X1:
vector->x1 = 1.0;
vector->x2 = 0.0;
return 1;
case BGC_DIRECTION_X2:
vector->x1 = 0.0;
vector->x2 = 1.0;
return 1;
case -BGC_DIRECTION_X1:
vector->x1 = -1.0;
vector->x2 = 0.0;
return 1;
case -BGC_DIRECTION_X2:
vector->x1 = 0.0;
vector->x2 = -1.0;
return 1;
}
return 0;
}
// ================== Modulus =================== //
inline float bgc_vector2_get_square_modulus_fp32(const BgcVector2FP32* vector)