feat: добавить лестницы между этажами (#663)

Прямые и винтовые лестницы получили отдельную модель, инструменты редактора, безопасную межэтажную навигацию, вычитание из чистой площади и плоское отображение в 2.5D.

Issue: #663
User-Visible: yes
This commit is contained in:
Sergey Matyunin
2026-09-26 21:00:43 +03:00
parent 781902b3a8
commit d03a68b88a
70 changed files with 2635 additions and 107 deletions
+7
View File
@@ -37,6 +37,8 @@ On phones, tablets, wall panels and HA Companion apps, the ordinary View must:
tabs, zoom and one gear whose menu holds every other header action, each
item a 44 px target (#616);
- support convenient pan, pinch zoom and space switching;
- treat a linked stair as a floor-navigation target only after a clean tap;
pan, pinch, long press, swipe and cancellation tails must stay inert;
- fit the whole plan after two clean taps on free scene background, while one
tap on a room keeps the immediate room-fit action;
- provide a touch path for essential information that desktop exposes through
@@ -158,6 +160,11 @@ Desktop `Shift` bypasses that offer and constrains drawing to an exact 45° ray;
touch has no separate modifier gesture. A pan, pinch, cancellation or second
pointer never accepts a face, applies a small-gap repair or creates a room.
Stair placement and transforms remain best-effort editor interactions on
touch, but the safety floor is strict: cancellation and navigation gestures do
not create, move, save or follow a stair. A long press in View does not activate
its target floor, and the next deliberate tap is re-armed immediately.
During a View/editor visual transition the moving stage is inert while the
header tabs remain available. A pinch, cancelled pointer or synthetic click
cannot operate stale geometry; leaving the editor is always a single safe