feat(app): constrain free-flight movement by building meshes
Docs Deploy / Build and Deploy MkDocs (push) Successful in 35s

This commit is contained in:
Valentin Popov committed 2026-10-31 01:24:21 +04:00
1 parent dbfdcf1e4c
commit e9e01eee9f
6 files changed
+1202 -43

No files matched your search

+23 -11
View File
@@ -10,9 +10,13 @@ authoring API без динамического подтверждения.
Не доказаны символами точные имена renderer vtable slots, полный набор CShade
state transitions и окончательный порядок части transparent/FX/shadow subpasses.
Свободная камера превью удерживается в XY-границах поверхностей карты и над
рельефом. Она пока не проверяет стены и проёмы строений; эти ограничения не
подтверждают поведение стратегической камеры или камеры робота оригинала.
После ограничения цели рельефом интерактивная камера проверяет движение
против каждого отрисовываемого корневого строения класса `FORT` и его
отрисовываемых компонентов. Для этого пути используются текущая Node38-поза
компонента и его преобразование присоединения. При попадании камера сохраняет
прежнюю позицию, но оставляет новый поворот. Так приложение связывает мировой
MSH-запрос со свободной preview-камерой; это не подтверждает алгоритм
стратегической или следящей камеры оригинала.
Локальный MSH-запрос `query_slot_segment` сверён с оригиналом на фабричной
стене и дверном проёме. Runtime-адаптер `query_building_segment_world` теперь
@@ -22,15 +26,23 @@ state transitions и окончательный порядок части transp
тесты покрывают связи, отсутствие геометрии у промежуточного узла, маски,
равные попадания и предел в 200 пересечений.
Игнорируемый тест на AutoDemo загружает настоящий объект PLANT 4 и подтверждает,
что сегмент пересекает геометрию Node3 в исходной закрытой позе, но не
пересекает её в открытой позе Node3 на frame `1`. В загруженных
Control-привязках корня PLANT нет tag-21 записи для этого перехода. Тест задаёт
frame `1` напрямую и не исполняет команду открытия из миссии.
Игнорируемый тест приложения загружает настоящий PLANT 4 из AutoDemo и его
исходную CTLD-привязку Node3 (`frame_a = 0`, `frame_b = 1`, blend `0`). В
контроллере корневого PLANT нет записей tag-21 для открытия двери. В исходной
закрытой позе камера блокируется о дверь через обычный путь обновления
приложения. Для второго запроса тест вручную задаёт время `1` только Node3,
обновляет иерархию позы компонента и преобразование присоединения, затем
проверяет, что камера проходит через проём. Это подтверждает только подачу
выбранных поз в коллизию приложения: тест не запускает событие открытия, не
доказывает видимое открытие двери и не сравнивает полный игровой цикл с
оригиналом.
Открыты выбор первого корня и состава узлов/слотов нативного мирового запроса,
полный обход текущих runtime-поз и component bindings, подключение адаптера к
свободной камере и сравнение итогового результата мирового запроса с оригиналом
Открыты выбор первого корня и правила состава узлов/slot-ов оригинального
мирового запроса, сравнение полного обхода с оригиналом, а также связь с
игровыми позами и событиями. Текущий путь приложения использует все
отрисовываемые компоненты строений `FORT`, но их выбор ещё не сопоставлен с
поведением оригинала для первого корня и всего мира. Совпадение со
стратегической и следящей камерами не подтверждено
([MSH](../reference/msh.md)).
Для MSH без потока цветов type 16 подтверждён только один постоянный alpha