editor: drop the stale 6 m caps and surface the ceiling's level bound - #650
Merged
Conversation
…aise `#642` raised the room-envelope caps from 6 m to 20 m but missed two sliders, so a tall storey is still unusable in practice: - ceiling panel's non-level-parent fallback stayed at 6 m while `definition.ts` uses `POSITIVE_INFINITY` for the same case — the panel and the 3D drag handle disagreed on the same bound. - slab elevation (Surface/Floor and Base/Rim) stayed at 6 m, so a slab could not be raised past 6 m inside a 20 m level. `clampSlabElevation` in the write path is the real bound; the slider was just a UI ceiling. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ilent A ceiling's cap is the storey plane (`getCeilingClampBound`), so on a stock 2.5 m level it is 2.49 m — which means the "Standard (2.5m)" and "High (3.0m)" presets clamped silently and read as dead buttons, with nothing pointing at the level height as the real gate. Presets taller than the level are now disabled with the available height in their tooltip, and the Height section names the bound. The clamp itself is unchanged: a ceiling still never pokes through its own storey. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Follow-up to #642, which raised the room-envelope height caps from 6 m to 20 m but left two sliders behind, so a tall storey still wasn't usable in practice.
ceiling/panel.tsx— the non-level-parent fallback stayed at6whiledefinition.tsusesNumber.POSITIVE_INFINITYfor the same case, so the panel and the 3D drag handle disagreed on the same bound. They now agree.slab/panel.tsx— the elevation sliders (Surface/Floor and Base/Rim) stayed atmax={6}, so a slab could not be raised past 6 m inside a 20 m level.clampSlabElevationin the write path is the real bound; the slider was only a UI ceiling.It also fixes a usability trap found while verifying the above. A ceiling's cap is the storey plane (
getCeilingClampBound), which on a stock 2.5 m level is 2.49 m — so the "Standard (2.5m)" and "High (3.0m)" presets clamped silently and read as dead buttons, with nothing pointing at the level height as the actual gate. Presets taller than the level are now disabled with the available height in their tooltip, and the Height section names the bound.The clamp itself is unchanged: a ceiling still never pokes through its own storey.
How to test
bun dev, draw a room with walls and a ceiling.clampSlabElevationstill holds them under the storey.I verified the clamp empirically rather than by reading:
getCeilingClampBoundreturns 19.99 on a 20 m level in every configuration tested — single level, level above, and level above with a covering floor slab.Screenshots / screen recording
N/A — will add a short clip if the reviewer wants one; the visible change is two disabled preset buttons and one line of helper text in the ceiling panel.
Checklist
bun devbun checkto verify)mainbranchNote
Low Risk
Editor-only panel bounds and preset UX; geometry clamp logic is unchanged.
Overview
Removes leftover 6 m UI limits on ceiling and slab inspectors so tall storeys (up to 20 m) are editable in the panel, matching the write-path clamps and
definition.ts.In
ceiling/panel.tsx, the non-level-parentmaxHeightfallback changes from 6 toNumber.POSITIVE_INFINITY(same as the 3D/registry bound). Height presets that exceed the storey clamp are disabled with a tooltip, and when the cap is finite the panel shows “Limited by the level to …” so silent clamping no longer looks like broken buttons.In
slab/panel.tsx, Surface/Floor and Base/Rim slidersmaxrise from 6 to 20;clampSlabElevationremains the real limit on save.Reviewed by Cursor Bugbot for commit fae36af. Bugbot is set up for automated code reviews on this repo. Configure here.