Реорганизация проекта: перенос определения всех типов в один файл, перегруппировка функций в файлах

This commit is contained in:
Andrey Pokidov 2026-02-12 10:35:03 +07:00
parent c7d9263154
commit 053af33444
45 changed files with 1001 additions and 980 deletions

View file

@ -1,18 +1,9 @@
#ifndef _BGC_DUAL_VECTOR3_H_INCLUDED_
#define _BGC_DUAL_VECTOR3_H_INCLUDED_
#include "./types.h"
#include "./vector3.h"
// =================== Types ==================== //
typedef struct {
BGC_FP32_Vector3 real, dual;
} BGC_FP32_DualVector3;
typedef struct {
BGC_FP64_Vector3 real, dual;
} BGC_FP64_DualVector3;
// =================== Reset ==================== //
inline void bgc_fp32_dual_vector3_reset(BGC_FP32_DualVector3* vector)
@ -147,14 +138,14 @@ inline void bgc_fp64_dual_vector3_subtract(BGC_FP64_DualVector3* difference, con
inline void bgc_fp32_dual_vector3_multiply(BGC_FP32_DualVector3* product, const BGC_FP32_DualVector3* multiplicand, const float multiplier)
{
bgc_fp32_vector3_multiply(&product->real, &multiplicand->real, multiplier);
bgc_fp32_vector3_multiply(&product->dual, &multiplicand->dual, multiplier);
bgc_fp32_vector3_multiply_by_real(&product->real, &multiplicand->real, multiplier);
bgc_fp32_vector3_multiply_by_real(&product->dual, &multiplicand->dual, multiplier);
}
inline void bgc_fp64_dual_vector3_multiply(BGC_FP64_DualVector3* product, const BGC_FP64_DualVector3* multiplicand, const double multiplier)
{
bgc_fp64_vector3_multiply(&product->real, &multiplicand->real, multiplier);
bgc_fp64_vector3_multiply(&product->dual, &multiplicand->dual, multiplier);
bgc_fp64_vector3_multiply_by_real(&product->real, &multiplicand->real, multiplier);
bgc_fp64_vector3_multiply_by_real(&product->dual, &multiplicand->dual, multiplier);
}
// =================== Divide =================== //
@ -167,8 +158,8 @@ inline int bgc_fp32_dual_vector3_divide(BGC_FP32_DualVector3* quotient, const BG
const float multiplier = 1.0f / divisor;
bgc_fp32_vector3_multiply(&quotient->real, &dividend->real, multiplier);
bgc_fp32_vector3_multiply(&quotient->dual, &dividend->dual, multiplier);
bgc_fp32_vector3_multiply_by_real(&quotient->real, &dividend->real, multiplier);
bgc_fp32_vector3_multiply_by_real(&quotient->dual, &dividend->dual, multiplier);
return BGC_SUCCESS;
}
@ -181,8 +172,8 @@ inline int bgc_fp64_dual_vector3_divide(BGC_FP64_DualVector3* quotient, const BG
const double multiplier = 1.0 / divisor;
bgc_fp64_vector3_multiply(&quotient->real, &dividend->real, multiplier);
bgc_fp64_vector3_multiply(&quotient->dual, &dividend->dual, multiplier);
bgc_fp64_vector3_multiply_by_real(&quotient->real, &dividend->real, multiplier);
bgc_fp64_vector3_multiply_by_real(&quotient->dual, &dividend->dual, multiplier);
return BGC_SUCCESS;
}