private void TestCompoundBodyContainsPoint(CompoundBody compoundBody, double radius) { foreach (var part in compoundBody.Parts) { Assert.IsTrue(compoundBody.ContainsPoint(part.Position)); Assert.IsFalse(compoundBody.ContainsPoint(part.Position.CreatePoint(dx: radius))); Assert.IsFalse(compoundBody.ContainsPoint(part.Position.CreatePoint(dy: radius))); Assert.IsFalse(compoundBody.ContainsPoint(part.Position.CreatePoint(dz: radius))); } }
private static void AssertCompoundBodyWithSinglePart_Contains_IsEquivalentToItsPartContains(Body part) { var random = new Random(123123); var compound = new CompoundBody(new List <Body> { part }); var compound2 = new CompoundBody(new List <Body> { compound }); for (int i = 0; i < 1000; i++) { var p = new Vector3( random.NextDouble() * 20 - 10, random.NextDouble() * 20 - 10, random.NextDouble() * 20 - 10); Assert.AreEqual(part.ContainsPoint(p), compound.ContainsPoint(p)); Assert.AreEqual(part.ContainsPoint(p), compound2.ContainsPoint(p)); } }