summaryrefslogtreecommitdiff
path: root/Thronefall_1_57/Decompile/NGS.MeshFusionPro/BoundsHelper.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-05-19 16:05:58 +0800
committerchai <215380520@qq.com>2024-05-19 16:05:58 +0800
commit8e13e7e2874adc8982e16d1d2ed2e28d7480b45f (patch)
tree63ef85c460288891f5a593d69afeca16cba050b3 /Thronefall_1_57/Decompile/NGS.MeshFusionPro/BoundsHelper.cs
parentc5f145786f4c6d2fe4bea831dfc16e52228920a5 (diff)
+1.57
Diffstat (limited to 'Thronefall_1_57/Decompile/NGS.MeshFusionPro/BoundsHelper.cs')
-rw-r--r--Thronefall_1_57/Decompile/NGS.MeshFusionPro/BoundsHelper.cs39
1 files changed, 39 insertions, 0 deletions
diff --git a/Thronefall_1_57/Decompile/NGS.MeshFusionPro/BoundsHelper.cs b/Thronefall_1_57/Decompile/NGS.MeshFusionPro/BoundsHelper.cs
new file mode 100644
index 0000000..012a350
--- /dev/null
+++ b/Thronefall_1_57/Decompile/NGS.MeshFusionPro/BoundsHelper.cs
@@ -0,0 +1,39 @@
+using UnityEngine;
+
+namespace NGS.MeshFusionPro;
+
+public static class BoundsHelper
+{
+ public static Bounds Transform(this Bounds bounds, Matrix4x4 transform)
+ {
+ Vector3 min = bounds.min;
+ Vector3 max = bounds.max;
+ Vector4 column = transform.GetColumn(3);
+ Vector3 vector = column;
+ Vector3 vector2 = column;
+ for (int i = 0; i < 3; i++)
+ {
+ for (int j = 0; j < 3; j++)
+ {
+ float num = transform[i, j];
+ float num2 = num * min[j];
+ float num3 = num * max[j];
+ vector[i] += ((num2 < num3) ? num2 : num3);
+ vector2[i] += ((num2 < num3) ? num3 : num2);
+ }
+ }
+ Bounds result = default(Bounds);
+ result.center = transform.MultiplyPoint3x4(bounds.center);
+ result.size = vector2 - vector;
+ return result;
+ }
+
+ public static bool Contains(this Bounds bounds, Bounds target)
+ {
+ if (bounds.Contains(target.min))
+ {
+ return bounds.Contains(target.max);
+ }
+ return false;
+ }
+}