Editor/Pillar/ArchSpanExtentProvider.cs
namespace Sunless.Architecture;
public sealed class ArchSpanExtentProvider : IArchExtentProvider {
public ArchKind Kind => ArchKind.Span;
public ArchExtent Measure( object payload, ArchExtentContext context ) {
var extent = new ArchExtent();
if ( payload is not ArchSpanPart span
|| !ArchSpanShape.Resolve( context.Plan, context.Kit, context.Room, span, out var run ) ) {
return extent;
}
extent.Add( run.From, run.Springing, run.Top );
extent.Add( run.To, run.Springing, run.Top );
return extent.Grown( MathF.Max( 24f, run.Thickness ) );
}
}