ShapeTool.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Windows.Media;
  5. namespace PixiEditorDotNetCore3.Models.Tools
  6. {
  7. public abstract class ShapeTool : Tool
  8. {
  9. public override abstract ToolType ToolType { get; }
  10. public ShapeTool()
  11. {
  12. ExecutesItself = true;
  13. }
  14. public abstract override BitmapPixelChanges Use(Layer layer, Coordinates startingCoords, Color color, int toolSize);
  15. protected DoubleCords CalculateCoordinatesForShapeRotation(Coordinates startingCords)
  16. {
  17. Coordinates currentCoordinates = MousePositionConverter.CurrentCoordinates;
  18. if (startingCords.X > currentCoordinates.X && startingCords.Y > currentCoordinates.Y)
  19. {
  20. return new DoubleCords(new Coordinates(currentCoordinates.X, currentCoordinates.Y), new Coordinates(startingCords.X, startingCords.Y));
  21. }
  22. else if (startingCords.X < currentCoordinates.X && startingCords.Y < currentCoordinates.Y)
  23. {
  24. return new DoubleCords(new Coordinates(startingCords.X, startingCords.Y), new Coordinates(currentCoordinates.X, currentCoordinates.Y));
  25. }
  26. else if (startingCords.Y > currentCoordinates.Y)
  27. {
  28. return new DoubleCords(new Coordinates(startingCords.X, currentCoordinates.Y), new Coordinates(currentCoordinates.X, startingCords.Y));
  29. }
  30. else
  31. {
  32. return new DoubleCords(new Coordinates(currentCoordinates.X, startingCords.Y), new Coordinates(startingCords.X, currentCoordinates.Y));
  33. }
  34. }
  35. }
  36. }