Editor/Layers/ArchLayerHitStack.cs
namespace Sunless.Architecture;
// What the cursor actually touched on an authored layer - one entry per geometry answer, not a
// single winner. The picker ranks the stack; the tree remains the deterministic escape hatch.
public enum ArchHitChannel {
Footprint,
Boundary,
Path,
Span,
Volume,
Handle,
Anchor,
}
public sealed class ArchHit {
public ArchLayerRef Layer { get; init; }
public ArchHitChannel Channel { get; init; }
public float Distance { get; init; }
public int Depth { get; init; }
// True when the cursor is inside the authored shape itself; a wall met at arm's length is not.
public bool Direct { get; init; }
}