mirror of
https://github.com/orange-cpp/omath.git
synced 2026-02-13 07:03:25 +00:00
Enhances the README by adding a gallery showcasing OMath's capabilities, providing a clearer installation guide, and improving usage examples to facilitate easier adoption. Also restructures the navigation for better user experience.
4.6 KiB
4.6 KiB
OMath is a 100% independent, constexpr template blazingly fast math library that doesn't have legacy C++ code.
It provides the latest features, is highly customizable, has all for cheat development, DirectX/OpenGL/Vulkan support, premade support for different game engines, much more constexpr stuff than in other libraries and more...
Install
Examples
Contribute
👁🗨 Features
- Efficiency: Optimized for performance, ensuring quick computations using AVX2.
- Versatility: Includes a wide array of mathematical functions and algorithms.
- Ease of Use: Simplified interface for convenient integration into various projects.
- Projectile Prediction: Projectile prediction engine with O(N) algo complexity, that can power you projectile aim-bot.
- 3D Projection: No need to find view-projection matrix anymore you can make your own projection pipeline.
- Collision Detection: Production ready code to handle collision detection by using simple interfaces.
- No Additional Dependencies: No additional dependencies need to use OMath except unit test execution
- Ready for meta-programming: Omath use templates for common types like Vectors, Matrixes etc, to handle all types!
Gallery
Supported Render Pipelines
| ENGINE | SUPPORT |
|---|---|
| Source | ✅YES |
| Unity | ✅YES |
| IWEngine | ✅YES |
| OpenGL | ✅YES |
| Unreal | ✅YES |
Supported Operating Systems
| OS | SUPPORT |
|---|---|
| Windows 10/11 | ✅YES |
| Linux | ✅YES |
| Darwin (MacOS) | ✅YES |
❔ Usage
ESP example
omath::source_engine::Camera cam{localPlayer.GetCameraOrigin(),
localPlayer.GetAimPunch(),
{1920.f, 1080.f},
localPlayer.GetFieldOfView(),
0.01.f, 30000.f};
for (auto ent: apex_sdk::EntityList::GetAllEntities())
{
const auto bottom = cam.world_to_screen(ent.GetOrigin());
const auto top = cam.world_to_screen(ent.GetBonePosition(8) + omath::Vector3<float>{0, 0, 10});
const auto ent_health = ent.GetHealth();
if (!top || !bottom || ent_health <= 0)
continue;
// esp rendering...
}




