Commit Graph

134 Commits

Author SHA1 Message Date
0515018605 added targets specification to ci cd build 2025-09-22 02:38:25 +03:00
32d88f0881 improved tests 2025-09-20 17:00:49 +03:00
15898e9b3d improved opengl tests stability 2025-09-20 16:36:05 +03:00
e37fefae23 improved test stability 2025-09-20 16:34:44 +03:00
f8f3f2c45d fixed test 2025-09-20 16:22:24 +03:00
aee78d7671 added more iterations 2025-09-20 16:08:04 +03:00
eb443d533c style fix 2025-09-20 16:00:30 +03:00
584a66b20c fix 2025-09-20 15:44:33 +03:00
3fa85f4c4d added new mat function
more tests
2025-09-20 15:44:33 +03:00
d3c90253f7 fixed test 2025-09-20 15:44:33 +03:00
eeb4dccb12 fixed iw engine
fixed source

revert
2025-09-20 15:44:33 +03:00
1d8dba6487 Fixes float type conversion in world_to_screen
Fixes a potential type conversion issue by explicitly casting the x-coordinate to float in the world_to_screen test. This prevents possible compiler warnings and ensures the intended behavior.
2025-09-09 02:13:45 +03:00
18b0b210cf Adds projection test for world-to-screen consistency
Adds a test to verify the consistency of world-to-screen and
screen-to-world projections. This ensures that projecting a point
from world to screen and back results in the same point, thereby
validating the correctness of the camera projection transformations.
2025-09-09 01:37:38 +03:00
9e08f5bb5c Adds screen to world space conversion
Adds functionality to convert screen coordinates to world space, including handling for cases where the inverse view projection matrix is singular or when the world position is out of screen bounds.

Also exposes Camera class to unit tests.
2025-09-09 01:31:23 +03:00
1efa28d676 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
55c5bb92da 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
1c58340404 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
abf068262d 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
bd0410fcac 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
bdbf596647 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
28b3aecf9d 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
e6627c7a06 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
07de3d27ec Configures project IDE settings and improves gitignore
Adds project-specific IDE settings to improve code style consistency and development environment.

Removes the .idea directory from the .gitignore file, as these files are now intended to be part of the project for consistent IDE configuration across contributors.
2025-08-21 00:11:37 +03:00
24a80c4f14 Adds comparison operators to Vector types
Adds less than, greater than, less than or equal, and greater than or equal operators to the Vector2, Vector3 and Vector4 classes.
The comparison is based on the lengths of the vectors.

Adds corresponding unit tests.
2025-08-12 08:54:33 +03:00
0fe5b6b7a1 Enables legacy code compilation
The changes encapsulate the matrix tests within an `#ifdef` block, allowing conditional compilation based on whether `OMATH_ENABLE_LEGACY` is defined. This enables the legacy code to be compiled only when needed.
2025-07-15 11:51:14 +03:00
e68ca673c9 Renames test fixture for clarity.
Updates the name of the test fixture from "lline_tracer_fixture" to "line_tracer_fixture" for improved readability and consistency in the test code.
2025-07-07 08:28:29 +03:00
77bf19da2d Fixes potential compile error
Corrects the usage of `At` method within the unit tests to `at` to resolve a potential compile error due to incorrect case sensitivity.
2025-07-07 08:18:00 +03:00
63d9ea903e fixed naming in tests 2025-07-07 08:02:35 +03:00
cc2754a985 Renames library target to project name
Updates the CMakeLists.txt to use the project name as the library target name instead of hardcoding "omath".

This change ensures consistency and avoids potential conflicts when integrating the library into other projects.
It also aligns the target naming with CMake best practices.
2025-07-06 11:07:15 +03:00
7009d998af Update cmake-multi-platform.yml
switched to clang

Update cmake-multi-platform.yml
Update cmake-multi-platform.yml
Update cmake-multi-platform.yml
Update cmake-multi-platform.yml
Update cmake-multi-platform.yml
Update cmake-multi-platform.yml
Update cmake-multi-platform.yml
Update cmake-multi-platform.yml
added runtime dir

fix
2025-05-03 22:51:46 +03:00
6df9d59fe9 fixed style 2025-05-03 20:38:58 +03:00
4406e1e461 changed code style 2025-05-03 20:31:59 +03:00
01b7256e98 improved cmake, removed useless cmake files 2025-04-30 21:26:25 +03:00
4dbddd0a34 style fix 2025-04-29 20:52:41 +03:00
ef787fd4e7 added test case 2025-04-29 20:49:59 +03:00
468261d3f1 added additional methods 2025-04-29 20:10:17 +03:00
6d65e1f1c3 improved tests 2025-04-18 16:36:22 +03:00
Vladislav Alpatov
6a7d328a7c improved line tracer 2025-04-18 16:00:23 +03:00
505a8cce9a added new build option 2025-04-18 00:51:07 +03:00
5ff57f9ffa added box 2025-04-18 00:43:46 +03:00
06b891c827 improved openg gl rotation matrix, added tests 2025-04-16 19:11:02 +03:00
2bface1c49 added tests for source 2025-04-16 18:53:31 +03:00
97f38af2b5 added unit tests 2025-04-16 18:35:50 +03:00
7642936716 removed method from Mat added method for unity 2025-04-16 17:52:19 +03:00
e0d61fa486 added func
added rotation matrix for opengl

updated unit tests
2025-04-16 17:40:00 +03:00
582a591e4b fixed tests 2025-04-12 00:04:07 +03:00
7e580506b6 fixed style 2025-03-29 04:00:35 +03:00
47e8bc1a04 fixed unity view matrix building 2025-03-24 06:30:09 +03:00
58b67518b4 removed comment 2025-03-23 01:12:46 +03:00
2f2c0557c8 name fix 2025-03-23 01:06:36 +03:00