mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-01 20:29:00 +00:00
docs: spec #309 revision 2 — mandatory sections per review r1
Issue: #309 User-Visible: no
This commit is contained in:
@@ -1,9 +1,16 @@
|
||||
# ТЗ #309 — Стыковочные узлы: визуальный лимит mitre и устранение паразитных парных патчей
|
||||
|
||||
Issue: https://github.com/Matysh/houseplan-card/issues/309
|
||||
Статус: ревизия 1.
|
||||
Статус: ревизия 2 (после SPEC-REVIEW-309-r1: добавлены обязательные разделы §7.1).
|
||||
База: #302 (полный mitre, веера узлов, детектор «без дыр», сет junction-сцен), #271 (thickLength-лимиты).
|
||||
|
||||
## 0. Сценарий
|
||||
|
||||
Владелец дома рисует и правит план в Plan-редакторе и рассматривает результат в View/kiosk. В местах схождения стен — особенно под острыми углами, у толстых стен и при смешанных толщинах — он видит зубцы: шипы за торцом, пики над узлом, ступени. Узлы участвуют в каждом плане, дефект виден на любой поверхности, где рисуется кладка (Plan, View, kiosk, Static, скрытый слой Iso) — геометрия общая, из структурного кэша (docs/WALL-THICKNESS.md §3).
|
||||
|
||||
**До:** из узла торчат клинья и пики длиной до 4 полутолщин, у крестов смешанных толщин — уступы в чужих квадрантах.
|
||||
**После:** узел закрыт по чертёжному: вершины не дальше 1.5 полутолщины, сверх — аккуратная плоская фаска; кресты смешанных толщин идут по граням тонких стен без уступов.
|
||||
|
||||
## 1. Проблема
|
||||
|
||||
Полный mitre (#302, решение №5) ограничен только сектором и `MITRE_LIMIT = 4·max(h)`. На экспорте владельца три класса артефактов (все воспроизведены исполнением на dev dc68868):
|
||||
@@ -46,6 +53,34 @@ Issue: https://github.com/Matysh/houseplan-card/issues/309
|
||||
- **Без фантомов (#271):** нет новых площадей за пределами `thickLength`.
|
||||
- Превью рисования (drawWallPreviewD и патчи превью) использует ту же парную логику — форма превью и персиста совпадает.
|
||||
|
||||
## 3.6 Скоуп и не-скоуп
|
||||
|
||||
**Скоуп:** форма патчей парных стыков и вееров узлов ≥3 лучей в рендер-геометрии кладки; фильтр не-соседних пар; golden/юниты/мутанты; docs/WALL-THICKNESS.md §3.
|
||||
**Не-скоуп:** модель данных и конфиг (толщины, ключи walls, партиции) не меняются; hit-зоны и снап не меняются; политика полного mitre в допустимом пороге (#302 решение №5) сохраняется; #308 (перегородка-дубликат) не трогается.
|
||||
|
||||
## 3.7 UX
|
||||
|
||||
Никаких новых контролов, диалогов или настроек. Меняется только форма отрисованной кладки у узлов на всех поверхностях, где она рисуется (Plan/View/kiosk/Static/hidden-Iso — общий структурный кэш). Превью рисования цепочки использует ту же парную логику — форма превью и персиста совпадает.
|
||||
|
||||
## 3.8 Модель данных и миграция
|
||||
|
||||
Нет. Чистая рендер-геометрия; конфиг, экспорт/импорт и compatibility-поля не затрагиваются.
|
||||
|
||||
## 3.9 i18n
|
||||
|
||||
Нет новых строк.
|
||||
|
||||
## 3.10 Риски
|
||||
|
||||
1. **Дыры на границе фаски** — фаска среза может разойтись с полосами/веерами: закрывается контрактным детектором (#302) на сценах и на полном экспорте отчёта (AC5).
|
||||
2. **Регресс утверждённых форм** — прямые углы должны остаться байтово прежними (AC4); прочие изменившиеся golden-сцены пересматриваются поимённо (AC6).
|
||||
3. **Удаление парных патчей в узлах ≥3 лучей** может вскрыть непокрытые сектора у экзотических конфигураций — решение «пропускать все или только не-соседние» принимается измерением с детектором, мёртвый слой не оставляется (§3.3).
|
||||
4. **Перф** — клип полуплоскостью на узел добавляет O(1) операций на сектор; замер перф-смока в гейте.
|
||||
|
||||
## 3.11 Release-артефакты
|
||||
|
||||
Записи в `docs/CHANGELOG.md` и `docs/CHANGELOG.ru.md` (User-Visible: yes) в коммите реализации; обновление `docs/WALL-THICKNESS.md` §3 (правило порога и фаски, судьба парных патчей в узлах); скриншот-fingerprint при изменении src.
|
||||
|
||||
## 4. Затрагиваемые поверхности
|
||||
|
||||
`src/wall-thickness.ts` (обе ветки + константа), golden-сет (пересъёмка затронутых junction-сцен + 3 новые сцены), юниты формы, мутационный гейт, `docs/WALL-THICKNESS.md` §3.
|
||||
|
||||
Reference in New Issue
Block a user