A fost lansată versiunea 1.0.0 a bibliotecii de algebră liniară pentru limbajul C++ (standard C++23) smath, distribuită sub licența Apache 2.0 sub forma unui singur fișier header mic.
Funcționalitățile bibliotecii:
- clasa generică Vec<N, T> cu aliasuri utile Vec2 / Vec3 / Vec4 și accesorii (x / y / z / w, r / g / b / a). Vectoarele suportă comparație aproximativă și legături de tip tuplu / structurate;
- tipul Quaternion<T> bazat pe Vec4;
- clasa generică Mat cu aliasuri utile Mat2 / Mat3 / Mat4;
- funcții auxiliare pentru unghiuri rad / deg / turns care țin cont de unitatea de măsură de bază personalizată macro-ul SMATH_ANGLE_UNIT.
- suport pentru swizzling în timpul compilării (swizzle<"…">);
- suport pentru std::format;
- conversii opționale implicite;
- funcții auxiliare pentru ambalarea RGBA normalizată (pack_unorm4x8, unpack_snorm4x8 și altele);
- suport pentru module C++20;
- de asemenea, sunt oferite adaptoare suplimentare interacțiuni cu bibliotecile Eigen, GLM (OpenGL Mathematics), Handmade-Math, raylib și SFML.
Sursa: linux.org.ru
