Toolkit.UI.Controls.Avalonia

This commit is contained in:
TheXamlGuy
2024-04-13 11:41:33 +01:00
parent 62a7e94e19
commit 862e7b2e34
97 changed files with 8558 additions and 0 deletions
@@ -0,0 +1,41 @@
namespace Gma.QrCodeNet.Encoding.Positioning.Stencils;
internal class PositionDetectionPattern : PatternStencilBase
{
public PositionDetectionPattern(int version)
: base(version)
{
}
private static bool[,] PositionDetection { get; } =
new[,]
{
{ O, O, O, O, O, O, O, O, O },
{ O, X, X, X, X, X, X, X, O },
{ O, X, O, O, O, O, O, X, O },
{ O, X, O, X, X, X, O, X, O },
{ O, X, O, X, X, X, O, X, O },
{ O, X, O, X, X, X, O, X, O },
{ O, X, O, O, O, O, O, X, O },
{ O, X, X, X, X, X, X, X, O },
{ O, O, O, O, O, O, O, O, O }
};
public override bool[,] Stencil => PositionDetection;
public override void ApplyTo(TriStateMatrix matrix)
{
MatrixSize size = GetSizeOfSquareWithSeparators();
MatrixPoint leftTopCorner = new(0, 0);
CopyTo(matrix, new MatrixRectangle(new MatrixPoint(1, 1), size), leftTopCorner, MatrixStatus.NoMask);
MatrixPoint rightTopCorner = new(matrix.Width - Width + 1, 0);
CopyTo(matrix, new MatrixRectangle(new MatrixPoint(0, 1), size), rightTopCorner, MatrixStatus.NoMask);
MatrixPoint leftBottomCorner = new(0, matrix.Width - Width + 1);
CopyTo(matrix, new MatrixRectangle(new MatrixPoint(1, 0), size), leftBottomCorner, MatrixStatus.NoMask);
}
private MatrixSize GetSizeOfSquareWithSeparators() => new(Width - 1, Height - 1);
}