feat(units): typed quaternion rotation siblings + LengthVec3::direction #42
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "patman/uom-rotation-direction"
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?
What this does
v + 2w(u×v) + 2u×(u×v)) into one privaterotate_si3([f64;3]) -> [f64;3];rotate_vec3and the new typed siblings are thin wrappers over it (formula now lives in exactly one place).rotate_velocity,rotate_acceleration,rotate_jerk,rotate_angular_velocity— each documented free-vector-rotation only (point velocities on a rotating body pick up anω × rterm these do NOT add; that reference-point change is deferred to the frame-tagged milestone).LengthVec3::direction() -> ([f64;3] unit, Length)and refactors Stewartleg_axes/leg_jacobiannormalization onto it.Verification
buck2 test //common:common-tests→ 102 passed (7 new). Stewart FD proptests +leg_axes_are_unit_lengthpass unchanged (behavior-preserving). Adversarial review confirmed the rotation extraction is verbatim and the Stewart singular-leg guard is preserved (high confidence). Notransform.rsdrift.Notes for review
rotate_twist/rotate_spatial_*are deferred (they need the reference-point distinction the frame-tagged types will enforce).rotate_*siblings are forward-prep — no first-stack consumer yet; prune if you prefer consumer-gating strictly.Stack position
PR 2 → base #41 (SI seam). Night-session build; see
docs/superpowers/cam-typed-layer-design.md.