public visualmodel_mirror(int i, int j, int k, int c, int N)
        {
            form_cube_side cube = new form_cube_side(i, j, k, c, N);

            mesh = cube.give_me_mesh();

            if (c == (int)cube_side.up)
            {
                c = (int)cube_side.down;
            }
            else

            if (c == (int)cube_side.right)
            {
                c = (int)cube_side.left;
            }

            else
            if (c == (int)cube_side.front)
            {
                c = (int)cube_side.back;
            }
            color = colors[c];

            Material        colorMaterial = new DiffuseMaterial(new Kit3DBrush(brush[c]));
            GeometryModel3D mGeometry     = new GeometryModel3D(mesh, colorMaterial);

            mGeometry.SeamSmoothing = 1.1;
            Model3DGroup group = new Model3DGroup();


            group.Children.Add(mGeometry);
            _model         = new ModelVisual3D();
            _model.Content = group;
        }
        public visualmodel_mirror(int i, int j, int k, int c, int N, int x)

        {
            form_cube_side cube = new form_cube_side(i, j, k, x, N);

            mesh = cube.give_me_mesh();

            Material        colorMaterial = new DiffuseMaterial(new Kit3DBrush(brush[c]));
            GeometryModel3D mGeometry     = new GeometryModel3D(mesh, colorMaterial);

            mGeometry.SeamSmoothing = 1.1;
            Model3DGroup group = new Model3DGroup();

            group.Children.Add(mGeometry);
            _model         = new ModelVisual3D();
            _model.Content = group;
        }
        public visualmodel(int i, int j, int k, int c, int N)
        {
            form_cube_side cube = new form_cube_side(i, j, k, c, N);

            mesh = cube.give_me_mesh();
            int col = 6;

            if ((j == N - 1) && (c == (int)cube_side.up))
            {
                col = (int)cube_side.up;
                goto After;
            }

            if ((j == 0) && (c == (int)cube_side.down))
            {
                col = (int)cube_side.down;
                goto After;
            }
            if ((i == 0) && (c == (int)cube_side.left))
            {
                col = (int)cube_side.left;
                goto After;
            }

            if ((i == N - 1) && (c == (int)cube_side.right))
            {
                col = (int)cube_side.right;
                goto After;
            }
            if ((k == 0) && (c == (int)cube_side.back))
            {
                col = (int)cube_side.back;
                goto After;
            }
            if ((k == N - 1) && (c == (int)cube_side.front))
            {
                col = (int)cube_side.front;
            }
After:
            Material colorMaterial;

            colorMaterial = new DiffuseMaterial(new Kit3DBrush(brush[col]));


            color = colors[col];

            GeometryModel3D mGeometry = new GeometryModel3D(mesh, colorMaterial);

            _geom_model = mGeometry;
            Model3DGroup group = new Model3DGroup();


            mGeometry.SeamSmoothing = 1.1;
            group.Children.Add(mGeometry);
            _model         = new ModelVisual3D();
            _model.Content = group;


            _trans_group = new Transform3DGroup();
            TranslateTransform3D trans_init = new TranslateTransform3D(0, 0, 0);

            _trans_group.Children.Add(trans_init);
            _model.Transform = _trans_group;
        }