Repo-wide sweep with the pinned CSharpier 1.3.0 tool. Whitespace and line-wrapping only; OpenNest.Engine.Tests (109) and OpenNest.IO.Tests pass after reformat, full solution builds 0 errors. Added .csharpierignore so csproj/config XML keeps its existing layout (CSharpier's XML wrapping churns attributes with zero benefit). Formatting is now enforceable: dotnet csharpier check . passes.
51 lines
1.1 KiB
C#
51 lines
1.1 KiB
C#
using System;
|
|
|
|
namespace OpenNest.Geometry
|
|
{
|
|
public struct Size
|
|
{
|
|
public Size(double width, double length)
|
|
{
|
|
Width = width;
|
|
Length = length;
|
|
}
|
|
|
|
public double Width;
|
|
|
|
public double Length;
|
|
|
|
public static Size Parse(string size)
|
|
{
|
|
var a = size.ToUpper().Split('X');
|
|
|
|
if (a.Length > 2)
|
|
throw new FormatException("Invalid size format.");
|
|
|
|
var width = double.Parse(a[0]);
|
|
var length = double.Parse(a[1]);
|
|
|
|
return new Size(width, length);
|
|
}
|
|
|
|
public static bool TryParse(string s, out Size size)
|
|
{
|
|
try
|
|
{
|
|
size = Parse(s);
|
|
}
|
|
catch
|
|
{
|
|
size = new Size(0, 0);
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public override string ToString() => $"{Width} x {Length}";
|
|
|
|
public string ToString(int decimalPlaces) =>
|
|
$"{System.Math.Round(Width, decimalPlaces)} x {System.Math.Round(Length, decimalPlaces)}";
|
|
}
|
|
}
|