Example #1
0
        public void TestTraceRay_NotNullHitInfo_WithObjectsInTheSceneWithHitWithLights()
        {
            //Arrange
            sceneTestInstance = new SceneTestInstance(winFrame);
            sceneTestInstance.SetValue(2);

            Point3D  lightPos   = new Point3D(100);
            ColorRGB lightColor = new ColorRGB(1, 0, 0);

            sceneTestInstance.AddLight(new Light(lightPos, lightColor));

            Point3D  testPoint = new Point3D(0, -100, 0);
            Vector3D normal    = new Vector3D(0, 1, 0);
            Plane    planeTest = new Plane(testPoint, normal);

            planeTest.SetMaterial(new Chalk(new ColorRGB(1, 0, 0)));
            sceneTestInstance.AddObject(planeTest);

            Vector3D rayDirection = new Vector3D(-0.6, -0.8, -0.99);
            Point3D  rayOrigin    = new Point3D(0, 30, 300);
            Ray      testRay      = new Ray(rayOrigin, rayDirection);

            testTracer = new Tracer(sceneTestInstance);
            //Act
            ColorRGB colorResult = testTracer.TraceRay(testRay);

            //Assert
            Assert.IsFalse(sceneTestInstance.GetBackgroundColor().Equals(colorResult));
        }
Example #2
0
        public void TestCalculateShade_HasHitTrue()
        {
            //Arrange
            SceneTestInstance sceneTestInstance = new SceneTestInstance(winFrame);

            sceneTestInstance.SetValue(2);

            Point3D  lightPos   = new Point3D(100);
            ColorRGB lightColor = new ColorRGB(1, 0, 0);

            sceneTestInstance.AddLight(new Light(lightPos, lightColor));

            Point3D  testPoint = new Point3D(0, -100, 0);
            Vector3D normal    = new Vector3D(0, 1, 0);
            Plane    planeTest = new Plane(testPoint, normal);

            planeTest.SetMaterial(new Chalk(new ColorRGB(1, 0, 0)));
            sceneTestInstance.AddObject(planeTest);

            Tracer testTracer = new Tracer(sceneTestInstance);

            sceneTestInstance.SetTracer(testTracer);

            Mirror mirror = new Mirror();

            hitInfo.hasHit = true;
            //Act
            ColorRGB color = mirror.CalculateShade(hitInfo, sceneTestInstance);

            //Assert
            Assert.IsFalse(color.Equals(sceneTestInstance.GetBackgroundColor()));
        }
Example #3
0
        public void TestTraceRay_NotNullHitInfo_AndNoObjectsInTheScene()
        {
            //Arrange
            sceneTestInstance = new SceneTestInstance(winFrame);
            sceneTestInstance.SetValue(2);
            Point3D  zeroOrigin = new Point3D(0);
            Vector3D zeroVector = new Vector3D(0);
            Ray      testRay    = new Ray(zeroOrigin, zeroVector);

            testTracer = new Tracer(sceneTestInstance);
            //Act
            ColorRGB colorResult = testTracer.TraceRay(testRay);

            Assert.IsTrue(sceneTestInstance.GetBackgroundColor().Equals(colorResult));
        }
Example #4
0
        public void TestTraceRay_NotNullHitInfo_WithObjectsInTheSceneWithoutHit()
        {
            //Arrange
            sceneTestInstance = new SceneTestInstance(winFrame);
            sceneTestInstance.SetValue(2);

            Point3D  testPoint = new Point3D(0, -100, 0);
            Vector3D normal    = new Vector3D(0, 1, 0);
            Plane    planeTest = new Plane(testPoint, normal);

            sceneTestInstance.AddObject(planeTest);
            Point3D  zeroOrigin = new Point3D(0);
            Vector3D zeroVector = new Vector3D(0);
            Ray      testRay    = new Ray(zeroOrigin, zeroVector);

            testTracer = new Tracer(sceneTestInstance);
            //Act
            ColorRGB colorResult = testTracer.TraceRay(testRay);

            //Assert
            Assert.IsTrue(sceneTestInstance.GetBackgroundColor().Equals(colorResult));
        }