Implement quaternion and matrix geometry

This commit is contained in:
2026-08-08 22:54:07 +00:00
parent 3068e5ee9e
commit 66997128e7
15 changed files with 1881 additions and 859 deletions

View File

@@ -54,10 +54,15 @@ Running `cargo test --workspace` is intentionally red during the shim stage.
Milestone 04 implementation has begun. `libremetaverse-types` now provides
native UUID, incremental CRC-32, little-endian floating-point byte helpers,
Vector2/Vector3/Vector3d/Vector4 arithmetic and serialization, Color4 color
conversion, and Ray storage. UUID protocol bytes use explicit network order
while `compat::Guid` conversions preserve the mixed-endian .NET byte-array
layout. Vector and color byte encodings are explicitly little-endian and do not
depend on host architecture. The remaining Types surfaces stay visibly
failure-only until their owning milestone issues are completed.
conversion, Ray storage, Quaternion rotation/interpolation/serialization, and
Matrix4 construction, transforms, inversion, and decomposition. UUID protocol
bytes use explicit network order while `compat::Guid` conversions preserve the
mixed-endian .NET byte-array layout. Vector, color, and normalized quaternion
byte encodings are explicitly little-endian and do not depend on host
architecture. Matrix4 preserves LibreMetaverse's row-major storage, row-vector
transform direction, and translation in the fourth row; quaternion components
are stored as `(x, y, z, w)` and products use the reference Hamilton-product
direction. The remaining Types surfaces stay visibly failure-only until their
owning milestone issues are completed.
The controlled audit aggregates every expected failure by standardized C#
member ID and rejects unrelated fixture, assertion, compile, or symbol errors.