Example #1
0
 /// <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);
    }