public List <Point3d> GeoGetAllPoint()
        {
            List <Point3d> points = new List <Point3d>();

            for (int z = 0; z < Resolution; z++)
            {
                for (int y = 0; y < Resolution; y++)
                {
                    for (int x = 0; x < Resolution; x++)
                    {
                        MarchingPoint currentPoint = MarchingPoints[x, y, z];
                        points.Add(MarchingPoints[x, y, z].point);
                    }
                }
            }
            return(points);
        }
        public MarchingVertices(double area, int resolution)
        {
            CubeSize   = area / (resolution - 1);
            Resolution = resolution;

            MarchingPoints = new MarchingPoint[Resolution, Resolution, Resolution];

            for (int z = 0; z < Resolution; z++)
            {
                for (int y = 0; y < Resolution; y++)
                {
                    for (int x = 0; x < Resolution; x++)
                    {
                        MarchingPoints[x, y, z] =
                            new MarchingPoint(x * CubeSize, y * CubeSize, z * CubeSize);
                    }
                }
            }
        }