Модульные тесты для Vector2, Vector3, Quaternion и Versor: is unit, is zero, is identity
This commit is contained in:
parent
47ba771b68
commit
2d8240265c
74 changed files with 999 additions and 348 deletions
|
@ -33,6 +33,12 @@ extern inline double bgc_quaternion_get_square_modulus_fp64(const BgcQuaternionF
|
|||
extern inline float bgc_quaternion_get_modulus_fp32(const BgcQuaternionFP32* quaternion);
|
||||
extern inline double bgc_quaternion_get_modulus_fp64(const BgcQuaternionFP64* quaternion);
|
||||
|
||||
extern inline int bgc_quaternion_is_zero_fp32(const BgcQuaternionFP32* quaternion);
|
||||
extern inline int bgc_quaternion_is_zero_fp64(const BgcQuaternionFP64* quaternion);
|
||||
|
||||
extern inline int bgc_quaternion_is_unit_fp32(const BgcQuaternionFP32* quaternion);
|
||||
extern inline int bgc_quaternion_is_unit_fp64(const BgcQuaternionFP64* quaternion);
|
||||
|
||||
extern inline int bgc_quaternion_normalize_fp32(BgcQuaternionFP32* quaternion);
|
||||
extern inline int bgc_quaternion_normalize_fp64(BgcQuaternionFP64* quaternion);
|
||||
|
||||
|
|
|
@ -219,6 +219,30 @@ inline double bgc_quaternion_get_modulus_fp64(const BgcQuaternionFP64* quaternio
|
|||
return sqrt(bgc_quaternion_get_square_modulus_fp64(quaternion));
|
||||
}
|
||||
|
||||
// ================== Is Zero =================== //
|
||||
|
||||
inline int bgc_quaternion_is_zero_fp32(const BgcQuaternionFP32* quaternion)
|
||||
{
|
||||
return bgc_quaternion_get_square_modulus_fp32(quaternion) <= BGC_SQUARE_EPSYLON_FP32;
|
||||
}
|
||||
|
||||
inline int bgc_quaternion_is_zero_fp64(const BgcQuaternionFP64* quaternion)
|
||||
{
|
||||
return bgc_quaternion_get_square_modulus_fp64(quaternion) <= BGC_SQUARE_EPSYLON_FP64;
|
||||
}
|
||||
|
||||
// ================== Is Unit =================== //
|
||||
|
||||
inline int bgc_quaternion_is_unit_fp32(const BgcQuaternionFP32* quaternion)
|
||||
{
|
||||
return bgc_is_sqare_value_unit_fp32(bgc_quaternion_get_square_modulus_fp32(quaternion));
|
||||
}
|
||||
|
||||
inline int bgc_quaternion_is_unit_fp64(const BgcQuaternionFP64* quaternion)
|
||||
{
|
||||
return bgc_is_sqare_value_unit_fp64(bgc_quaternion_get_square_modulus_fp64(quaternion));
|
||||
}
|
||||
|
||||
// =============== Normalization ================ //
|
||||
|
||||
inline int bgc_quaternion_normalize_fp32(BgcQuaternionFP32* quaternion)
|
||||
|
|
|
@ -25,8 +25,8 @@ extern inline void bgc_versor_set_turn_fp64(const BgcVector3FP32* axis, const do
|
|||
extern inline void bgc_versor_set_rotation_fp32(const BgcRotation3FP32* rotation, BgcVersorFP32* result);
|
||||
extern inline void bgc_versor_set_rotation_fp64(const BgcRotation3FP64* rotation, BgcVersorFP64* result);
|
||||
|
||||
extern inline int bgc_versor_is_idle_fp32(const BgcVersorFP32* versor);
|
||||
extern inline int bgc_versor_is_idle_fp64(const BgcVersorFP64* versor);
|
||||
extern inline int bgc_versor_is_identity_fp32(const BgcVersorFP32* versor);
|
||||
extern inline int bgc_versor_is_identity_fp64(const BgcVersorFP64* versor);
|
||||
|
||||
extern inline void bgc_versor_convert_fp64_to_fp32(const BgcVersorFP64* versor, BgcVersorFP32* result);
|
||||
extern inline void bgc_versor_convert_fp32_to_fp64(const BgcVersorFP32* versor, BgcVersorFP64* result);
|
||||
|
|
|
@ -194,12 +194,12 @@ inline void bgc_versor_set_rotation_fp64(const BgcRotation3FP64* rotation, BgcVe
|
|||
|
||||
// ================= Comparison ================= //
|
||||
|
||||
inline int bgc_versor_is_idle_fp32(const BgcVersorFP32* versor)
|
||||
inline int bgc_versor_is_identity_fp32(const BgcVersorFP32* versor)
|
||||
{
|
||||
return 1.0f - BGC_EPSYLON_FP32 <= versor->s0 || versor->s0 <= -(1.0 - BGC_EPSYLON_FP32);
|
||||
}
|
||||
|
||||
inline int bgc_versor_is_idle_fp64(const BgcVersorFP64* versor)
|
||||
inline int bgc_versor_is_identity_fp64(const BgcVersorFP64* versor)
|
||||
{
|
||||
return 1.0 - BGC_EPSYLON_FP64 <= versor->s0 || versor->s0 <= -(1.0 - BGC_EPSYLON_FP64);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue