- A 4-vector doubles as a unit quaternion in (x, y, z, w) order:
QuanternionMultiply, QuanternionConjugate, QuanternionFromAxisAngle,
QuanternionFromUnitVectors (shortest arc), QuanternionNlerp and
QuanternionSlerp, next to the existing QuanternionFromBasis.
- MatrixRowMajor gains Rotation (from a quaternion), TRS, InverseAffine,
Transpose and Decompose. The 4x4 transforms row vectors and the 4x3
column vectors (the VkTransformMatrixKHR layout); each of these means the
same transform in both. The 4x3 Rotation copied the 4x4's rows, which
rotated by the inverse.
- The static Normalize no longer assumes three components.
- Tests: Quaternion, and Matrix extended.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Basic, Vector, VectorF16 and VectorF32 were stored with CRLF; convert them
to LF like the rest of the tree. No other change to their content.
.gitattributes keeps text files LF from here on.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>