Browse Source

Added fill for rectangle tool

Frytek 5 years ago
parent
commit
4eb8ebd0c3
1 changed files with 22 additions and 0 deletions
  1. 22 0
      PixiEditor/Models/Tools/Tools/RectangleTool.cs

+ 22 - 0
PixiEditor/Models/Tools/Tools/RectangleTool.cs

@@ -36,8 +36,30 @@ namespace PixiEditor.Models.Tools.Tools
                 finalCoordinates.Add(new Coordinates(coordinates.Coords1.X, i));
                 finalCoordinates.Add(new Coordinates(coordinates.Coords1.X, i));
                 finalCoordinates.Add(new Coordinates(coordinates.Coords2.X, i));
                 finalCoordinates.Add(new Coordinates(coordinates.Coords2.X, i));
             }
             }
+
+            if (filled)
+            {
+                finalCoordinates.AddRange(CalculatedFillForRectangle(coordinates));
+            }
             finalCoordinates = finalCoordinates.Distinct().ToList();
             finalCoordinates = finalCoordinates.Distinct().ToList();
             return finalCoordinates.ToArray();
             return finalCoordinates.ToArray();
         }
         }
+
+        private Coordinates[] CalculatedFillForRectangle(DoubleCords cords)
+        {
+            int height = cords.Coords2.Y - cords.Coords1.Y;
+            int width = cords.Coords2.X - cords.Coords1.X;
+            Coordinates[] filledCoordinates = new Coordinates[width * height];
+            int i = 0;
+            for (int y = 0; y < height; y++)
+            {
+                for (int x = 0; x < width; x++)
+                {
+                    filledCoordinates[i] = new Coordinates(cords.Coords1.X + x, cords.Coords1.Y + y);
+                    i++;
+                }
+            }
+            return filledCoordinates;
+        }
     }
     }
 }
 }