SvgScale.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Drawing.Drawing2D;
  5. using System.Globalization;
  6. #pragma warning disable
  7. namespace Svg.Transforms
  8. {
  9. public sealed class SvgScale : SvgTransform
  10. {
  11. private float scaleFactorX;
  12. private float scaleFactorY;
  13. public float X
  14. {
  15. get { return this.scaleFactorX; }
  16. set { this.scaleFactorX = value; }
  17. }
  18. public float Y
  19. {
  20. get { return this.scaleFactorY; }
  21. set { this.scaleFactorY = value; }
  22. }
  23. public override System.Drawing.Drawing2D.Matrix Matrix
  24. {
  25. get
  26. {
  27. var matrix = new System.Drawing.Drawing2D.Matrix();
  28. matrix.Scale(this.X, this.Y);
  29. return matrix;
  30. }
  31. }
  32. public override string WriteToString()
  33. {
  34. if (this.X == this.Y) return string.Format(CultureInfo.InvariantCulture, "scale({0})", this.X);
  35. return string.Format(CultureInfo.InvariantCulture, "scale({0}, {1})", this.X, this.Y);
  36. }
  37. public SvgScale(float x) : this(x, x) { }
  38. public SvgScale(float x, float y)
  39. {
  40. this.scaleFactorX = x;
  41. this.scaleFactorY = y;
  42. }
  43. public override object Clone()
  44. {
  45. return new SvgScale(this.X, this.Y);
  46. }
  47. }
  48. }
  49. #pragma warning restore