Example #1
0
        /// <summary>
        /// Creates a flat representation of given 3D array
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="array"></param>
        /// <returns></returns>
        public static Flattened3DArray <T> MakeFrom <T>(T[,,] array)
        {
            var retVal = new Flattened3DArray <T>();

            retVal.dimensions = new int[3];
            retVal.items      = new T[array.Length];
            for (int i = 0; i < 3; i++)
            {
                retVal.dimensions[i] = array.GetLength(i);
            }
            int width  = retVal.dimensions[0];
            int height = retVal.dimensions[1];
            int depth  = retVal.dimensions[2];

            for (int x = 0; x < width; x++)
            {
                for (int y = 0; y < height; y++)
                {
                    for (int z = 0; z < depth; z++)
                    {
                        retVal.Set(array[x, y, z], x, y, z);
                    }
                }
            }
            return(retVal);
        }
Example #2
0
        /// <summary>
        /// Creates a flattened array with given dimensions
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="x">width</param>
        /// <param name="y">height</param>
        /// <param name="z">depth</param>
        /// <returns></returns>
        public static Flattened3DArray <T> New <T>(int x, int y, int z)
        {
            var retVal = new Flattened3DArray <T>();

            retVal.dimensions = new int[] { x, y, z };
            retVal.items      = new T[x * y * z];
            return(retVal);
        }
Example #3
0
 public Flattened3DArray(Flattened3DArray <T> other)
 {
     dimensions = other.dimensions;
     items      = other.items;
 }