Exemplo n.º 1
0
        public PrismMeshScene()
        {
            DefaultFloor();
            Light(1, 1, -1);

            Add(BuildPolygon(3).Scale(0.2, 0.25, 0.2).Translate(tx: -0.75, tz: 0));
            Add(BuildPolygon(4).Scale(0.2, 0.25, 0.2).Translate(tx: -0, tz: 0.75));
            Add(BuildPolygon(5).Scale(0.2, 0.25, 0.2).Translate(tx: 0.75, tz: 0.5));
            Add(BuildPolygon(6).Scale(0.2, 0.25, 0.2).Translate(tx: 0.5, tz: -0.5));

            IEnumerable <Tuple> points = new Tuple[]
            {
                Helper.CreatePoint(-3, 0, 5),
                Helper.CreatePoint(3, 0, 5),
                Helper.CreatePoint(3, 0, 3),
                Helper.CreatePoint(-1, 0, 3),
                Helper.CreatePoint(-1, 0, 1),
                Helper.CreatePoint(1, 0, 1),

                Helper.CreatePoint(1, 0, -1),
                Helper.CreatePoint(-1, 0, -1),
                Helper.CreatePoint(-1, 0, -3),
                Helper.CreatePoint(3, 0, -3),
                Helper.CreatePoint(3, 0, -5),
                Helper.CreatePoint(-3, 0, -5)
            };

            var mesh = new PrismMesh(points);
            var triangleMeshFactory = new TriangleMeshFactory(false);
            var letterE             = (triangleMeshFactory.Build(mesh).Scale(0.1).Rotate(ry: Math.PI / 4));

            letterE.Material.Pattern = new SolidPattern(Color._Blue);
            Add(letterE);
        }