90097a756e3b08039af7e357e3332e8bb5dc3a1d
Dragging rotation hit a wall at the wrap point: each frame re-read euler from the quat and wrapped to [0,360), so dragging past 360 snapped the display back to 0 (and backwards dragging wrapped up to 360) -- values "jumped around" instead of accumulating. Port UE TransformDetails session semantics: the rotation row shows a local mirror value while the user edits it (accumulating freely in both directions, never wrapping), and re-syncs from the quat only on foreign changes (gizmo drag, physics writeback, entity switch). Detection is exact component-wise quat equality: the mirror quat comes from the same QuatFromEuler used by SetRotation, so an untouched pair compares bit-equal, while any foreign writeback -- including sub-0.05 degree gizmo steps that a dot-product threshold would miss -- differs in at least one float. Edit frames skip the check (mirror leads the quat by one drag delta), gated on the previous frame's item-active state.
Description
No description provided
5.6 MiB
Languages
C++
56.3%
C
41.6%
GLSL
1.8%
CMake
0.3%