Browse Source

Added tool size for brightness tool

flabbet 5 years ago
parent
commit
97f9cb0bc9

+ 13 - 4
PixiEditor/Models/Tools/Tools/BrightnessTool.cs

@@ -1,6 +1,7 @@
 using PixiEditor.Models.Colors;
 using PixiEditor.Models.Layers;
 using PixiEditor.Models.Position;
+using System.Collections.Generic;
 using System.Windows.Input;
 using System.Windows.Media;
 using System.Windows.Media.Imaging;
@@ -29,10 +30,18 @@ namespace PixiEditor.Models.Tools.Tools
 
         private BitmapPixelChanges ChangeBrightness(Layer layer, Coordinates coordinates, int toolSize, float correctionFactor)
         {
-            PenTool pen = new PenTool();
-            Color pixel = layer.LayerBitmap.GetPixel(coordinates.X, coordinates.Y);
-            Color newColor = ExColor.ChangeColorBrightness(Color.FromArgb(pixel.A,pixel.R, pixel.G, pixel.B), correctionFactor);
-            return pen.Draw(coordinates, newColor, toolSize);
+            DoubleCords centeredCoords = CoordinatesCalculator.CalculateThicknessCenter(coordinates, toolSize);
+            Coordinates[] rectangleCoordinates = CoordinatesCalculator.RectangleToCoordinates(centeredCoords.Coords1.X, centeredCoords.Coords1.Y,
+                centeredCoords.Coords2.X, centeredCoords.Coords2.Y);
+            BitmapPixelChanges changes = new BitmapPixelChanges(new Dictionary<Coordinates, Color>());
+
+            for (int i = 0; i < rectangleCoordinates.Length; i++)
+            {
+                Color pixel = layer.LayerBitmap.GetPixel(rectangleCoordinates[i].X, rectangleCoordinates[i].Y);
+                Color newColor = ExColor.ChangeColorBrightness(Color.FromArgb(pixel.A, pixel.R, pixel.G, pixel.B), correctionFactor);
+                changes.ChangedPixels.Add(new Coordinates(rectangleCoordinates[i].X, rectangleCoordinates[i].Y), newColor);
+            }
+            return changes;
         }
     }
 }

+ 24 - 9
PixiEditor/Models/Tools/Tools/LineTool.cs

@@ -1,12 +1,15 @@
 using PixiEditor.Models.Layers;
 using PixiEditor.Models.Position;
+using System;
+using System.Collections.Generic;
+using System.Linq;
 using System.Windows.Media;
-using System.Windows.Media.Imaging;
-
+
 namespace PixiEditor.Models.Tools.Tools
-{
-    public class LineTool : ShapeTool
+{
+	public class LineTool : ShapeTool
     {
+
         public override ToolType ToolType => ToolType.Line;
 
         public LineTool()
@@ -16,14 +19,26 @@ namespace PixiEditor.Models.Tools.Tools
 
         public override BitmapPixelChanges Use(Layer layer, Coordinates[] coordinates, Color color, int toolSize)
         {
-            return BitmapPixelChanges.FromSingleColoredArray(CreateLine(coordinates), color);
+            return BitmapPixelChanges.FromSingleColoredArray(CreateLine(coordinates, toolSize), color);
         }
 
-        public Coordinates[] CreateLine(Coordinates[] coordinates)
+        public Coordinates[] CreateLine(Coordinates[] coordinates, int thickness)
         {
             Coordinates startingCoordinates = coordinates[^1];
-            Coordinates latestCoordinates = coordinates[0];
+            Coordinates latestCoordinates = coordinates[0];
             return BresenhamLine(startingCoordinates.X, startingCoordinates.Y, latestCoordinates.X, latestCoordinates.Y);
-        }
-    }
+        }
+        
+
+        public Coordinates[] ThickLine(Coordinates start, Coordinates end, int thickness)
+        {
+            List<Coordinates> points = new List<Coordinates>();
+
+            Coordinates[] linePoints = BresenhamLine(start.X, start.Y, end.X, end.Y);
+
+            
+
+            return points.Distinct().ToArray();
+		}       
+	}
 }