New Readme
All checks were successful
Build Docs With Doxygen / Explore-Gitea-Actions (push) Successful in 1m2s

This commit is contained in:
2024-04-10 20:58:52 -04:00
parent 0c768cd656
commit 99cedd4987
2 changed files with 54 additions and 13 deletions

View File

@@ -918,7 +918,8 @@ WARN_LOGFILE =
# Note: If this tag is empty the current directory is searched.
INPUT = include \
src
src \
README.md
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses

View File

@@ -1,17 +1,57 @@
# Josh's 3D Math Library - J3ML
===============================
Yet Another C++ Math Standard
## Motivation
This project was sparked by a desire to gain a deeper understanding into the math underlying computer graphics. While packages such as glm, eigen, etc. are amazing libraries, it removes the fun of having to learn it the hard way.
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.
## Use Cases
## Features
### LinearAlgebra
#### Vectors
#### Matrices
#### Conversion Types
### Geometry
## Samples
## Bugs / Issues
## Compilation
* <b>Vector Operations:</b> 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:
```cpp
#include <iostream>
#include "j3ml/vector3.h"
int main() {
// Create two 3D vectors
j3ml::Vector3 v1(1.0, 2.0, 3.0);
j3ml::Vector3 v2(4.0, 5.0, 6.0);
// Perform vector addition
j3ml::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.