Переход на версию 0.3: изменение подхода к именованию сущностей, добавление, изменение и удаление ряда функций
This commit is contained in:
parent
d33daf4e2d
commit
f7e41645fe
87 changed files with 4580 additions and 4051 deletions
|
|
@ -9,7 +9,7 @@ typedef struct {
|
|||
float x2_cos_weight, x2_sin_weight;
|
||||
float x3_cos_weight, x3_sin_weight;
|
||||
float radians;
|
||||
} BgcSlerpFP32;
|
||||
} BGC_FP32_Slerp;
|
||||
|
||||
typedef struct {
|
||||
double s0_cos_weight, s0_sin_weight;
|
||||
|
|
@ -17,9 +17,9 @@ typedef struct {
|
|||
double x2_cos_weight, x2_sin_weight;
|
||||
double x3_cos_weight, x3_sin_weight;
|
||||
double radians;
|
||||
} BgcSlerpFP64;
|
||||
} BGC_FP64_Slerp;
|
||||
|
||||
inline void bgc_slerp_reset_fp32(BgcSlerpFP32* slerp)
|
||||
inline void bgc_fp32_slerp_reset(BGC_FP32_Slerp* slerp)
|
||||
{
|
||||
slerp->s0_cos_weight = 1.0f;
|
||||
slerp->s0_sin_weight = 0.0f;
|
||||
|
|
@ -36,7 +36,7 @@ inline void bgc_slerp_reset_fp32(BgcSlerpFP32* slerp)
|
|||
slerp->radians = 0.0f;
|
||||
}
|
||||
|
||||
inline void bgc_slerp_reset_fp64(BgcSlerpFP64* slerp)
|
||||
inline void bgc_fp64_slerp_reset(BGC_FP64_Slerp* slerp)
|
||||
{
|
||||
slerp->s0_cos_weight = 1.0;
|
||||
slerp->s0_sin_weight = 0.0;
|
||||
|
|
@ -53,55 +53,55 @@ inline void bgc_slerp_reset_fp64(BgcSlerpFP64* slerp)
|
|||
slerp->radians = 0.0;
|
||||
}
|
||||
|
||||
void bgc_slerp_make_fp32(const BgcVersorFP32* start, const BgcVersorFP32* augment, BgcSlerpFP32* slerp);
|
||||
void bgc_fp32_slerp_make(const BGC_FP32_Versor* start, const BGC_FP32_Versor* augment, BGC_FP32_Slerp* slerp);
|
||||
|
||||
void bgc_slerp_make_fp64(const BgcVersorFP64* start, const BgcVersorFP64* augment, BgcSlerpFP64* slerp);
|
||||
void bgc_fp64_slerp_make(const BGC_FP64_Versor* start, const BGC_FP64_Versor* augment, BGC_FP64_Slerp* slerp);
|
||||
|
||||
inline void bgc_slerp_make_full_fp32(const BgcVersorFP32* start, const BgcVersorFP32* end, BgcSlerpFP32* slerp)
|
||||
inline void bgc_fp32_slerp_make_full(const BGC_FP32_Versor* start, const BGC_FP32_Versor* end, BGC_FP32_Slerp* slerp)
|
||||
{
|
||||
BgcVersorFP32 augment;
|
||||
BGC_FP32_Versor augment;
|
||||
|
||||
bgc_versor_exclude_fp32(end, start, &augment);
|
||||
bgc_fp32_versor_exclude(end, start, &augment);
|
||||
|
||||
bgc_slerp_make_fp32(start, &augment, slerp);
|
||||
bgc_fp32_slerp_make(start, &augment, slerp);
|
||||
}
|
||||
|
||||
inline void bgc_slerp_make_full_fp64(const BgcVersorFP64* start, const BgcVersorFP64* end, BgcSlerpFP64* slerp)
|
||||
inline void bgc_fp64_slerp_make_full(const BGC_FP64_Versor* start, const BGC_FP64_Versor* end, BGC_FP64_Slerp* slerp)
|
||||
{
|
||||
BgcVersorFP64 augment;
|
||||
BGC_FP64_Versor augment;
|
||||
|
||||
bgc_versor_exclude_fp64(end, start, &augment);
|
||||
bgc_fp64_versor_exclude(end, start, &augment);
|
||||
|
||||
bgc_slerp_make_fp64(start, &augment, slerp);
|
||||
bgc_fp64_slerp_make(start, &augment, slerp);
|
||||
}
|
||||
|
||||
inline void bgc_slerp_make_shortened_fp32(const BgcVersorFP32* start, const BgcVersorFP32* end, BgcSlerpFP32* slerp)
|
||||
inline void bgc_fp32_slerp_make_shortened(const BGC_FP32_Versor* start, const BGC_FP32_Versor* end, BGC_FP32_Slerp* slerp)
|
||||
{
|
||||
BgcVersorFP32 augment;
|
||||
BGC_FP32_Versor augment;
|
||||
|
||||
bgc_versor_exclude_fp32(end, start, &augment);
|
||||
bgc_versor_shorten_fp32(&augment);
|
||||
bgc_fp32_versor_exclude(end, start, &augment);
|
||||
bgc_fp32_versor_shorten(&augment);
|
||||
|
||||
bgc_slerp_make_fp32(start, &augment, slerp);
|
||||
bgc_fp32_slerp_make(start, &augment, slerp);
|
||||
}
|
||||
|
||||
inline void bgc_slerp_make_shortened_fp64(const BgcVersorFP64* start, const BgcVersorFP64* end, BgcSlerpFP64* slerp)
|
||||
inline void bgc_fp64_slerp_make_shortened(const BGC_FP64_Versor* start, const BGC_FP64_Versor* end, BGC_FP64_Slerp* slerp)
|
||||
{
|
||||
BgcVersorFP64 augment;
|
||||
BGC_FP64_Versor augment;
|
||||
|
||||
bgc_versor_exclude_fp64(end, start, &augment);
|
||||
bgc_versor_shorten_fp64(&augment);
|
||||
bgc_fp64_versor_exclude(end, start, &augment);
|
||||
bgc_fp64_versor_shorten(&augment);
|
||||
|
||||
bgc_slerp_make_fp64(start, &augment, slerp);
|
||||
bgc_fp64_slerp_make(start, &augment, slerp);
|
||||
}
|
||||
|
||||
inline void bgc_slerp_get_turn_for_phase_fp32(const BgcSlerpFP32* slerp, const float phase, BgcVersorFP32* result)
|
||||
inline void bgc_fp32_slerp_get_phase_versor(const BGC_FP32_Slerp* slerp, const float phase, BGC_FP32_Versor* result)
|
||||
{
|
||||
const float angle = slerp->radians * phase;
|
||||
const float cosine = cosf(angle);
|
||||
const float sine = sinf(angle);
|
||||
|
||||
bgc_versor_set_values_fp32(
|
||||
bgc_fp32_versor_make(
|
||||
slerp->s0_cos_weight * cosine + slerp->s0_sin_weight * sine,
|
||||
slerp->x1_cos_weight * cosine + slerp->x1_sin_weight * sine,
|
||||
slerp->x2_cos_weight * cosine + slerp->x2_sin_weight * sine,
|
||||
|
|
@ -110,13 +110,13 @@ inline void bgc_slerp_get_turn_for_phase_fp32(const BgcSlerpFP32* slerp, const f
|
|||
);
|
||||
}
|
||||
|
||||
inline void bgc_slerp_get_turn_for_phase_fp64(const BgcSlerpFP64* slerp, const double phase, BgcVersorFP64* result)
|
||||
inline void bgc_fp64_slerp_get_phase_versor(const BGC_FP64_Slerp* slerp, const double phase, BGC_FP64_Versor* result)
|
||||
{
|
||||
const double angle = slerp->radians * phase;
|
||||
const double cosine = cos(angle);
|
||||
const double sine = sin(angle);
|
||||
|
||||
bgc_versor_set_values_fp64(
|
||||
bgc_fp64_versor_make(
|
||||
slerp->s0_cos_weight * cosine + slerp->s0_sin_weight * sine,
|
||||
slerp->x1_cos_weight * cosine + slerp->x1_sin_weight * sine,
|
||||
slerp->x2_cos_weight * cosine + slerp->x2_sin_weight * sine,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue