From f3d0e40012c495734a4d4edc5c4a812a2af49888 Mon Sep 17 00:00:00 2001 From: doylet Date: Mon, 15 Sep 2025 22:55:14 +1000 Subject: [PATCH] Add epsilon clamp --- Single_Header/dn_single_header.cpp | 2 +- Single_Header/dn_single_header.h | 2 +- Source/Base/dn_base.cpp | 7 +++++++ Source/Base/dn_base.h | 3 +++ Source/Extra/dn_math.h | 1 - 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Single_Header/dn_single_header.cpp b/Single_Header/dn_single_header.cpp index b886c8b..024c5aa 100644 --- a/Single_Header/dn_single_header.cpp +++ b/Single_Header/dn_single_header.cpp @@ -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 diff --git a/Single_Header/dn_single_header.h b/Single_Header/dn_single_header.h index e36a12c..0dc924a 100644 --- a/Single_Header/dn_single_header.h +++ b/Single_Header/dn_single_header.h @@ -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 diff --git a/Source/Base/dn_base.cpp b/Source/Base/dn_base.cpp index f301758..6ed7f07 100644 --- a/Source/Base/dn_base.cpp +++ b/Source/Base/dn_base.cpp @@ -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; +} diff --git a/Source/Base/dn_base.h b/Source/Base/dn_base.h index e860272..9f70e7a 100644 --- a/Source/Base/dn_base.h +++ b/Source/Base/dn_base.h @@ -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) diff --git a/Source/Extra/dn_math.h b/Source/Extra/dn_math.h index 58ea872..200a412 100644 --- a/Source/Extra/dn_math.h +++ b/Source/Extra/dn_math.h @@ -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)