Browse Source

Most shapes are working

Frytek 5 years ago
parent
commit
0bc8d6c32a

+ 5 - 1
PixiEditorDotNetCore3/Models/Tools/ShapeTool.cs

@@ -119,10 +119,14 @@ namespace PixiEditor.Models.Tools
             {
                 return new DoubleCords(new Coordinates(startingCords.X, currentCoordinates.Y), new Coordinates(currentCoordinates.X, startingCords.Y));
             }
-            else
+            else if(startingCords.X > currentCoordinates.X && startingCords.Y <= currentCoordinates.Y)
             {
                 return new DoubleCords(new Coordinates(currentCoordinates.X, startingCords.Y), new Coordinates(startingCords.X, currentCoordinates.Y));
             }
+            else
+            {
+                return new DoubleCords(startingCords, secondCoordinates);
+            }
         }
     }
 }

+ 3 - 3
PixiEditorDotNetCore3/Models/Tools/Tools/BrightnessTool.cs

@@ -15,11 +15,11 @@ namespace PixiEditor.Models.Tools.Tools
 
         public override BitmapPixelChanges Use(Layer layer, Coordinates[] coordinates, Color color, int toolSize)
         {
-            if(Mouse.LeftButton == MouseButtonState.Pressed)
+            if(Keyboard.IsKeyDown(Key.LeftCtrl))
             {
-                return ChangeBrightness(layer, coordinates[0], toolSize, LightenFactor);
-            }
                 return ChangeBrightness(layer, coordinates[0], toolSize, DarkenFactor);
+            }
+                return ChangeBrightness(layer, coordinates[0], toolSize, LightenFactor);
         }       
 
         private BitmapPixelChanges ChangeBrightness(Layer layer, Coordinates coordinates, int toolSize, float correctionFactor)

+ 5 - 5
PixiEditorDotNetCore3/Models/Tools/Tools/CircleTool.cs

@@ -10,14 +10,14 @@ namespace PixiEditor.Models.Tools.Tools
         public override ToolType ToolType => ToolType.Circle;
 
         public override BitmapPixelChanges Use(Layer layer, Coordinates[] coordinates, Color color, int toolSize)
-        {
-            CreateCircle(coordinates, color, toolSize);
-            return new BitmapPixelChanges();
+        {
+
+            return BitmapPixelChanges.FromSingleColoredArray(CreateCircle(coordinates, toolSize), color);
         }
 
-        public void CreateCircle(Coordinates[] coordinates, Color color, int size)
+        public Coordinates[] CreateCircle(Coordinates[] coordinates, int size)
         {
-            
+            return System.Array.Empty<Coordinates>();
         }
 
         

+ 3 - 2
PixiEditorDotNetCore3/Models/Tools/Tools/RectangleTool.cs

@@ -25,12 +25,13 @@ namespace PixiEditor.Models.Tools.Tools
         private Coordinates[] CalculateRectanglePoints(DoubleCords coordinates, bool filled)
         {
             List<Coordinates> finalCoordinates = new List<Coordinates>();
-            for (int i = coordinates.Coords1.X; i < coordinates.Coords2.X; i++)
+
+            for (int i = coordinates.Coords1.X; i < coordinates.Coords2.X + 1; i++)
             {
                 finalCoordinates.Add(new Coordinates(i, coordinates.Coords1.Y));
                 finalCoordinates.Add(new Coordinates(i, coordinates.Coords2.Y));
             }
-            for (int i = coordinates.Coords1.Y; i < coordinates.Coords2.Y + 1; i++)
+            for (int i = coordinates.Coords1.Y + 1; i <= coordinates.Coords2.Y - 1; i++)
             {
                 finalCoordinates.Add(new Coordinates(coordinates.Coords1.X, i));
                 finalCoordinates.Add(new Coordinates(coordinates.Coords2.X, i));

+ 1 - 1
PixiEditorDotNetCore3/Views/MainDrawingPanel.xaml

@@ -9,7 +9,7 @@
              xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
              mc:Ignorable="d" 
              d:DesignHeight="450" d:DesignWidth="800" x:Name="mainDrawingPanel">
-    <xctk:Zoombox IsAnimated="False" Name="Zoombox" KeepContentInBounds="True" Loaded="Zoombox_Loaded" ZoomModifiers="None" >
+    <xctk:Zoombox IsAnimated="False" Name="Zoombox" KeepContentInBounds="True" Loaded="Zoombox_Loaded" DragModifiers="Shift" ZoomModifiers="None" >
         <i:Interaction.Triggers>
             <i:EventTrigger EventName="MouseMove">
                 <i:InvokeCommandAction Command="{Binding MouseMoveCommand, ElementName=mainDrawingPanel, Mode=OneWay}"/>

+ 1 - 0
PixiEditorDotNetCore3/Views/MainDrawingPanel.xaml.cs

@@ -92,6 +92,7 @@ namespace PixiEditor.Views
         {
             if(CenterOnStart == true)
             {
+                var dragKeys = new Xceed.Wpf.Toolkit.Core.Input.KeyModifierCollection();
                 ((Zoombox)sender).CenterContent();
             }
         }

+ 20 - 0
PixiEditorTests/ModelsTests/PositionTests/CoordinatesCalculatorTests.cs

@@ -0,0 +1,20 @@
+using NUnit.Framework;
+using PixiEditor.Models.Position;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace PixiEditorTests.ModelsTests.PositionTests
+{
+    [TestFixture]
+    public class CoordinatesCalculatorTests
+    {
+        [TestCase(5,5, 1)]
+        public void TestCenterOfThickness(int x1, int y1, int thickness)
+        {
+            CoordinatesCalculator.CalculateThicknessCenter(new Coordinates(x1, y1), thickness);
+            
+        }
+
+    }
+}