示例#1
0
        private void CopyData(TileDataArray src, TileDataArray dst)
        {
            int minX = Mathf.Min(src.Extents.X, dst.Extents.X);
            int minY = Mathf.Min(src.Extents.Y, dst.Extents.Y);
            int minZ = Mathf.Min(src.Extents.Z, dst.Extents.Z);

            for (int y = 0; y < minY; ++y)
            {
                for (int z = 0; z < minZ; ++z)
                {
                    for (int x = 0; x < minX; ++x)
                    {
                        dst[x, y, z] = src[x, y, z];
                    }
                }
            }
        }
示例#2
0
        public void ApplyDataResize()
        {
            dataResize.ClampSize();

            if (Data != null)
            {
                if (!dataResize.DoesSizeMatch(data.Extents))
                {
                    var newData = new TileDataArray(dataResize.CreateExtents());
                    CopyData(Data, newData);
                    data = newData;
                }
            }
            else
            {
                var e = dataResize.CreateExtents();
                data = new TileDataArray(e);
            }
        }