Commit Graph

190 Commits

Author SHA1 Message Date
67cee33236 improved code style 2025-12-28 02:32:35 +03:00
aaf1e026a7 improved code style 2025-12-28 02:29:19 +03:00
f0f369a9ab warning fix 2025-12-25 02:35:50 +03:00
00aa706469 Implement coverage for Windows/Linux/MacOS (#126) (#128)
* Implement coverage for Windows/Linux/MacOS (#126)

* reverted

---------

Co-authored-by: Saikari <lin@sz.cn.eu.org>
2025-12-25 02:28:17 +03:00
3952696199 Feature/more constexpr (#125)
* added constexpr

* fix

* improved stuff

* added const

* improvement

* fix

* fix

* patch
2025-12-24 02:32:14 +03:00
d620d729df Temp (#123)
* Coverage

* added fixes

* removed spacing

* removed junk

* removed print

* removed coverage

* removed useless stuff

* fix

---------

Co-authored-by: Saikari <lin@sz.cn.eu.org>
2025-12-23 02:47:12 +03:00
Saikari
103a4a62d7 try 2025-12-21 22:57:38 +03:00
Saikari
a17e3af0ab Add MinGW support 2025-12-18 01:59:11 +03:00
Saikari
5758b3bbe5 Add iOS support 2025-12-16 14:48:20 +03:00
Saikari
5fb280393b Add NDK support 2025-12-15 00:04:11 +03:00
3b4a015783 improved pmr stuff 2025-12-13 00:06:45 +03:00
90dcf2fef8 added extra test 2025-12-09 10:16:57 +03:00
39ccf471b1 reverted is out of bounds check + added extra test 2025-12-09 10:06:25 +03:00
70c64f765b added collider interface 2025-12-06 13:56:25 +03:00
e3f4de9197 back to static 2025-12-03 13:34:35 +03:00
d786eda33a switched to shared_ptr 2025-12-03 13:30:05 +03:00
57398efb31 added poly allocators 2025-12-03 09:52:53 +03:00
2e282d2732 changed ebo type 2025-11-29 16:49:19 +03:00
5a3f4cc330 added template arg to Vertex struct 2025-11-29 16:31:24 +03:00
09263b390f improved mesh class 2025-11-29 16:28:06 +03:00
4c62e18042 added std::optional 2025-11-13 21:25:45 +03:00
9c383050cd add another test 2025-11-13 17:22:54 +03:00
c28cb1a748 fixed formating 2025-11-13 16:56:48 +03:00
bb174e1137 Refactors collision detection with GJK and EPA
This commit refactors the collision detection pipeline to utilize a more standard GJK algorithm and simplifies the EPA implementation.

Removes the custom `GjkAlgorithmWithSimplex` in favor of the standalone `GjkAlgorithm`. This streamlines the collision detection process and enhances code clarity.

Updates unit tests to align with the new GJK implementation, ensuring continued functionality and correctness.
2025-11-13 16:39:26 +03:00
d784602904 Improves EPA test coverage
Adds a comprehensive unit test for the EPA algorithm,
validating collision detection, depth calculation, and
separation axis determination with a cube overlap scenario.

Refactors the test for clarity and robustness.
2025-11-13 16:34:14 +03:00
14f007047a added epa 2025-11-13 15:57:38 +03:00
8e332f3979 fixed formating 2025-11-09 22:22:02 +03:00
353fb290b7 added mesh class, added mesh trair 2025-11-09 22:10:56 +03:00
14296e45c4 fix 2025-11-09 17:09:46 +03:00
e1ff9efc91 Adds mesh scaling to mesh collider
Updates the mesh collider to include a scale parameter, allowing for non-uniform scaling of the collision mesh.

This provides more flexibility in defining collision shapes and supports a wider range of scenarios.
2025-11-09 17:02:07 +03:00
c20bfe1f8c Adds GJK collision test with equal origins
Implements a new test case for the GJK algorithm
to verify collision detection when colliders share the same origin.
This enhances the robustness of collision detection in scenarios
where objects are positioned at the same location.
2025-11-09 16:57:52 +03:00
8875157c79 Refactor: Simplify GJK simplex handling
Removes the separate `Simplex` class and integrates its functionality directly into the `GjkAlgorithm`. This simplifies the code and reduces unnecessary overhead.

Updates tests to align with refactored implementation.
2025-11-09 16:02:13 +03:00
c0353cd9be updated test 2025-11-09 15:38:38 +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
8aa2dca456 Improves screen to world conversion accuracy
Adds support for different screen origin configurations.

This change allows for more accurate conversion from screen coordinates to world coordinates by correctly handling different screen origin positions (top-left and bottom-left). Includes new unit tests to verify the functionality with both configurations.
2025-11-08 13:51:56 +03:00
9f05b36388 Adds const version of rev_bar method
Adds a const overload for the `rev_bar` virtual method.
This allows calling the method on const instances of the reverse engineered class.
2025-11-01 13:28:51 +03:00
bcbe90737f added some comments 2025-10-27 11:25:31 +03:00
c54ec32864 Links tests to gtest when available
Conditionally links the test target to gtest when it is available,
rather than requiring the OMATH_BUILD_VIA_VCPKG flag to be false.
This allows for a more flexible test setup.
2025-10-27 09:05:40 +03:00
62010ae7be Update build system and enable VCPKG
Migrates to CMake presets and enables VCPKG to manage dependencies.
Removes explicit submodule configuration.
Updates benchmark and googletest to be integrated or linked properly.
The goal is to ease the build process and reduce complexity related to linking and dependency management.
2025-10-27 08:34:05 +03:00
55041384c5 added vcpkg manifest file 2025-10-23 06:35:22 +03:00
a22feeb1b9 added frostbite sources 2025-10-23 00:08:17 +03:00
afb8f9cb80 nuked not needed test 2025-10-21 04:38:43 +03:00
10215e6e1c added second method of w2s 2025-10-21 04:38:43 +03:00
9af201069a Fixes incorrect NDC calculation and updates formulas
Corrects the NDC calculation in `world_to_screen` to improve accuracy.
Replaces custom perspective projection matrix calculation with `omath::mat_perspective_right_handed` for correctness and consistency.
Updates test cases and provides debugging information by printing view and projection matrices.
Addresses an issue in the feature/ndc_invalid_calc_fix branch.
2025-10-21 04:38:43 +03:00
8d815389b8 Removes PE definition files
Removes the PE definition files and related functions as they are no longer needed.
2025-10-12 19:41:18 +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
3d130fd1fb Removes PE scanner test code
Eliminates the PE scanner test code from the unit tests.

This removes a test that appears to be broken or no longer relevant, since the test directly references a file path.
2025-10-09 19:58:58 +03:00
f1ee6e9e35 Supports broader architectures in PE scanner
Updates the PE scanner implementation to support both 32-bit and 64-bit architectures.
Leverages `std::variant` and a generic `ImageNtHeaders` to abstract architecture-specific details.
Simplifies the logic for retrieving section data, generalizing the process for improved maintainability.
2025-10-09 19:58:19 +03:00
63debc635e fixed for mac improved readability 2025-10-08 19:22:20 +03:00
007340edaa Adds PE file header definitions
Defines `DosHeader` and `FileHeader` structures to represent PE file header information.
Includes definitions for `MachineId` enum and `FileCharacteristics` union.
These definitions are prerequisite for PE file parsing and analysis.
2025-10-08 19:22:20 +03:00