public void TotalMissBack() { var r1 = RectangularPrismFactory.Make(new Size3(2, 1, 2), new Vector3(0, 0, -2), Color.White); var r2 = RectangularPrismFactory.Make(new Size3(2, 1, 2), new Vector3(0, 0, 0), Color.White); var result = r1.OverlapWith(r2, PrismBounceAxis.Z); assertResultType(result, ResultType.TotalMiss); }
public void MixedRight() { var r1 = RectangularPrismFactory.Make(new Size3(4, 1, 4), new Vector3(3, 0, 0), Color.White); var r2 = RectangularPrismFactory.Make(new Size3(4, 1, 4), new Vector3(0, 0, 0), Color.White); var result = r1.OverlapWith(r2, PrismBounceAxis.X); assertResultType(result, ResultType.Mixed); result.Do( perfect => { }, totalMiss => { }, mixed => { Assert.That(mixed.Missed.Size.X, Is.EqualTo(3)); Assert.That(mixed.Missed.Position.X, Is.EqualTo(3.5f)); Assert.That(mixed.Landed.Size.X, Is.EqualTo(1)); Assert.That(mixed.Landed.Position.X, Is.EqualTo(1.5f)); }); }
public void MixedFront() { var r1 = RectangularPrismFactory.Make(new Size3(4, 1, 4), new Vector3(0, 0, 1), Color.White); var r2 = RectangularPrismFactory.Make(new Size3(4, 1, 4), new Vector3(0, 0, 0), Color.White); var result = r1.OverlapWith(r2, PrismBounceAxis.Z); assertResultType(result, ResultType.Mixed); result.Do( perfect => { }, totalMiss => { }, mixed => { Assert.That(mixed.Missed.Size.Z, Is.EqualTo(1f), "Missed.Size.Z"); Assert.That(mixed.Missed.Position.Z, Is.EqualTo(2.5f), "Missed.Position.Z"); Assert.That(mixed.Landed.Size.Z, Is.EqualTo(3f), "Landed.Size.Z"); Assert.That(mixed.Landed.Position.Z, Is.EqualTo(0.5f), "Landed.Position.Z"); }); }