The objective is the area of the axis-aligned bounding box; the search minimizes it (θ*).
In Full the minimum sits cleanly at 0°/90°. Switch to Half (only the two near faces): the
missing corner drops out of the extents, so extra minima appear — the box hugs the diagonal of the
L (~63.5°) just as tightly — and min-area turns ambiguous, able to pick a wrong angle. That
fragility on partial LiDAR is why detect.cpp uses closeness instead.