Browse Source

rename methods + extend API

af/merge-core
Anton Firszov 8 years ago
parent
commit
9183956813
  1. 78
      src/ImageSharp/Processing/AffineTransformBuilder.cs
  2. 6
      tests/ImageSharp.Tests/Drawing/DrawImageTest.cs
  3. 12
      tests/ImageSharp.Tests/Processing/Transforms/AffineTransformBuilderTests.cs
  4. 20
      tests/ImageSharp.Tests/Processing/Transforms/AffineTransformTests.cs

78
src/ImageSharp/Processing/AffineTransformBuilder.cs

@ -47,7 +47,7 @@ namespace SixLabors.ImageSharp.Processing
/// </summary>
/// <param name="degrees">The amount of rotation, in degrees.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder PrependRotateMatrixDegrees(float degrees)
public AffineTransformBuilder PrependRotationDegrees(float degrees)
=> this.PrependMatrix(TransformUtils.CreateRotationMatrixDegrees(degrees, this.Size));
/// <summary>
@ -55,7 +55,7 @@ namespace SixLabors.ImageSharp.Processing
/// </summary>
/// <param name="radians">The amount of rotation, in radians.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder PrependRotateMatrixRadians(float radians)
public AffineTransformBuilder PrependRotationRadians(float radians)
=> this.PrependMatrix(TransformUtils.CreateRotationMatrixRadians(radians, this.Size));
/// <summary>
@ -63,32 +63,64 @@ namespace SixLabors.ImageSharp.Processing
/// </summary>
/// <param name="degrees">The amount of rotation, in degrees.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder AppendRotateMatrixDegrees(float degrees)
=> this.AppendRotateMatrixRadians(ImageMaths.ToRadian(degrees));
public AffineTransformBuilder AppendRotationDegrees(float degrees)
=> this.AppendRotationRadians(ImageMaths.ToRadian(degrees));
/// <summary>
/// Appends a centered rotation matrix using the given rotation in radians.
/// </summary>
/// <param name="radians">The amount of rotation, in radians.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder AppendRotateMatrixRadians(float radians)
public AffineTransformBuilder AppendRotationRadians(float radians)
=> this.AppendMatrix(TransformUtils.CreateRotationMatrixRadians(radians, this.Size));
/// <summary>
/// Prepends a scale matrix from the given uniform scale.
/// </summary>
/// <param name="scale">The uniform scale.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder PrependScale(float scale)
=> this.PrependMatrix(Matrix3x2.CreateScale(scale));
/// <summary>
/// Appends a scale matrix from the given uniform scale.
/// </summary>
/// <param name="scale">The uniform scale.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder AppendScale(float scale)
=> this.AppendMatrix(Matrix3x2.CreateScale(scale));
/// <summary>
/// Prepends a scale matrix from the given vector scale.
/// </summary>
/// <param name="scales">The horizontal and vertical scale.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder PrependScaleMatrix(SizeF scales)
=> this.PrependMatrix(Matrix3x2Extensions.CreateScale(scales));
public AffineTransformBuilder PrependScale(Vector2 scales)
=> this.PrependMatrix(Matrix3x2.CreateScale(scales));
/// <summary>
/// Appends a scale matrix from the given vector scale.
/// </summary>
/// <param name="scales">The horizontal and vertical scale.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder AppendScaleMatrix(SizeF scales)
=> this.AppendMatrix(Matrix3x2Extensions.CreateScale(scales));
public AffineTransformBuilder AppendScale(Vector2 scales)
=> this.AppendMatrix(Matrix3x2.CreateScale(scales));
/// <summary>
/// Prepends a scale matrix from the given vector scale.
/// </summary>
/// <param name="scale">The horizontal and vertical scale.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder PrependScale(SizeF scale)
=> this.PrependScale((Vector2)scale);
/// <summary>
/// Appends a scale matrix from the given vector scale.
/// </summary>
/// <param name="scales">The horizontal and vertical scale.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder AppendScale(SizeF scales)
=> this.AppendScale((Vector2)scales);
/// <summary>
/// Prepends a centered skew matrix from the give angles in degrees.
@ -96,7 +128,7 @@ namespace SixLabors.ImageSharp.Processing
/// <param name="degreesX">The X angle, in degrees.</param>
/// <param name="degreesY">The Y angle, in degrees.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder PrependSkewMatrixDegrees(float degreesX, float degreesY)
public AffineTransformBuilder PrependSkewDegrees(float degreesX, float degreesY)
=> this.PrependMatrix(TransformUtils.CreateSkewMatrixDegrees(degreesX, degreesY, this.Size));
/// <summary>
@ -105,7 +137,7 @@ namespace SixLabors.ImageSharp.Processing
/// <param name="degreesX">The X angle, in degrees.</param>
/// <param name="degreesY">The Y angle, in degrees.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder AppendSkewMatrixDegrees(float degreesX, float degreesY)
public AffineTransformBuilder AppendSkewDegrees(float degreesX, float degreesY)
=> this.AppendMatrix(TransformUtils.CreateSkewMatrixDegrees(degreesX, degreesY, this.Size));
/// <summary>
@ -113,16 +145,32 @@ namespace SixLabors.ImageSharp.Processing
/// </summary>
/// <param name="position">The translation position.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder PrependTranslationMatrix(PointF position)
=> this.PrependMatrix(Matrix3x2Extensions.CreateTranslation(position));
public AffineTransformBuilder PrependTranslation(PointF position)
=> this.PrependTranslation((Vector2)position);
/// <summary>
/// Appends a translation matrix from the given vector.
/// </summary>
/// <param name="position">The translation position.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder AppendTranslation(PointF position)
=> this.AppendTranslation((Vector2)position);
/// <summary>
/// Prepends a translation matrix from the given vector.
/// </summary>
/// <param name="position">The translation position.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder PrependTranslation(Vector2 position)
=> this.PrependMatrix(Matrix3x2.CreateTranslation(position));
/// <summary>
/// Appends a translation matrix from the given vector.
/// </summary>
/// <param name="position">The translation position.</param>
/// <returns>The <see cref="AffineTransformBuilder"/>.</returns>
public AffineTransformBuilder AppendTranslationMatrix(PointF position)
=> this.AppendMatrix(Matrix3x2Extensions.CreateTranslation(position));
public AffineTransformBuilder AppendTranslation(Vector2 position)
=> this.AppendMatrix(Matrix3x2.CreateTranslation(position));
/// <summary>
/// Prepends a raw matrix.

6
tests/ImageSharp.Tests/Drawing/DrawImageTest.cs

@ -74,9 +74,9 @@ namespace SixLabors.ImageSharp.Tests
using (var blend = Image.Load<TPixel>(TestFile.Create(TestImages.Bmp.Car).Bytes))
{
AffineTransformBuilder builder = new AffineTransformBuilder(blend.Size())
.AppendRotateMatrixDegrees(45F)
.AppendScaleMatrix(new SizeF(.25F, .25F))
.AppendTranslationMatrix(new PointF(10, 10));
.AppendRotationDegrees(45F)
.AppendScale(new SizeF(.25F, .25F))
.AppendTranslation(new PointF(10, 10));
// Apply a background color so we can see the translation.
blend.Mutate(x => x.Transform(builder).BackgroundColor(NamedColors<TPixel>.HotPink));

12
tests/ImageSharp.Tests/Processing/Transforms/AffineTransformBuilderTests.cs

@ -36,13 +36,13 @@ namespace SixLabors.ImageSharp.Tests.Processing.Transforms
});
}
protected override void AppendTranslation(AffineTransformBuilder builder, PointF translate) => builder.AppendTranslationMatrix(translate);
protected override void AppendScale(AffineTransformBuilder builder, SizeF scale) => builder.AppendScaleMatrix(scale);
protected override void AppendRotationRadians(AffineTransformBuilder builder, float radians) => builder.AppendRotateMatrixRadians(radians);
protected override void AppendTranslation(AffineTransformBuilder builder, PointF translate) => builder.AppendTranslation(translate);
protected override void AppendScale(AffineTransformBuilder builder, SizeF scale) => builder.AppendScale(scale);
protected override void AppendRotationRadians(AffineTransformBuilder builder, float radians) => builder.AppendRotationRadians(radians);
protected override void PrependTranslation(AffineTransformBuilder builder, PointF translate) => builder.PrependTranslationMatrix(translate);
protected override void PrependScale(AffineTransformBuilder builder, SizeF scale) => builder.PrependScaleMatrix(scale);
protected override void PrependRotationRadians(AffineTransformBuilder builder, float radians) => builder.PrependRotateMatrixRadians(radians);
protected override void PrependTranslation(AffineTransformBuilder builder, PointF translate) => builder.PrependTranslation(translate);
protected override void PrependScale(AffineTransformBuilder builder, SizeF scale) => builder.PrependScale(scale);
protected override void PrependRotationRadians(AffineTransformBuilder builder, float radians) => builder.PrependRotationRadians(radians);
protected override Vector2 Execute(
AffineTransformBuilder builder,

20
tests/ImageSharp.Tests/Processing/Transforms/AffineTransformTests.cs

@ -80,7 +80,7 @@ namespace SixLabors.ImageSharp.Tests.Processing.Transforms
using (Image<TPixel> image = provider.GetImage())
{
AffineTransformBuilder builder = new AffineTransformBuilder(image.Size())
.AppendRotateMatrixDegrees(30);
.AppendRotationDegrees(30);
image.Mutate(c => c.Transform(builder, resampler));
image.DebugSave(provider, resamplerName);
@ -102,9 +102,9 @@ namespace SixLabors.ImageSharp.Tests.Processing.Transforms
{
image.DebugSave(provider, $"_original");
AffineTransformBuilder builder = new AffineTransformBuilder(image.Size())
.AppendRotateMatrixDegrees(angleDeg)
.AppendScaleMatrix(new SizeF(sx, sy))
.AppendTranslationMatrix(new PointF(tx, ty));
.AppendRotationDegrees(angleDeg)
.AppendScale(new SizeF(sx, sy))
.AppendTranslation(new PointF(tx, ty));
this.PrintMatrix(builder.BuildMatrix());
@ -124,8 +124,8 @@ namespace SixLabors.ImageSharp.Tests.Processing.Transforms
using (Image<TPixel> image = provider.GetImage())
{
AffineTransformBuilder builder = new AffineTransformBuilder(image.Size())
.AppendRotateMatrixDegrees(angleDeg)
.AppendScaleMatrix(new SizeF(s, s));
.AppendRotationDegrees(angleDeg)
.AppendScale(new SizeF(s, s));
image.Mutate(i => i.Transform(builder, KnownResamplers.Bicubic));
@ -160,7 +160,7 @@ namespace SixLabors.ImageSharp.Tests.Processing.Transforms
{
image.DebugSave(provider, $"_original");
AffineTransformBuilder builder = new AffineTransformBuilder(rectangle)
.AppendScaleMatrix(new SizeF(2, 1.5F));
.AppendScale(new SizeF(2, 1.5F));
image.Mutate(i => i.Transform(builder, KnownResamplers.Spline));
@ -179,7 +179,7 @@ namespace SixLabors.ImageSharp.Tests.Processing.Transforms
using (Image<TPixel> image = provider.GetImage())
{
AffineTransformBuilder builder = new AffineTransformBuilder(rectangle)
.AppendScaleMatrix(new SizeF(1F, 2F));
.AppendScale(new SizeF(1F, 2F));
image.Mutate(i => i.Transform(builder, KnownResamplers.Spline));
@ -197,8 +197,8 @@ namespace SixLabors.ImageSharp.Tests.Processing.Transforms
using (Image<TPixel> image = provider.GetImage())
{
AffineTransformBuilder builder = new AffineTransformBuilder(image.Size())
.AppendRotateMatrixDegrees(50)
.AppendScaleMatrix(new SizeF(.6F, .6F));
.AppendRotationDegrees(50)
.AppendScale(new SizeF(.6F, .6F));
image.Mutate(i => i.Transform(builder, sampler));

Loading…
Cancel
Save