// Copyright (c) Six Labors.
// Licensed under the Six Labors Split License.
using System;
namespace SixLabors.ImageSharp.Drawing.Processing {
///
public sealed class StrokeOptions : IEquatable
{
///
public double MiterLimit { get; set; } = 4D;
///
public double ArcDetailScale { get; set; } = 1D;
///
public LineJoin LineJoin { get; set; } = LineJoin.Bevel;
///
public LineCap LineCap { get; set; } = LineCap.Butt;
///
public override bool Equals(object? obj) => this.Equals(obj as StrokeOptions);
///
public bool Equals(StrokeOptions? other)
=> other is not null &&
this.MiterLimit == other.MiterLimit &&
this.ArcDetailScale == other.ArcDetailScale &&
this.LineJoin == other.LineJoin &&
this.LineCap == other.LineCap;
///
public override int GetHashCode()
=> HashCode.Combine(
this.MiterLimit,
this.ArcDetailScale,
this.LineJoin,
this.LineCap);
}
}