fix(ui): correct horizontal drag direction in 360 panorama viewer

The panorama viewer inverted horizontal drag relative to vertical: the
yaw sign was opposite, so dragging right turned the view right instead
of moving the scene right. Flip yaw to match the pitch convention
(drag the world) and lock the behavior with a ui-workspace scenario.
This commit is contained in:
iu
2026-10-11 21:02:01 +03:00
parent a72d8876d6
commit 6528abad82
5 changed files with 89 additions and 1 deletions
@@ -0,0 +1,39 @@
# Spec Delta
## MODIFIED Requirements
### Requirement: Просмотр 360-панорамы
Фото с тегом `pano360` SHALL открываться в режиме сферического обзора (equirect) вместо плоского
изображения. Перетаскивание SHALL менять направление взгляда и SHALL перемещать сцену вслед за
указателем по обеим осям согласованно, колесо — угол обзора, `Space` — сбрасывать вид. Остальные
фото SHALL просматриваться как прежде. При недоступности WebGL или сбое загрузки/декодирования
SHALL показываться плоское изображение. На публичных share-страницах панорамный режим SHALL не
активироваться.
#### Scenario: Обзор панорамы
- **WHEN** пользователь открывает фото с тегом `pano360`
- **THEN** показывается сферический обзор, и перетаскивание меняет направление взгляда
#### Scenario: Направление перетаскивания
- **WHEN** в режиме панорамы пользователь перетаскивает вправо
- **THEN** сцена перемещается вправо (направление взгляда поворачивается влево), согласованно с вертикальным перетаскиванием
#### Scenario: Обычное фото
- **WHEN** пользователь открывает фото без тега `pano360`
- **THEN** показывается обычное плоское изображение
#### Scenario: Управление обзором
- **WHEN** в режиме панорамы пользователь вращает колесо или нажимает `Space`
- **THEN** колесо меняет угол обзора, а `Space` сбрасывает направление взгляда и угол обзора
#### Scenario: Навигация между фото
- **WHEN** в режиме панорамы пользователь нажимает стрелки влево/вправо или выбирает миниатюру
- **THEN** открывается соседнее фото, панорамный режим включается или выключается по его тегу
#### Scenario: Нет WebGL
- **WHEN** WebGL недоступен или изображение не загружается
- **THEN** показывается плоское изображение
#### Scenario: Публичная share-страница
- **WHEN** фото открыто по публичной share-ссылке
- **THEN** панорамный режим не активируется, показывается плоское изображение