mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
fix: переписать слой редактирования лестниц на box-контракт декора (#676)
Лестница рисуется протяжкой, как прямоугольник или эллипс декора: длинная ось протяжки — ось подъёма, стрелка смотрит от нажатия к отпусканию, клик ставит размер по умолчанию. Выделенная лестница получает рамку декора в верхнем оверлее карточки — выше тел стен, с узлами постоянного экранного размера и курсорами по мировому направлению узла; винтовая — четыре узла на касательных. Ресайз идёт от противоположной стороны, не зеркалит и не поворачивает; магнит работает по сторонам: в пределах 6 клеток и 5° сторона ложится на видимую грань стены, при перемещении лестница доворачивается не больше чем на 5°, при ресайзе и черновике — никогда. Грани перегородок и колонн получают внешнюю сторону по обходу многоугольника. Клик, синтезированный после жеста, глушится: под «Лестницей» больше не появляется копия, под «Выбором» не пропадает выделение. Диалог свойств считает в сантиметрах лестницы (30…10000), а не в конвертере толщины стены; нетронутое поле хранит число бит в бит, «Сохранить» без изменений ничего не пишет. В Просмотре наведение на лестницу с корректной целью показывает «Переход на этаж …» — ровно при том же условии, что делает её ссылкой. Чистые функции слоя — в stairs-editor-model.ts с юнитами; смок лестниц покрывает протяжку, курсоры, рамку над стенами, клик после жеста, диалог и пять состояний подсказки; реестр мутантов получил шесть свидетелей. Issue: #676 User-Visible: yes Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd
This commit is contained in:
+19
-10
@@ -791,16 +791,25 @@ Undo оптимизации.
|
||||
| Толщина | Задаёт толщину 0–100 см выбранному участку или всем стенам комнаты |
|
||||
| Удалить комнату | Открывает выбор: удалить комнату и оставить её физические стены либо удалить комнату вместе с ними; общие стены остаются всегда |
|
||||
|
||||
Выберите **Лестница → Прямая** или **Лестница → Винтовая**, затем кликните по
|
||||
плану. Выбранная лестница перемещается и меняет размер плавно, как мебель;
|
||||
`Shift` привязывает поворот к 45°. Магнит ставит её к видимой физической грани
|
||||
стены или вплотную к другой лестнице, а **Оптимизировать планы** сохраняет этот
|
||||
continuous-transform без привязки к сетке. Двойной клик открывает размеры,
|
||||
направление подъёма, угол и целевой этаж. В Просмотре чистый клик переходит на
|
||||
корректную цель и восстанавливает сохранённый вид этажа; хвост жеста, битая
|
||||
ссылка и карточка с закреплённым этажом ничего не делают. На целевом этаже
|
||||
объект автоматически не создаётся. В 2.5D символ остаётся плоским на полу.
|
||||
Подробный контракт — в [документе о лестницах](STAIRS.md).
|
||||
Выберите **Лестница → Прямая** или **Лестница → Винтовая**, затем нарисуйте её
|
||||
на плане как фигуру декора: нажмите, протяните и отпустите. Направление
|
||||
протяжки — направление подъёма, нарисованный размер — размер лестницы, а
|
||||
обычный клик по-прежнему ставит размер по умолчанию. У выделенной лестницы
|
||||
поверх стен рисуется рамка с угловыми, серединными узлами и узлом вращения;
|
||||
курсор над узлом показывает, куда он тянет. Узел меняет размер относительно
|
||||
противоположной стороны, не поворачивая и не зеркаля лестницу, и
|
||||
примагничивает перетаскиваемую сторону вплотную к параллельной стене;
|
||||
перетаскивание за тело магнитит ближайшую сторону к стене (доворачивая не
|
||||
больше чем на 5°) или вплотную к другой лестнице; `Shift` привязывает поворот
|
||||
к 45°. **Оптимизировать планы** сохраняет этот continuous-transform без
|
||||
привязки к сетке. Двойной клик открывает размеры (от 30 см до 100 м, хранятся
|
||||
ровно такими, как показаны), направление подъёма, угол и целевой этаж. В
|
||||
Просмотре наведение на лестницу с корректной целью показывает подсказку
|
||||
«Переход на этаж …», а чистый клик переходит на эту цель и восстанавливает
|
||||
сохранённый вид этажа; хвост жеста, битая ссылка и карточка с закреплённым
|
||||
этажом ничего не делают. На целевом этаже объект автоматически не создаётся.
|
||||
В 2.5D символ остаётся плоским на полу. Подробный контракт — в
|
||||
[документе о лестницах](STAIRS.md).
|
||||
|
||||
При варианте **«Удалить комнату, оставить стены»** эксклюзивные участки
|
||||
положительной толщины становятся обычными независимыми перегородками с той же
|
||||
|
||||
Reference in New Issue
Block a user