Exemplo n.º 1
0
 public void Copy(BooleanMap source)
 {
     SizeCopy(source);
     for (var y = 0; y <= source.ValueData.Size.Y - 1; y++)
     {
         for (var x = 0; x <= source.ValueData.Size.X - 1; x++)
         {
             ValueData.Value[y, x] = source.ValueData.Value[y, x];
         }
     }
 }
Exemplo n.º 2
0
 public void ExpandOneTile(BooleanMap source)
 {
     SizeCopy(source);
     for (var y = 0; y <= ValueData.Size.Y - 1; y++)
     {
         for (var x = 0; x <= source.ValueData.Size.X - 1; x++)
         {
             if (source.ValueData.Value[y, x])
             {
                 ValueData.Value[y, x] = true;
                 if (y > 0)
                 {
                     if (x > 0)
                     {
                         ValueData.Value[y - 1, x - 1] = true;
                     }
                     ValueData.Value[y - 1, x] = true;
                     if (x < source.ValueData.Size.X - 1)
                     {
                         ValueData.Value[y - 1, x + 1] = true;
                     }
                 }
                 if (x > 0)
                 {
                     ValueData.Value[y, x - 1] = true;
                 }
                 ValueData.Value[y, x] = true;
                 if (x < ValueData.Size.X - 1)
                 {
                     ValueData.Value[y, x + 1] = true;
                 }
                 if (y < ValueData.Size.Y - 1)
                 {
                     if (x > 0)
                     {
                         ValueData.Value[y + 1, x - 1] = true;
                     }
                     ValueData.Value[y + 1, x] = true;
                     if (x < ValueData.Size.X - 1)
                     {
                         ValueData.Value[y + 1, x + 1] = true;
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 3
0
 public void Combine(BooleanMap source, BooleanMap insert)
 {
     SizeCopy(source);
     for (var y = 0; y <= source.ValueData.Size.Y - 1; y++)
     {
         for (var x = 0; x <= source.ValueData.Size.X - 1; x++)
         {
             if (insert.ValueData.Value[y, x])
             {
                 ValueData.Value[y, x] = true;
             }
             else
             {
                 ValueData.Value[y, x] = source.ValueData.Value[y, x];
             }
         }
     }
 }
Exemplo n.º 4
0
 public void Remove(BooleanMap source, BooleanMap remove)
 {
     SizeCopy(source);
     for (var y = 0; y <= source.ValueData.Size.Y - 1; y++)
     {
         for (var x = 0; x <= source.ValueData.Size.X - 1; x++)
         {
             if (remove.ValueData.Value[y, x])
             {
                 ValueData.Value[y, x] = false;
             }
             else
             {
                 ValueData.Value[y, x] = source.ValueData.Value[y, x];
             }
         }
     }
 }
Exemplo n.º 5
0
 public void Within(BooleanMap interior, BooleanMap exterior)
 {
     SizeCopy(interior);
     for (var y = 0; y <= interior.ValueData.Size.Y - 1; y++)
     {
         for (var x = 0; x <= interior.ValueData.Size.X - 1; x++)
         {
             if (interior.ValueData.Value[y, x])
             {
                 var flag = false;
                 if (y > 0)
                 {
                     if (x > 0)
                     {
                         if (!exterior.ValueData.Value[y - 1, x - 1])
                         {
                             flag = true;
                         }
                     }
                     if (!exterior.ValueData.Value[y - 1, x])
                     {
                         flag = true;
                     }
                     if (x < interior.ValueData.Size.X - 1)
                     {
                         if (!exterior.ValueData.Value[y - 1, x + 1])
                         {
                             flag = true;
                         }
                     }
                 }
                 if (x > 0)
                 {
                     if (!exterior.ValueData.Value[y, x - 1])
                     {
                         flag = true;
                     }
                 }
                 if (!exterior.ValueData.Value[y, x])
                 {
                     flag = true;
                 }
                 if (x < interior.ValueData.Size.X - 1)
                 {
                     if (!exterior.ValueData.Value[y, x + 1])
                     {
                         flag = true;
                     }
                 }
                 if (y < interior.ValueData.Size.Y - 1)
                 {
                     if (x > 0)
                     {
                         if (!exterior.ValueData.Value[y + 1, x - 1])
                         {
                             flag = true;
                         }
                     }
                     if (!exterior.ValueData.Value[y + 1, x])
                     {
                         flag = true;
                     }
                     if (x < interior.ValueData.Size.X - 1)
                     {
                         if (!exterior.ValueData.Value[y + 1, x + 1])
                         {
                             flag = true;
                         }
                     }
                 }
                 ValueData.Value[y, x] = !flag;
             }
         }
     }
 }
Exemplo n.º 6
0
 public void SizeCopy(BooleanMap source)
 {
     ValueData.Size.X = source.ValueData.Size.X;
     ValueData.Size.Y = source.ValueData.Size.Y;
     ValueData.Value  = new bool[ValueData.Size.Y, ValueData.Size.X];
 }