Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ReinterpretCast.cs
Go to the documentation of this file.
2
3namespace ReLogic.Utilities;
4
5public static class ReinterpretCast
6{
7 [StructLayout(LayoutKind.Explicit)]
8 private struct IntFloat
9 {
10 [FieldOffset(0)]
11 public readonly int IntValue;
12
13 [FieldOffset(0)]
14 public readonly float FloatValue;
15
16 public IntFloat(int value)
17 {
18 FloatValue = 0f;
19 IntValue = value;
20 }
21
22 public IntFloat(float value)
23 {
24 IntValue = 0;
25 FloatValue = value;
26 }
27 }
28
29 [StructLayout(LayoutKind.Explicit)]
30 private struct UIntFloat
31 {
32 [FieldOffset(0)]
33 public readonly uint UIntValue;
34
35 [FieldOffset(0)]
36 public readonly float FloatValue;
37
38 public UIntFloat(uint value)
39 {
40 FloatValue = 0f;
41 UIntValue = value;
42 }
43
44 public UIntFloat(float value)
45 {
46 UIntValue = 0u;
47 FloatValue = value;
48 }
49 }
50
51 public static float UIntAsFloat(uint value)
52 {
53 return new UIntFloat(value).FloatValue;
54 }
55
56 public static float IntAsFloat(int value)
57 {
58 return new IntFloat(value).FloatValue;
59 }
60
61 public static uint FloatAsUInt(float value)
62 {
63 return new UIntFloat(value).UIntValue;
64 }
65
66 public static int FloatAsInt(float value)
67 {
68 return new IntFloat(value).IntValue;
69 }
70}
static float UIntAsFloat(uint value)
static float IntAsFloat(int value)
static int FloatAsInt(float value)
static uint FloatAsUInt(float value)