1+ using System ;
2+ using System . Globalization ;
3+
4+ namespace DocSharp . Binary . Tools
5+ {
6+ public static class MathHelper
7+ {
8+ /// <summary>
9+ /// Alternative to Math.Clamp for .NET Framework / .NET Standard compatibility
10+ /// </summary>
11+ /// <param name="val"></param>
12+ /// <param name="min"></param>
13+ /// <param name="max"></param>
14+ /// <returns></returns>
15+ public static int Clamp ( int val , int min , int max )
16+ {
17+ return ( val < min ) ? min : ( val > max ) ? max : val ;
18+ }
19+
20+ /// <summary>
21+ /// Alternative to Math.Clamp for .NET Framework / .NET Standard compatibility
22+ /// </summary>
23+ /// <param name="val"></param>
24+ /// <param name="min"></param>
25+ /// <param name="max"></param>
26+ /// <returns></returns>
27+ /// <remarks>Overload for double values</remarks>
28+ public static double Clamp ( double val , double min , double max )
29+ {
30+ return ( val < min ) ? min : ( val > max ) ? max : val ;
31+ }
32+
33+ /// <summary>
34+ /// Alternative to Math.Clamp for .NET Framework / .NET Standard compatibility
35+ /// </summary>
36+ /// <param name="val"></param>
37+ /// <param name="min"></param>
38+ /// <param name="max"></param>
39+ /// <returns></returns>
40+ /// <remarks>Overload for float values</remarks>
41+ public static float Clamp ( float val , float min , float max )
42+ {
43+ return ( val < min ) ? min : ( val > max ) ? max : val ;
44+ }
45+
46+ /// <summary>
47+ /// Alternative to Math.Clamp for .NET Framework / .NET Standard compatibility
48+ /// </summary>
49+ /// <param name="val"></param>
50+ /// <param name="min"></param>
51+ /// <param name="max"></param>
52+ /// <returns></returns>
53+ /// <remarks>Overload for decimal values</remarks>
54+ public static decimal Clamp ( decimal val , decimal min , decimal max )
55+ {
56+ return ( val < min ) ? min : ( val > max ) ? max : val ;
57+ }
58+
59+ /// <summary>
60+ /// Alternative to Math.Clamp for .NET Framework / .NET Standard compatibility
61+ /// </summary>
62+ /// <param name="val"></param>
63+ /// <param name="min"></param>
64+ /// <param name="max"></param>
65+ /// <returns></returns>
66+ /// <remarks>Overload for uint values</remarks>
67+ public static uint Clamp ( uint val , uint min , uint max )
68+ {
69+ return ( val < min ) ? min : ( val > max ) ? max : val ;
70+ }
71+
72+ /// <summary>
73+ /// Alternative to Math.Clamp for .NET Framework / .NET Standard compatibility
74+ /// </summary>
75+ /// <param name="val"></param>
76+ /// <param name="min"></param>
77+ /// <param name="max"></param>
78+ /// <returns></returns>
79+ /// <remarks>Overload for long values</remarks>
80+ public static long Clamp ( long val , long min , long max )
81+ {
82+ return ( val < min ) ? min : ( val > max ) ? max : val ;
83+ }
84+
85+ /// <summary>
86+ /// Alternative to Math.Clamp for .NET Framework / .NET Standard compatibility
87+ /// </summary>
88+ /// <param name="val"></param>
89+ /// <param name="min"></param>
90+ /// <param name="max"></param>
91+ /// <returns></returns>
92+ /// <remarks>Overload for ulong values</remarks>
93+ public static ulong Clamp ( ulong val , ulong min , ulong max )
94+ {
95+ return ( val < min ) ? min : ( val > max ) ? max : val ;
96+ }
97+ }
98+ }
0 commit comments