public Serializable2DFloatArray Flip()
        {
            var ret = new Serializable2DFloatArray(Height, Width);

            for (var u = 0; u < Width; ++u)
            {
                for (var v = 0; v < Height; ++v)
                {
                    ret[v, u] = this[u, v];
                }
            }
            return(ret);
        }
        public Serializable2DFloatArray Select(int x, int z, int width, int height)
        {
            if (x + width > Width || z + height > Height)
            {
                throw new IndexOutOfRangeException();
            }
            var result = new Serializable2DFloatArray(width, height);

            for (var u = x; u < x + width; ++u)
            {
                for (var v = z; v < z + height; ++v)
                {
                    result[u - x, v - z] = this[u, v];
                }
            }
            return(result);
        }