Commit Graph

29 Commits

Author SHA1 Message Date
b33288555a Adds mat_scale function
Introduces a utility function to create a scaling matrix from a Vector3.
This simplifies the creation of scale transformations, particularly useful for the GJK algorithm implementation.
2025-11-09 14:19:08 +03:00
4c525d5c31 Refactors GJK tetrahedron handling
Updates the `handle_tetrahedron` function to use const references for simplex points, improving efficiency and readability.

Corrects a potential bug where the `simplex` variable wasn't being correctly updated when recursively calling `handle_triangle`.

Also, const-qualifies `point_to_same_direction` for better safety.
2025-11-09 14:15:32 +03:00
8f054316fc Implements GJK collision detection
Adds GJK algorithm implementation for detecting collisions between mesh colliders.

Includes mesh collider definition and unit tests for basic collision detection.

Provides a foundation for more complex collision handling and physics interactions.
2025-11-09 14:04:01 +03:00
55041384c5 added vcpkg manifest file 2025-10-23 06:35:22 +03:00
25dc212b08 added contained type alias 2025-10-23 06:26:57 +03:00
6832799040 Unifies orthographic matrix generation
Consolidates the generation of left-handed and right-handed orthographic matrices into a shared implementation to reduce code duplication.
2025-10-14 13:06:23 +03:00
7be3bde498 Adds hash support for Vector2, Vector3, and Vector4
Implements `std::hash` specialization for `omath::Vector2`, `omath::Vector3`, and `omath::Vector4` with float components.

This enables usage of these vector types as keys in hash-based containers, such as `std::unordered_map` and `std::unordered_set`.
2025-10-14 13:00:28 +03:00
9d5984093d Uses source engine camera trait for view angle calculation
Replaces the custom `view_angle_to` function with `omath::source_engine::CameraTrait::calc_look_at_angle` for vector3 view angle calculations.
This change aligns with source engine conventions and improves code consistency.
2025-10-11 15:46:52 +03:00
70f2f90100 reordored omath headers 2025-10-03 13:51:53 +03:00
800435b407 improvement 2025-09-25 21:43:33 +03:00
a5ed088ce0 imprvoed code style 2025-09-25 19:33:06 +03:00
3e5fb1bdb5 fixed rotation matrix 2025-09-20 15:44:33 +03:00
3fa85f4c4d added new mat function
more tests
2025-09-20 15:44:33 +03:00
99d77d7790 fix 2025-09-18 18:42:02 +03:00
df5ca54b90 now its ref 2025-09-18 18:39:28 +03:00
80bae265c0 improved naming 2025-09-18 18:38:07 +03:00
dc3f2980db Removes FMA check for matrix multiplication
Removes preprocessor check for FMA instructions in matrix multiplication functions.
This simplifies the code and relies on the compiler's ability to optimize the
code based on available hardware support. The assumption is that modern
compilers will automatically utilize FMA instructions if available, and fall
back to alternative implementations if not.
2025-09-18 06:02:37 +03:00
4505aee3c2 Guards AVX2 usage with a preprocessor definition
Ensures that AVX2 intrinsics are only included when the
OMATH_USE_AVX2 preprocessor definition is set. This prevents
compilation errors when AVX2 support is not available or
explicitly disabled.
2025-09-18 05:22:22 +03:00
dc3606301d added avx mutiplication 2025-09-17 19:47:29 +03:00
578a4e1d32 removed unused var 2025-09-17 17:38:17 +03:00
13e0bb3262 added space 2025-09-17 17:33:05 +03:00
619c15072c decomposed mutiplication 2025-09-17 17:30:57 +03:00
242fc45ffa forgot std 2025-09-17 17:23:02 +03:00
a630da39e3 Improves matrix multiplication performance
Optimizes matrix multiplication by specializing the algorithm
based on the matrix storage type (row-major or column-major).

This change significantly improves performance by leveraging
memory access patterns specific to each storage order.
2025-09-17 17:12:41 +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
50bfc3e943 removed unused defines 2025-09-03 12:52:00 +03:00
15f2a3917f fix 2025-09-03 12:50:31 +03:00
55c7922b24 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.
2025-09-01 01:28: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