/// <summary> /// Sorts out all vertices form the relevantVertices list which /// aren't hit directly by a ray from the IRayTracer. /// </summary> public void SortOutUnhittedVertices(IRayTracer tracer) { for (int i = RelevantVertices.Count - 1; i >= 0; i--) { if (!tracer.CreateRay(GetRelevantVertexPosition(i))) { RelevantVertices.Remove(RelevantVertices[i]); } } }
public void SortOutUnhittedVerticesForZeroVerticesHitted_Test() { // setup SetUp(); controller.RelevantVertices = new List <int>() { 0, 1, 2 }; int expected = 0; IRayTracer rt = Substitute.For <IRayTracer>(); rt.CreateRay(controller.GetRelevantVerticePositions()[0]).Returns(false); rt.CreateRay(controller.GetRelevantVerticePositions()[1]).Returns(false); rt.CreateRay(controller.GetRelevantVerticePositions()[2]).Returns(false); // perform controller.SortOutUnhittedVertices(rt); // assert Assert.AreEqual(expected, controller.RelevantVertices.Count); }