ShapeTool.cs 1.7 KB

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