Version 1.0.0 av linjÀr algebra-biblioteket för C++ (standard C++23) har slÀppts smath, distribuerad under Apache 2.0-licensen som en enda liten headerfil.
Möjligheterna hos biblioteket:
- en generisk klass Vec<N, T> med anvÀndbara alias Vec2/Vec3/Vec4 och Ätkomstmetoder (x/y/z/w, r/g/b/a). Vektorer stödjer ungefÀrlig jÀmförelse och tupplar/strukturerade bindningar;
- typ Quaternion<T> baserad pÄ Vec4;
- en generisk klass Mat med anvÀndbara alias Mat2/Mat3/Mat4;
- hjÀlpfunktioner för vinklar rad/grad/varv med hÀnsyn till anpassad grundenhet med hjÀlp av makrot SMATH_ANGLE_UNIT.
- stöd för swizzling under kompilering (swizzle<"âŠ">);
- stöd för std::format;
- valfria implicita omvandlingar;
- hjÀlpfunktioner för paketering av normaliserat RGBA (pack_unorm4x8, unpack_snorm4x8 etc.);
- stöd för C++20-moduler;
- ytterligare tillhandahÄlls extra adaptrar interaktioner med biblioteken Eigen, GLM (OpenGL Mathematics), Handmade-Math, raylib och SFML.
KĂ€lla: linux.org.ru
