From c41f030c9ea1735e8764a231f0c13ab0b3ddee88 Mon Sep 17 00:00:00 2001 From: gamma-delta Date: Fri, 9 Aug 2024 13:54:40 -0500 Subject: [PATCH] Manually implement GetHashCode on Vector4Double and Vector4Triple This makes having many shadows in a scene MUCH more performant. --- Assets/Scripts/Mesh4D.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Assets/Scripts/Mesh4D.cs b/Assets/Scripts/Mesh4D.cs index a7be6ad..7631d1c 100644 --- a/Assets/Scripts/Mesh4D.cs +++ b/Assets/Scripts/Mesh4D.cs @@ -25,6 +25,10 @@ public Vector4Triple(Vector4 a, Vector4 b, Vector4 c) { public Vector4 a; public Vector4 b; public Vector4 c; + + public override bool Equals(object obj) => + obj is Vector4Triple r && a == r.a && b == r.b && c == r.c; + public override int GetHashCode() => System.HashCode.Combine(a, b, c); } struct Vector4Double { public Vector4Double(Vector4 a, Vector4 b) { @@ -33,6 +37,10 @@ public Vector4Double(Vector4 a, Vector4 b) { } public Vector4 a; public Vector4 b; + + public override bool Equals(object obj) => + obj is Vector4Double r && a == r.a && b == r.b; + public override int GetHashCode() => System.HashCode.Combine(a, b); } private HashSet shadowHashset = new(); private HashSet wireHashset = new();