Oranges's Math Library (omath) is a comprehensive, open-source library aimed at providing efficient, reliable, and versatile mathematical functions and algorithms. Developed primarily in C++, this library is designed to cater to a wide range of mathematical operations essential in scientific computing, engineering, and academic research.
- Efficiency: Optimized for performance, ensuring quick computations.
- Versatility: Includes a wide array of mathematical functions and algorithms.
- Ease of Use: Simplified interface for convenient integration into various projects.
- C++ Compiler
- CMake (for building the project)
- Clone the repository:
git clone https://github.com/orange-cpp/omath.git - Navigate to the project directory:
cd omath - Build the project using CMake:
cmake --preset x64-release -S . cmake --build cmake-build/build/x64-release --target server -j 6
Simple world to screen function
std::optional<omath::Vector3> WorldToScreen(omath::Vector3 worldPosition, float width, float height)
{
auto projected = (GetViewProjectionMatrix() * worldPosition).transpose();
projected /= projected.at(0, 3);
const auto out = projected * omath::matrix::to_screen_matrix(width,
height);
if (out.at(0, 2) <= 0.f)
return std::nullopt;
auto final = omath::Vector3(out.at(0, 0),
out.at(0, 1),
out.at(0, 3));
return {final};
}Contributions to omath are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the GPL V3 - see the LICENSE file for details.
- Orange | Telegram
