josh 85f717ba27
All checks were successful
Build Docs With Doxygen / Explore-Gitea-Actions (push) Successful in 1m11s
Add cmake_minimum_required to Test directory CMakeLists.txt
2024-05-22 14:37:55 -04:00
2024-04-10 16:50:29 -04:00
2023-12-26 13:24:13 -06:00
2024-05-22 12:31:13 -04:00
2024-05-22 12:31:13 -04:00
2024-05-21 00:52:02 -07:00
2024-04-10 20:58:52 -04:00

Josh's 3D Math Library - J3ML

Yet Another C++ Math Standard

J3ML is a "Modern C++" C++ library designed to provide comprehensive support for 3D mathematical operations commonly used in computer graphics, game development, physics simulations, and related fields. It offers a wide range of functionalities to simplify the implementation of complex mathematical operations in your projects.

Static Badge

Features

  • Vector Operations: Comprehensive support for 3D vector operations including addition, subtraction, scalar multiplication, dot product, cross product, normalization, and more.
  • Matrix Operations: Efficient implementation of 3x3 and 4x4 matrices with support for common operations such as multiplication, transpose, determinant calculation, and inverse calculation.
  • Quaternion Operations: Quaternion manipulation functions including conversion to/from axis-angle representation, quaternion multiplication, normalization, and interpolation (slerp).
  • Transformation Functions: Functions for transforming points, vectors, and normals using matrices and quaternions.
  • Geometric Types: Support for geometric types such as points, lines, rays, planes, spheres, axis-aligned bounding boxes (AABB), and oriented bounding boxes (OBB).
  • Algorithms: Implementation of various algorithms including Gilbert-Johnson-Keerthi (GJK) algorithm for collision detection, random number generator, and more.
  • Utility Functions: Additional utilities such as conversion between degrees and radians, random number generation, and common constants.

Usage

To use J3ML in your C++ project, simply include the necessary header files and link against the library. Here's a basic example of how to use the library to perform vector addition:


#include <iostream>
#include <j3ml/LinearAlgebra.h>

int main() {
    // Create two 3D vectors
    Vector3 v1(1.0, 2.0, 3.0);
    Vector3 v2(4.0, 5.0, 6.0);

    // Perform vector addition
    Vector3 result = v1 + v2;
    
    // Output the result
    std::cout << "Result: " << result << std::endl;
    
    return 0;
}

For more detailed usage instructions and examples, please refer to the documentation.

Documentation

Documentation is automatically generated from latest commit and is hosted at https://doc.redacted.cc/j3ml .

Contributing

Contributions to J3ML are welcome! If you find a bug, have a feature request, or would like to contribute code, please submit an issue or pull request to the GitHub repository.

License

J3ML is licensed under the Public Domain. See the LICENSE file for details.

Acknowledgements

J3ML is developed and maintained by Joshua O'Leary from Redacted Software and contributors. Special thanks to William J Tomasine II.

Description
Josh's 3D Math Library.
Readme 2.1 MiB
3.4.6 Latest
2025-03-16 21:02:27 -04:00
Languages
C++ 99.7%
CMake 0.3%