Пример #1
0
        public void TestAssignTransform()
        {
            var shape = new TestAShape();

            shape.Transform = Matrix4.Translation(2, 3, 4);

            Assert.AreEqual(Matrix4.Translation(2, 3, 4), shape.Transform);
        }
Пример #2
0
        public void TestNormalTransFormedShape()
        {
            var shape = new TestAShape
            {
                Transform = Matrix4.Scaling(1, 0.5, 1) * Matrix4.RotationZ(System.Math.PI / 5)
            };

            var n = shape.Normal(Tuple.Point(0, 0.70711, -0.70711));

            Assert.AreEqual(Tuple.Vector(0, 0.97014, -0.24254), n);
        }
Пример #3
0
        public void TestNormalTranslatedShape()
        {
            var shape = new TestAShape
            {
                Transform = Matrix4.Translation(0, 1, 0)
            };

            var n = shape.Normal(Tuple.Point(0, 1.70711, -0.70711));

            Assert.AreEqual(Tuple.Vector(0, 0.70711, -0.70711), n);
        }
Пример #4
0
        public void TestIntersectTranslatedShapeRay()
        {
            var shape = new TestAShape
            {
                Transform = Matrix4.Translation(5, 0, 0)
            };
            var ray = new Ray(Tuple.Point(0, 0, -5), Tuple.Vector(0, 0, 1));

            shape.Intersect(ray);

            Assert.AreEqual(Tuple.Point(-5, 0, -5), shape.SavedRay.Origin);
            Assert.AreEqual(Tuple.Vector(0, 0, 1), shape.SavedRay.Direction);
        }
Пример #5
0
        public void TestIntersectScaledRay()
        {
            var shape = new TestAShape
            {
                Transform = Matrix4.Scaling(2, 2, 2)
            };
            var ray = new Ray(Tuple.Point(0, 0, -5), Tuple.Vector(0, 0, 1));

            shape.Intersect(ray);

            Assert.AreEqual(Tuple.Point(0, 0, -2.5), shape.SavedRay.Origin);
            Assert.AreEqual(Tuple.Vector(0, 0, 0.5), shape.SavedRay.Direction);
        }
Пример #6
0
        public void TestShapeMaterialSet()
        {
            var shape = new TestAShape();

            shape.Material.Ambient = 1;

            var mat = new Material
            {
                Ambient = 1
            };

            Assert.AreEqual(mat, shape.Material);
        }
Пример #7
0
        public void TestTransform()
        {
            var shape = new TestAShape();

            Assert.AreEqual(Matrix4.Identity, shape.Transform);
        }
Пример #8
0
        public void TestShapeMaterial()
        {
            var shape = new TestAShape();

            Assert.AreEqual(new Material(), shape.Material);
        }