Пример #1
0
        public static Mesh3 Chuck(params object[] o)
        {
            Mesh3 mesh = new Mesh3();
            int v0 = mesh.AddVertex(0, 0, 0);
            int v1 = mesh.AddVertex(40, 0, 0);
            int v2 = mesh.AddVertex(40, 15, 0);
            int v3 = mesh.AddVertex(0, 15, 0);
            int v4 = mesh.AddVertex(90, 0, 0);
            int v5 = mesh.AddVertex(90, 30, 0);
            int v6 = mesh.AddVertex(40, 30, 0);
            int v7 = mesh.AddVertex(110, 0, 0);
            int v8 = mesh.AddVertex(110, 45, 0);
            int v9 = mesh.AddVertex(90, 45, 0);

            int v12 = mesh.AddVertex(90, 45, -30);
            int v13 = mesh.AddVertex(90, 30, -30);
            int v14 = mesh.AddVertex(40, 30, -30);
            int v15 = mesh.AddVertex(40, 15, -30);
            int v16 = mesh.AddVertex(0, 15, -30);

            int v17 = mesh.AddVertex(90, 0, -30);
            int v18 = mesh.AddVertex(40, 0, -30);
            int v19 = mesh.AddVertex(0, 0, -30);

            int v10 = mesh.AddVertex(110, 0, -30);
            int v11 = mesh.AddVertex(110, 45, -30);

            int v20 = mesh.AddVertex(120, 45, -20);
            int v21 = mesh.AddVertex(120, 45, -10);
            int v22 = mesh.AddVertex(120, 0, -10);
            int v23 = mesh.AddVertex(120, 0, -20);

            int n0 = mesh.AddNormal(0, 0, 1);
            int[] poly0 = { v0, v1, v2, v3 };
            int[] normal0 = { n0, n0, n0, n0 };
            mesh.AddPoly(poly0, normal0);

            int[] poly1 = { v1, v4, v5, v6 };
            mesh.AddPoly(poly1, normal0);

            int[] poly2 = { v4, v7, v8, v9 };
            mesh.AddPoly(poly2, normal0);

            int n1 = mesh.AddNormal(1, 0, 0);
            int[] poly3 = { v21, v22, v23, v20 };
            int[] normal1 = { n1, n1, n1, n1 };
            mesh.AddPoly(poly3, normal1);

            int n3 = mesh.AddNormal(0, 1, 0);
            int[] poly4 = { v9, v8, v11, v12 };
            int[] normal3 = { n3, n3, n3, n3 };
            mesh.AddPoly(poly4, normal3);

            int[] poly5 = { v6, v5, v13, v14 };
            mesh.AddPoly(poly5, normal3);

            int[] poly6 = { v3, v2, v15, v16 };
            mesh.AddPoly(poly6, normal3);

            int n2 = mesh.AddNormal(0, 0, -1);
            int[] normal2 = { n2, n2, n2, n2 };
            int[] poly7 = { v12, v11, v10, v17 };
            mesh.AddPoly(poly7, normal2);

            int[] poly8 = { v14, v13, v17, v18 };
            mesh.AddPoly(poly8, normal2);

            int[] poly9 = { v16, v15, v18, v19 };
            mesh.AddPoly(poly9, normal2);

            int n4 = mesh.AddNormal(-1, 0, 0);
            int[] normal4 = { n4, n4, n4, n4 };
            int[] poly10 = { v9, v12, v13, v5 };
            mesh.AddPoly(poly10, normal4);

            int[] poly11 = { v6, v14, v15, v2 };
            mesh.AddPoly(poly11, normal4);

            int[] poly12 = { v0, v3, v16, v19 };
            mesh.AddPoly(poly12, normal4);

            int n5 = mesh.AddNormal(0, -1, 0);
            int[] normal5 = { n5, n5, n5, n5 };
            int[] poly13 = { v0, v19, v10, v7 };
            mesh.AddPoly(poly13, normal5);

            int[] poly14 = { v8, v7, v22, v21 };
            int n6 = mesh.AddNormal(new Vector3D(1, 0, 1).Unit());
            int[] normal6 = { n6, n6, n6, n6 };
            mesh.AddPoly(poly14, normal6);

            int[] poly15 = { v11, v20, v23, v10 };
            int n7 = mesh.AddNormal(new Vector3D(1, 0, -1).Unit());
            int[] normal7 = { n7, n7, n7, n7 };
            mesh.AddPoly(poly15, normal2);

            int[] poly16 = { v8, v21, v20, v11 };
            mesh.AddPoly(poly16, normal3);

            int[] poly17 = { v7, v10, v23, v22 };
            mesh.AddPoly(poly17, normal5);
            return mesh;
        }