FixedMathSharp 4.0.0 is a major geometry, transform, packaging, and reliability release. This version expands the deterministic fixed-point API with frustum, plane, ray, and 4D vector support while hardening several core math paths.
Breaking Changes
- Removed the public
IBoundabstraction and genericIntersects(IBound)dispatch. Use the new strongly typedContains(...)andIntersects(...)overloads onBoundingBox,BoundingArea,BoundingSphere,BoundingFrustum,FixedPlane, andFixedRay. - Renamed the no-MemoryPack build/package path from
ReleaseNoMemoryPack/FixedMathSharp.NoMemoryPacktoReleaseLean/FixedMathSharp.Lean.
Added
- Added
BoundingFrustumwith matrix/plane construction, containment checks, intersection checks, corners, planes, and clamp support. - Added
FixedPlane,FixedPlaneIntersectionType, andContainmentTypefor richer deterministic spatial queries. - Added
FixedRaywith intersections against planes, boxes, areas, spheres, and frustums. - Added
Vector4dwith arithmetic, comparisons, normalization, distance/dot helpers, matrix transforms, fuzzy equality helpers, JSON support, and MemoryPack support. - Added expanded
Fixed4x4transform helpers, including translation, rotation, scale, look-at, world, orthographic, perspective, inversion, point transforms, andVector4dtransforms. - Added Lean package output for
FixedMathSharp.FluentAssertions.Lean.
Improved
- Hardened
BoundingBox,BoundingArea,BoundingSphere, and frustum behavior with typed containment/intersection APIs. - Hardened quaternion normalization, rotation, Euler conversion, division, interpolation, and matrix conversion behavior.
- Improved
Fixed4x4affine handling and transform/inversion coverage. - Improved release automation with centralized archive output and a NuGet publishing workflow for standard and Lean packages.
- Reorganized source files by domain while preserving the public
FixedMathSharpnamespace.
Fixed
- Fixed a
Fixed64multiplication saturation edge case where overflow during rounded 128-bit shifting could wrap before saturation. - Fixed release-configuration test discrepancies, including Lean/MemoryPack-disabled scenarios.
- Removed unreachable/dead bounding-sphere merge code surfaced during coverage hardening.
Quality
- Expanded tests across geometry, bounds, matrices, quaternions, vectors, assertions, serialization-related paths, and Lean builds.
- Added complexity exception documentation for intentionally complex performance-sensitive methods.
- Refreshed README and contributor-facing guidance for the current API and release workflow.
Full Changelog: 1bec7da...be39470