25 lines
1.0 KiB
C#
25 lines
1.0 KiB
C#
using System.Runtime.CompilerServices;
|
|
|
|
namespace RebootKit.Engine.Foundation {
|
|
public static class QuantizationUtility {
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
public static ushort FloatToUShort(float value, float min, float max) {
|
|
return (ushort)((value - min) / (max - min) * ushort.MaxValue);
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
public static float UShortToFloat(ushort value, float min, float max) {
|
|
return min + (value / (float)ushort.MaxValue) * (max - min);
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
public static byte FloatToByte(float value, float min, float max) {
|
|
return (byte)((value - min) / (max - min) * byte.MaxValue);
|
|
}
|
|
|
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
public static float ByteToFloat(byte value, float min, float max) {
|
|
return min + (value / (float)byte.MaxValue) * (max - min);
|
|
}
|
|
}
|
|
} |