Развитие SLERP для трёхмерных пространств, а также развитие дуальных чисел, векторов и кватернионов

This commit is contained in:
Andrey Pokidov 2026-02-13 20:34:11 +07:00
parent 053af33444
commit 86ea23de7d
23 changed files with 1063 additions and 830 deletions

View file

@ -60,30 +60,26 @@
<Option compilerVar="CC" />
</Unit>
<Unit filename="complex.h" />
<Unit filename="dual-number.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="dual-number.h" />
<Unit filename="dual-quaternion.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="dual-quaternion.h" />
<Unit filename="dual-scalar.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="dual-scalar.h" />
<Unit filename="dual-vector3.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="dual-vector3.h" />
<Unit filename="hg-matrix3x3.c">
<Unit filename="hmg-matrix3x3.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="hg-matrix3x3.h" />
<Unit filename="hg-vector3.c">
<Unit filename="hmg-matrix3x3.h" />
<Unit filename="hmg-vector3.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="hg-vector3.h" />
<Unit filename="matrices.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="matrices.h" />
<Unit filename="hmg-vector3.h" />
<Unit filename="matrix2x2.c">
<Option compilerVar="CC" />
</Unit>
@ -112,10 +108,10 @@
<Option compilerVar="CC" />
</Unit>
<Unit filename="quaternion.h" />
<Unit filename="slerp.c">
<Unit filename="slerp3.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="slerp.h" />
<Unit filename="slerp3.h" />
<Unit filename="turn2.c">
<Option compilerVar="CC" />
</Unit>
@ -124,6 +120,7 @@
<Option compilerVar="CC" />
</Unit>
<Unit filename="turn3.h" />
<Unit filename="types.h" />
<Unit filename="utilities.c">
<Option compilerVar="CC" />
</Unit>

View file

@ -24,9 +24,9 @@
#include "./turn2.h"
#include "./turn3.h"
#include "./slerp3.h"
#include "./position2.h"
#include "./position3.h"
#include "./slerp.h"
#endif

View file

@ -24,11 +24,11 @@
<ClInclude Include="angle.h" />
<ClInclude Include="basic-geometry.h" />
<ClInclude Include="complex.h" />
<ClInclude Include="dual-number.h" />
<ClInclude Include="dual-scalar.h" />
<ClInclude Include="dual-quaternion.h" />
<ClInclude Include="dual-vector3.h" />
<ClInclude Include="hg-matrix3x3.h" />
<ClInclude Include="hg-vector3.h" />
<ClInclude Include="hmg-matrix3x3.h" />
<ClInclude Include="hmg-vector3.h" />
<ClInclude Include="matrix2x2.h" />
<ClInclude Include="matrix2x3.h" />
<ClInclude Include="matrix3x2.h" />
@ -40,7 +40,7 @@
<ClInclude Include="turn2.h" />
<ClInclude Include="turn3.h" />
<ClInclude Include="utilities.h" />
<ClInclude Include="slerp.h" />
<ClInclude Include="slerp3.h" />
<ClInclude Include="vector2.h" />
<ClInclude Include="vector3.h" />
</ItemGroup>
@ -49,11 +49,11 @@
<ClCompile Include="affine3.c" />
<ClCompile Include="angle.c" />
<ClInclude Include="complex.c" />
<ClCompile Include="dual-number.c" />
<ClCompile Include="dual-scalar.c" />
<ClCompile Include="dual-quaternion.c" />
<ClCompile Include="dual-vector3.c" />
<ClCompile Include="hg-matrix3x3.c" />
<ClCompile Include="hg-vector3.c" />
<ClCompile Include="hmg-matrix3x3.c" />
<ClCompile Include="hmg-vector3.c" />
<ClCompile Include="position2.c" />
<ClCompile Include="position3.c" />
<ClCompile Include="turn2.c" />
@ -64,7 +64,7 @@
<ClCompile Include="matrix3x2.c" />
<ClCompile Include="matrix3x3.c" />
<ClCompile Include="quaternion.c" />
<ClCompile Include="slerp.c" />
<ClCompile Include="slerp3.c" />
<ClCompile Include="vector2.c" />
<ClCompile Include="vector3.c" />
</ItemGroup>

View file

Internal server error - Personal Git Server: Beyond coding. We Forge.

500

Internal server error

Forgejo version: 11.0.1+gitea-1.22.0

@ -1,55 +0,0 @@
#include "./dual-number.h"
extern inline void bgc_fp32_dual_number_reset(BGC_FP32_DualNumber* number);
extern inline void bgc_fp64_dual_number_reset(BGC_FP64_DualNumber* number);
extern inline void bgc_fp32_dual_number_make(BGC_FP32_DualNumber* number, const float real, const float dual);
extern inline void bgc_fp64_dual_number_make(BGC_FP64_DualNumber* number, const double real, const double dual);
extern inline void bgc_fp32_dual_number_copy(BGC_FP32_DualNumber* destination, const BGC_FP32_DualNumber* source);
extern inline void bgc_fp64_dual_number_copy(BGC_FP64_DualNumber* destination, const BGC_FP64_DualNumber* source);
extern inline void bgc_fp32_dual_number_swap(BGC_FP32_DualNumber* first, BGC_FP32_DualNumber* second);
extern inline void bgc_fp64_dual_number_swap(BGC_FP64_DualNumber* first, BGC_FP64_DualNumber* second);
extern inline void bgc_fp32_dual_number_revert(BGC_FP32_DualNumber* number);
extern inline void bgc_fp64_dual_number_revert(BGC_FP64_DualNumber* number);
extern inline void bgc_fp32_number_get_reverse(BGC_FP32_DualNumber* reverse, const BGC_FP32_DualNumber* number);
extern inline void bgc_fp64_number_get_reverse(BGC_FP64_DualNumber* reverse, const BGC_FP64_DualNumber* number);
extern inline void bgc_fp32_dual_number_conjugate(BGC_FP32_DualNumber* number);
extern inline void bgc_fp64_dual_number_conjugate(BGC_FP64_DualNumber* number);
extern inline void bgc_fp32_dual_number_get_conjugate(BGC_FP32_DualNumber* conjugate, const BGC_FP32_DualNumber* number);
extern inline void bgc_fp64_dual_number_get_conjugate(BGC_FP64_DualNumber* conjugate, const BGC_FP64_DualNumber* number);
extern inline void bgc_fp32_dual_number_add(BGC_FP32_DualNumber* sum, const BGC_FP32_DualNumber* first, const BGC_FP32_DualNumber* second);
extern inline void bgc_fp64_dual_number_add(BGC_FP64_DualNumber* sum, const BGC_FP64_DualNumber* first, const BGC_FP64_DualNumber* second);