Files
OpenNest/OpenNest.Core/Shapes/TShape.cs
T
aj aec0523062 style: apply CSharpier formatting to all C# sources
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.
2026-09-20 16:41:50 -04:00

47 lines
1.4 KiB
C#

using System.Collections.Generic;
using OpenNest.Geometry;
namespace OpenNest.Shapes
{
public class TShape : ShapeDefinition
{
public double Width { get; set; }
public double Height { get; set; }
public double StemWidth { get; set; }
public double BarHeight { get; set; }
public override string GenerateName() => $"T {Dim(Width)}x{Dim(Height)}";
public override void SetPreviewDefaults()
{
Width = 10;
Height = 8;
StemWidth = 3;
BarHeight = 3;
}
public override Drawing GetDrawing()
{
var sw = StemWidth > 0 ? StemWidth : Width / 3.0;
var bh = BarHeight > 0 ? BarHeight : Height / 3.0;
var stemLeft = (Width - sw) / 2.0;
var stemRight = stemLeft + sw;
var stemTop = Height - bh;
var entities = new List<Entity>
{
new Line(stemLeft, 0, stemRight, 0),
new Line(stemRight, 0, stemRight, stemTop),
new Line(stemRight, stemTop, Width, stemTop),
new Line(Width, stemTop, Width, Height),
new Line(Width, Height, 0, Height),
new Line(0, Height, 0, stemTop),
new Line(0, stemTop, stemLeft, stemTop),
new Line(stemLeft, stemTop, stemLeft, 0),
};
return CreateDrawing(entities);
}
}
}