optimize simplex equality
							parent
							
								
									2dca5f716c
								
							
						
					
					
						commit
						d553c2e213
					
				|  | @ -1,5 +1,4 @@ | |||
| using System.Linq; | ||||
| using System.Collections.Generic; | ||||
| using System.Collections.Generic; | ||||
| using System.Numerics; | ||||
| using MoonTools.Core.Structs; | ||||
| using System; | ||||
|  | @ -80,11 +79,15 @@ namespace MoonTools.Core.Bonk | |||
| 
 | ||||
|         public bool Equals(Simplex2D other) | ||||
|         { | ||||
|             var q = from a in Vertices | ||||
|                     join b in other.Vertices on a equals b | ||||
|                     select a; | ||||
|             if (Count != other.Count) { return false; } | ||||
| 
 | ||||
|             return Count == other.Count && q.Count() == Count; | ||||
|             return | ||||
|                 (A == other.A && B == other.B && C == other.C) || | ||||
|                 (A == other.A && B == other.C && C == other.B) || | ||||
|                 (A == other.B && B == other.A && C == other.C) || | ||||
|                 (A == other.B && B == other.C && C == other.A) || | ||||
|                 (A == other.C && B == other.A && C == other.B) || | ||||
|                 (A == other.C && B == other.B && C == other.A); | ||||
|         } | ||||
| 
 | ||||
|         public override int GetHashCode() | ||||
|  |  | |||
|  | @ -455,14 +455,26 @@ namespace Tests | |||
|             public void TwoSimplexEquals() | ||||
|             { | ||||
|                 var simplexA = new Simplex2D(Vector2.One, Vector2.Zero, Vector2.UnitX); | ||||
| 
 | ||||
|                 var simplexB = new Simplex2D(Vector2.One, Vector2.Zero, Vector2.UnitX); | ||||
| 
 | ||||
|                 simplexA.Equals(simplexB).Should().BeTrue(); | ||||
| 
 | ||||
|                 var simplexC = new Simplex2D(Vector2.One, Vector2.Zero, Vector2.UnitX); | ||||
|                 var simplexD = new Simplex2D(Vector2.Zero, Vector2.One, Vector2.UnitX); | ||||
|                 var simplexC = new Simplex2D(Vector2.Zero, Vector2.One, Vector2.UnitX); | ||||
| 
 | ||||
|                 simplexC.Equals(simplexD).Should().BeTrue(); | ||||
|                 simplexA.Equals(simplexC).Should().BeTrue(); | ||||
| 
 | ||||
|                 var simplexD = new Simplex2D(Vector2.UnitX, Vector2.Zero, Vector2.One); | ||||
| 
 | ||||
|                 simplexA.Equals(simplexD).Should().BeTrue(); | ||||
| 
 | ||||
|                 var simplexE = new Simplex2D(Vector2.One, Vector2.UnitX, Vector2.Zero); | ||||
| 
 | ||||
|                 simplexA.Equals(simplexE).Should().BeTrue(); | ||||
| 
 | ||||
|                 var simplexF = new Simplex2D(Vector2.Zero, Vector2.UnitX, Vector2.One); | ||||
| 
 | ||||
|                 simplexA.Equals(simplexF).Should().BeTrue(); | ||||
|             } | ||||
| 
 | ||||
|             [Test] | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue