fix(assembly): enforce drag quaternion continuity + short-arc validation (#338) #342
Reference in New Issue
Block a user
Delete Branch "fix/drag-quat-continuity"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two-part fix for the planar constraint drift during interactive drag (#338).
Commit 1: Update solver submodule (solver#40)
_enforce_quat_continuitypreviously skipped dragged parts, so in a 2-body assembly the function did nothing. Fix:dragged_idsskip — apply continuity to ALL non-grounded bodiesCommit 2: Short-arc angle in validateNewPlacements
Rotation::evaluateVector()computesangle = 2*acos(w)which gives[0, 2*pi]. When the relative quaternion hasw < 0(opposite hemisphere), the angle exceeds pi even thoughqand-qrepresent the same rotation. This caused the validator to report ~350° 'flips' and reject valid solver output.Fix: map angle to
[0, pi]before the 91° threshold comparison.Testing
Refs: #338, kindred/solver#40