De release van versie 1.0.0 van de lineaire algebra bibliotheek voor de programmeertaal C++ (standaard C++23) heeft plaatsgevonden. smath, uitgegeven onder de Apache 2.0-licentie als een enkele kleine headerbestand.
Functionaliteiten van de bibliotheek:
- de generieke klasse Vec<N, T> met handige aliassen Vec2 / Vec3 / Vec4 en accessor-methoden (x / y / z / w, r / g / b / a). Vectoren ondersteunen approximate vergelijking en tuple / gestructureerde bindings;
- het type Quaternion<T> op basis van Vec4;
- de generieke klasse Mat met handige aliassen Mat2 / Mat3 / Mat4;
- hulpfuncties voor hoeken rad / deg / turns rekening houdend met een configureerbare basis eenheid met de macro SMATH_ANGLE_UNIT.
- ondersteuning voor czwizzling tijdens de compilatie (swizzle<"…">);
- ondersteuning voor std::format;
- optionele impliciete conversies;
- hulpfuncties voor het verpakken van genormaliseerde RGBA (pack_unorm4x8, unpack_snorm4x8, enz.);
- ondersteuning voor C++20-modules;
- ook beschikbaar zijn extra adapters interacties met bibliotheken Eigen, GLM (OpenGL Mathematics), Handmade-Math, raylib en SFML.
Bron: linux.org.ru
