Skip to content

orange-cpp/omath

banner

Static Badge GitHub contributors GitHub top language CodeFactor GitHub Actions Workflow Status Vcpkg package GitHub forks discord badge telegram badge

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


Youtube Video


APEX Preview


BO2 Preview


CS2 Preview



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...
}

💘 Acknowledgments