fix(geometry): canonicalize decor image coordinates

Issue: #431
User-Visible: yes
This commit is contained in:
Sergey Matyunin
2026-09-03 11:26:31 +03:00
parent d97bf63feb
commit 58efb6a1b2
20 changed files with 301 additions and 139 deletions
+4
View File
@@ -2,6 +2,10 @@
## Unreleased
- Custom decor images now pass through the same stable coordinate-write barrier
as furniture and shapes, so repeated saves and **Optimize Plans** no longer
retain image-only floating-point noise
([#431](https://github.com/Matysh/houseplan-card/issues/431)).
- Exports made while a reusable decor-image file is missing can now be imported
with the existing confirmation instead of rejecting the whole plan; full,
single-space and plan-only exports preserve the repairable image object
+4
View File
@@ -8,6 +8,10 @@
## Не выпущено
- Пользовательские изображения декора теперь проходят тот же стабильный барьер
записи координат, что мебель и фигуры, поэтому повторные сохранения и
«Оптимизировать планы» больше не сохраняют float-шум только у изображений
([#431](https://github.com/Matysh/houseplan-card/issues/431)).
- Экспорт, созданный при отсутствующем файле пользовательской картинки декора,
теперь можно импортировать с обычным подтверждением вместо ошибки всего
плана; полный экспорт, одно пространство и режим «Только планировка»
+6
View File
@@ -149,6 +149,12 @@ while the frontend adopts the exact candidate it sends. This removes ULP noise
without changing the schema, JSON number type, model/store version or visible
placement.
Decor uses an explicit box-geometry catalog shared by the frontend contract and
mirrored by the integration: `rect`, `ellipse`, `furniture` and `image`.
Their `x/y/w/h` fields follow the lattice rule above and `angle` follows the
scalar rule; image asset, opacity, mirror flags and unknown fields are not
geometry and remain unchanged.
The operation is lossless at the product scale and intentionally narrow.
`view_box`, `cell_cm`, `plan_aspect`, physical centimetre values,
presentation settings, colours, opacity/brightness/temperature, vacuum
@@ -2,7 +2,7 @@
Issue: [#431](https://github.com/Matysh/houseplan-card/issues/431)
Статус документа: ТЗ на ревью.
Статус документа: реализовано.
Источники контракта: [ТЗ #51](051-custom-decor-images.md),
[ТЗ #224](224-config-coordinate-canonicalization.md) и