Exemplo n.º 1
0
        public static VsObject Prism(VsPolygon3 bs, double thickness)
        {
            VsObject ret = new VsObject();
            Matrix44 m   = new Matrix44();

            ret.Add(new VsPolygon3(bs));
            m.SetTMat(0.0D, 0.0D, thickness);
            VsPolygon3 p = (VsPolygon3)bs.Transform(m);

            int n = bs.pol.NVertex();

            for (int i = 0; i < n; i++)
            {
                int j = i + 1;
                if (j >= n)
                {
                    j = 0;
                }
                Polygon3D temp = new Polygon3D();
                temp.AddVertex(new Vector3D(bs.pol.GetVertex(i)));
                temp.AddVertex(new Vector3D(p.pol.GetVertex(i)));
                temp.AddVertex(new Vector3D(p.pol.GetVertex(j)));
                temp.AddVertex(new Vector3D(bs.pol.GetVertex(j)));
                ret.Add(new VsPolygon3(temp, new Material(bs.mate)));
            }

            p.pol.Reverse();
            ret.Add(p);

            return(ret);
        }
Exemplo n.º 2
0
        public static VsObject QubeM(Material mate)
        {
            VsObject   ret = new VsObject();
            VsPolygon3 a   = SquareM(mate);
            Matrix44   m   = new Matrix44();

            m.SetTMat(0.0D, 0.0D, -0.5D);
            a = (VsPolygon3)a.Transform(m);
            ret.Add(a);
            m.SetRyMat(MathTool.DegToRad(180.0D));
            ret.Add(a.Transform(m));

            m.SetRyMat(MathTool.DegToRad(90.0D));
            ret.Add(a.Transform(m));
            m.SetRyMat(MathTool.DegToRad(-90.0D));
            ret.Add(a.Transform(m));

            m.SetRxMat(MathTool.DegToRad(90.0D));
            ret.Add(a.Transform(m));
            m.SetRxMat(MathTool.DegToRad(-90.0D));
            ret.Add(a.Transform(m));

            return(ret);
        }