public void UpdateValues(byte[] baseValues)
 {
     this.size      = Mathf.RoundToInt(Mathf.Sqrt((float)baseValues.Length));
     this.levels    = Mathf.RoundToInt(Mathf.Log((float)this.size, 2f)) + 1;
     this.values    = new ByteMap[this.levels];
     this.values[0] = new ByteMap(this.size, baseValues, 1);
     for (int level = 1; level < this.levels; ++level)
     {
         ByteMap byteMap1 = this.values[level - 1];
         ByteMap byteMap2 = this.values[level] = this.CreateLevel(level);
         for (int index1 = 0; index1 < byteMap2.Size; ++index1)
         {
             for (int index2 = 0; index2 < byteMap2.Size; ++index2)
             {
                 byteMap2[index2, index1] = byteMap1[2 * index2, 2 * index1] + byteMap1[2 * index2 + 1, 2 * index1] + byteMap1[2 * index2, 2 * index1 + 1] + byteMap1[2 * index2 + 1, 2 * index1 + 1];
             }
         }
     }
 }
示例#2
0
 public void UpdateValues(byte[] baseValues)
 {
     size      = Mathf.RoundToInt(Mathf.Sqrt(baseValues.Length));
     levels    = Mathf.RoundToInt(Mathf.Log(size, 2f)) + 1;
     values    = new ByteMap[levels];
     values[0] = new ByteMap(size, baseValues);
     for (int i = 1; i < levels; i++)
     {
         ByteMap byteMap  = values[i - 1];
         ByteMap byteMap2 = (values[i] = CreateLevel(i));
         for (int j = 0; j < byteMap2.Size; j++)
         {
             for (int k = 0; k < byteMap2.Size; k++)
             {
                 byteMap2[k, j] = byteMap[2 * k, 2 * j] + byteMap[2 * k + 1, 2 * j] + byteMap[2 * k, 2 * j + 1] + byteMap[2 * k + 1, 2 * j + 1];
             }
         }
     }
 }
 public void UpdateValues(byte[] baseValues)
 {
     this.size      = Mathf.RoundToInt(Mathf.Sqrt((float)((int)baseValues.Length)));
     this.levels    = Mathf.RoundToInt(Mathf.Log((float)this.size, 2f)) + 1;
     this.values    = new ByteMap[this.levels];
     this.values[0] = new ByteMap(this.size, baseValues, 1);
     for (int i = 1; i < this.levels; i++)
     {
         ByteMap   byteMap      = this.values[i - 1];
         ByteMap[] byteMapArray = this.values;
         ByteMap   byteMap1     = this.CreateLevel(i);
         ByteMap   byteMap2     = byteMap1;
         byteMapArray[i] = byteMap1;
         ByteMap item = byteMap2;
         for (int j = 0; j < item.Size; j++)
         {
             for (int k = 0; k < item.Size; k++)
             {
                 item[k, j] = byteMap[2 * k, 2 * j] + byteMap[2 * k + 1, 2 * j] + byteMap[2 * k, 2 * j + 1] + byteMap[2 * k + 1, 2 * j + 1];
             }
         }
     }
 }