685 Commits

Author SHA1 Message Date
14fa810ecb Implements angle class with normalization
Adds an angle class with support for different normalization
and clamping strategies. Includes trigonometric functions and
arithmetic operators. Introduces unit tests to verify correct
functionality.

Disables unity builds to address a compilation issue.
2025-09-08 20:15:59 +03:00
b964661030 Merge pull request #66 from orange-cpp/feature/remove-legacy
Removes deprecated Matrix class
2025-09-08 19:59:34 +03:00
9c11551c9a Removes deprecated Matrix class
Removes the deprecated `Matrix` class and its associated source files and unit tests.

This change is to ensure code cleanliness and prevent accidental usage of the slow and outdated `Matrix` class.
The `Mat` class should be used instead.
2025-09-08 19:56:04 +03:00
21fece7c84 Update LICENSE 2025-09-08 15:52:01 +03:00
996618994d updated logo psd 2025-09-06 23:14:14 +03:00
ce8be6dd52 Update README.md 2025-09-04 23:49:07 +03:00
17aac2f80e Update CREDITS.md 2025-09-04 20:36:12 +03:00
ba927734d2 Update LICENSE 2025-09-04 20:35:25 +03:00
c0d5fd18f5 Update SECURITY.md 2025-09-04 20:35:04 +03:00
996a9cf15a Update LICENSE 2025-09-04 19:35:05 +03:00
91078f5701 Update LICENSE 2025-09-04 19:33:59 +03:00
036d3a8992 updated logo 2025-09-03 22:18:54 +03:00
7534fe8969 removed unused defines v3.5.2 2025-09-03 12:52:00 +03:00
8e4f1812cc fix 2025-09-03 12:50:31 +03:00
e8f40218dd Merge pull request #62 from orange-cpp/feaure/added_logo
Feaure/added logo
v4.0rc
2025-09-01 17:04:50 +03:00
50054ca937 Acknowledges logo design contribution
Updates the credits to acknowledge the new initial logo design.
2025-09-01 17:04:29 +03:00
63220c0be7 Adds an omath.psd file.
Adds a binary file named omath.psd.
2025-09-01 17:03:31 +03:00
3b6d19782c Updates README with local image links
Updates the README to use local image links instead of Imgur links for the showcase section.

This improves the project's resilience against external link rot and
ensures the images remain accessible even if Imgur experiences issues.
2025-09-01 17:02:23 +03:00
2d58330508 Replaces banner with logo
Replaces the project banner in the README with a dedicated logo.

This change simplifies the banner implementation and improves maintainability
by using a local image file instead of referencing an external URL.
2025-09-01 16:56:43 +03:00
abf57a55ea Updates include paths and removes dependency
Updates the include paths in omath.hpp to be more explicit,
ensuring correct referencing of header files.

Removes unnecessary include of vector3.hpp from vector2.hpp.
v3.5.1
2025-09-01 01:28:04 +03:00
463532ba81 Merge pull request #60 from orange-cpp/feature/moved_to_dear
Refactors: Moves linear algebra to new directory
2025-09-01 00:02:00 +03:00
d74c66990a Refactors: Moves linear algebra to new directory
Moves linear algebra headers to a new subdirectory to improve project structure.

Updates includes to reflect the directory change.
Adds vcpkg to the tracked repositories.
2025-08-31 23:36:05 +03:00
7f1bc51905 Updates project version to 3.5.0
Increments the project version number in CMakeLists.txt
from 3.4.0 to 3.5.0.
v3.5.0
2025-08-29 22:04:12 +03:00
71127f1f12 Updates project version to 3.4.0
Bumps the project's version number from 3.3.0 to 3.4.0.

Adds a compile definition to expose the project version via the
`OMATH_VERSION` macro.
2025-08-29 22:03:35 +03:00
89041e20ae Merge pull request #59 from orange-cpp/feature/new_primitives
Adds plane primitive generation
2025-08-29 14:41:36 +03:00
a54dd4b52a Fixes plane triangle generation
Corrects the order of vertices when constructing triangles
for the plane primitive, addressing a potential winding order
issue that could lead to incorrect surface normals and rendering.
2025-08-29 00:11:31 +03:00
d7e497b617 Simplifies plane creation logic
Refactors the plane creation function to directly compute the triangle vertices, removing unnecessary intermediate variables. This results in more concise and readable code.
2025-08-28 23:57:22 +03:00
80938cd913 Adds plane primitive generation
Implements a function to generate a plane primitive from two vertices, a direction vector, and a size, returning an array of two triangles.
2025-08-28 23:18:36 +03:00
830505dbe5 Merge pull request #58 from orange-cpp/feature/ortho-proj
Adds left- and right-handed ortho matrices
2025-08-27 23:23:40 +03:00
75565ecf2d Adds left- and right-handed ortho matrices.
Adds functions to generate left- and right-handed orthographic projection matrices.
This provides more flexibility when defining a projection for rendering.
2025-08-27 23:17:56 +03:00
9a7a4c7fff Removed submodule extlibs/glm 2025-08-27 20:22:33 +03:00
c0f0bb3c2e com 2025-08-27 20:07:47 +03:00
a097c0a2f4 Merge pull request #57 from orange-cpp/feature/added_formatters
Adds std::format support for math types
v3.4.0
2025-08-26 12:37:13 +03:00
20ae2b4dd1 Adds formatters for Angle and Color
Adds formatters for `omath::Angle` and `omath::Color` to allow for easy formatting using `std::format`.

This allows users to easily output Angle and Color values in a human-readable format.
2025-08-26 12:35:40 +03:00
115b5a3471 Adds std::format support for math types
Adds `std::formatter` specializations for `Mat`, `Vector2`, `Vector3`, and `Vector4` types, enabling the use of `std::format` for these types.

This simplifies formatting and printing of these mathematical objects, improving code readability and consistency.

Also adds a hash function specialization for Vector3.
2025-08-26 12:22:33 +03:00
77893629f9 Adds omath library header
Creates the main omath header file that includes all
omath library components. This provides a single point
of inclusion for the entire library, simplifying usage
and dependency management.

Also, adjusts the return types for projectile prediction
functions within the legacy engine to explicitly use
the `Vector3` type for consistency and clarity.
v3.3.1
2025-08-25 22:33:00 +03:00
afb27b1aa9 Adds build test status message
Adds a status message to the build process that displays whether unit tests are enabled.

This provides better visibility into the build configuration.
2025-08-25 22:11:39 +03:00
61006122ae Displays build configuration options
Prints the values of various CMake configuration options to the console during the build process.

This provides better visibility into the build configuration and helps with debugging build-related issues.
2025-08-25 22:10:10 +03:00
4eb0f59fc0 Updates build status message
Updates the build status message in CMake to include the project name, providing more context during the build process.
2025-08-25 21:59:25 +03:00
3b4bf24a16 Updates project version to 3.3.0
Increments the project version number in CMakeLists.txt
from 3.2.1 to 3.3.0.
2025-08-25 21:57:07 +03:00
51d93c4464 Removes outdated header comments
Removes redundant and outdated header comments. These comments are no longer necessary for maintaining the codebase.
2025-08-25 21:54:59 +03:00
d83a8121db Merge pull request #55 from orange-cpp/feature/unreal-support
Adds Unreal Engine math library
v3.3.0
2025-08-25 21:49:11 +03:00
2584cda5c3 Fixes namespace and angle calculations
Corrects namespace naming from unity_engine to unreal_engine.

Adjusts projectile prediction and angle calculations for accuracy
in Unreal Engine environments.
2025-08-25 21:46:50 +03:00
c90497f77b Fixes Unreal Engine view angle matrix order
The view angle rotation matrix order in Unreal Engine was incorrect, leading to incorrect camera orientation.

This commit fixes the order of rotation matrices to roll, pitch, yaw
to correctly implement Unreal Engine camera rotations.

Adds comprehensive unit tests for Unreal Engine formulas, camera and constants.

Marks Unreal Engine as supported in README.md.
2025-08-25 21:42:58 +03:00
0de6b4589f Adds .idea/ to .gitignore
Adds the standard .idea/ folder contents to the .gitignore file.

This prevents project-specific IDE settings and workspace files from being tracked by Git, keeping the repository cleaner and avoiding potential conflicts between developers using different IDE configurations.
2025-08-25 21:31:07 +03:00
8004c8c181 Adds Unreal Engine math implementations
Adds Unreal Engine-specific implementations for camera and projectile prediction calculations.

This includes:
- Defining constants and data types tailored for Unreal Engine's coordinate system and conventions.
- Implementing functions for calculating forward, right, and up vectors, view matrices, and perspective projection matrices.
- Providing camera trait for look-at angle calculations and projection matrix generation.
- Implements projectile prediction traits and utilities.
2025-08-25 21:30:35 +03:00
1246c4ed07 Update README.md 2025-08-25 17:26:56 +03:00
ab463e1caa Update README.md 2025-08-25 16:00:36 +03:00
4f13010e7d Removes workspace configuration file
Deletes the `.idea/workspace.xml` file.
This file tracks workspace-specific settings,
and is not meant to be shared across different
development environments.
2025-08-21 00:33:02 +03:00
83d3cc099f Improves test accuracy and adds .gitignore entry
Updates unit tests to include more accurate assertions for camera projections.

Adds .idea/workspace.xml to .gitignore to prevent tracking local IDE settings.

Refactors some test fixture class names for consistency.
2025-08-21 00:30:05 +03:00