Add epsilon clamp

This commit is contained in:
doylet 2025-09-15 22:55:14 +10:00
parent 8642af0b05
commit f3d0e40012
5 changed files with 12 additions and 3 deletions

View File

@ -1,4 +1,4 @@
// Generated by the DN single header generator 2025-09-12 22:05:30
// Generated by the DN single header generator 2025-09-13 19:09:12
#define DN_BASE_INC_CPP

View File

@ -1,4 +1,4 @@
// Generated by the DN single header generator 2025-09-12 22:05:29
// Generated by the DN single header generator 2025-09-13 19:09:12
#if !defined(DN_BASE_INC_H)
#define DN_BASE_INC_H

View File

@ -762,3 +762,10 @@ DN_API void DN_ASanUnpoisonMemoryRegion(void const volatile *ptr, DN_USize size)
(void)size;
#endif
}
DN_API DN_F32 DN_EpsilonClampF32(DN_F32 value, DN_F32 target, DN_F32 epsilon)
{
DN_F32 delta = DN_Abs(target - value);
DN_F32 result = (delta < epsilon) ? target : value;
return result;
}

View File

@ -489,4 +489,7 @@ DN_API DN_U64 DN_SaturateCastIntToU64 (int val);
DN_API void DN_ASanPoisonMemoryRegion (void const volatile *ptr, DN_USize size);
DN_API void DN_ASanUnpoisonMemoryRegion(void const volatile *ptr, DN_USize size);
DN_API DN_F32 DN_EpsilonClampF32 (DN_F32 value, DN_F32 target, DN_F32 epsilon);
#endif // !defined(DN_BASE_H)

View File

@ -369,5 +369,4 @@ DN_API DN_Rect DN_RectCut_Cut (DN_RectCut rec
DN_API DN_RaycastLineIntersectV2Result DN_Raycast_LineIntersectV2(DN_V2F32 origin_a, DN_V2F32 dir_a, DN_V2F32 origin_b, DN_V2F32 dir_b);
DN_API DN_V2F32 DN_Lerp_V2F32 (DN_V2F32 a, DN_F32 t, DN_V2F32 b);
DN_API DN_F32 DN_Lerp_F32 (DN_F32 a, DN_F32 t, DN_F32 b);
#endif // !defined(DN_MATH_H)