public World TriangleWorld()
        {
            var world = new World();

            world.Lights.Add(new PointLight(
                                 new RtPoint(-5, 8.9, -3),
                                 new RtColor(1, 1, 1)));

            world.Shapes.Add(new Plane()
            {
                Material = new Material
                {
                    Pattern = new CheckersPattern(new RtColor(1, 0, 0), new RtColor(0.75, 0.75, 0.75))
                    {
                        Transform = new Transform()
                                    .Scaling(0.1, 0.1, 0.1)
                    },
                    Diffuse    = 0.1,
                    Specular   = 0.9,
                    Shininess  = 300,
                    Reflective = 0.9
                }
            });

            var parser  = new ObjReader();
            var objFile = parser.ParseFile(@"./ObjFiles/teapot.obj");
            // var teapot = objFile.Mesh.Scale();

            var teapot = new Cube();

            teapot.Material = new Material
            {
                Pattern = new GradientRingPattern(new RtColor(1, 0, 0), new RtColor(0, 0, 1), new RtColor(0, 0, 1))
                {
                    Transform = new Transform()
                                .Scaling(0.1, 0.1, 0.1)
                }
            };

            teapot.Transform = new Transform()
                               .Scaling(0.5, 0.5, 0.5)
                               .RotateX(-Math.PI / 2)
                               .Translation(0, 1, 0);

            world.Shapes.Add(teapot);

            return(world);
        }