Commit Graph

68 Commits

Author SHA1 Message Date
orange 94f4ca0f7b replaced numeric limits 2025-12-19 23:49:54 +03:00
orange 3bc69dfe26 changed epsilon to numeric limmits 2025-12-19 23:34:10 +03:00
Saikari a17e3af0ab Add MinGW support 2025-12-18 01:59:11 +03:00
orange 7cd49fbca1 added check method 2025-12-09 10:21:54 +03:00
orange 39ccf471b1 reverted is out of bounds check + added extra test 2025-12-09 10:06:25 +03:00
orange 006911914c returned stuff back 2025-12-09 09:31:22 +03:00
orange 21c1b2fbdb hot fix 2025-12-09 09:26:55 +03:00
orange c215a0a265 fixed bug due to on screen ndc check 2025-12-09 07:53:52 +03:00
orange 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
orange 41bec6c6cd deleted not needed header 2025-10-23 00:49:54 +03:00
orange 93ab7a9b79 updated comments 2025-10-23 00:48:54 +03:00
orange 10215e6e1c added second method of w2s 2025-10-21 04:38:43 +03:00
orange 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
orange 70f2f90100 reordored omath headers 2025-10-03 13:51:53 +03:00
orange 18a1349693 reverted 2025-09-20 15:46:21 +03:00
orange 3fa85f4c4d added new mat function
more tests
2025-09-20 15:44:33 +03:00
orange eeb4dccb12 fixed iw engine
fixed source

revert
2025-09-20 15:44:33 +03:00
orange 4f0cfd4cef Adds 2D screen to world conversion
Adds an overload for screen_to_world that accepts a 2D screen position.

Renames screen_to_dnc to screen_to_ndc for clarity.
2025-09-14 04:48:56 +03:00
orange 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
orange 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
orange 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
orange cdde09c70c feat(omath): Add NDC to screen position coordinate diagram 2025-08-12 09:29:14 +03:00
orange 62c86fdc09 Introduces CameraEngine concept
Adds a concept `CameraEngineConcept` to ensure that camera
engine implementations provide the necessary functions
with the correct signatures and `noexcept` specifications.

This enables compile-time checks for valid camera engine
implementations, improving code reliability and preventing
runtime errors.
2025-08-12 09:13:02 +03:00
orange 94bc18ba18 Removes virtual destructor from Camera
Removes the virtual destructor from the Camera class as it is not required,
as the class does not act as a base class. This simplifies the class
definition and avoids potential vtable overhead.
2025-08-11 01:43:22 +03:00
orange b4fbcba8f2 Marks Camera class as final
Prevents inheritance from the Camera class.
2025-08-11 01:18:39 +03:00
orange 1f4b10f336 Refactors camera and prediction engine traits.
Moves camera and prediction engine implementations into traits for each engine,
decoupling the engine-specific logic from the core classes, promoting code reuse
and maintainability. This change allows for easier addition of new engines and
customization of existing ones.
2025-08-11 00:32:09 +03:00
orange ba2c60389f added more noexcept 2025-05-05 01:46:50 +03:00
orange 45c7ff131f added noexcept 2025-05-05 01:16:12 +03:00
orange 6df9d59fe9 fixed style 2025-05-03 20:38:58 +03:00
orange 4406e1e461 changed code style 2025-05-03 20:31:59 +03:00
orange a36b54610b resetting state 2025-04-25 23:52:10 +03:00
orange e487ddd11b naming fixed 2025-03-23 01:02:11 +03:00
orange d6a399fa65 uncommented test 2025-03-23 00:52:12 +03:00
orange 620ea44b06 improved camera 2025-03-22 17:39:40 +03:00
orange cbc0a13a79 added unity engine tests 2025-03-22 08:12:16 +03:00
orange 756bcef6e1 fixed include names 2025-03-21 04:40:59 +03:00
orange e4eb27c6de change 2025-03-21 04:21:31 +03:00
Vladislav Alpatov 5fdf3dad16 renamed headers 2025-03-21 04:17:42 +03:00
orange ebef8f48ca improved mat & camera interface 2025-03-15 18:53:18 +03:00
Vladislav Alpatov a68ebd9ab7 now template 2025-03-01 21:11:46 +03:00
orange 822a6ce342 hot fix 2025-01-06 05:36:27 +03:00
orange d80e1658e8 added open gl stuff 2024-12-23 17:53:47 +03:00
orange a68007a1f4 added methods 2024-12-23 15:34:38 +03:00
orange b0156cec18 dropped .dll/.so support 2024-12-23 13:47:28 +03:00
さくらみこ e4ac74b7d9 clean 2024-12-17 08:40:48 +03:00
さくらみこ b07a3efc86 fixup 2024-12-17 07:24:44 +03:00
Saikari 7ff8eb0fb2 Export 2024-12-17 04:55:13 +03:00
orange fd1bb25ed8 improved some code 2024-12-08 05:19:49 +03:00
orange eddabf034b optimized view proj matrix generation 2024-12-04 16:04:41 +03:00
orange dc3fcafd48 refactored camera 2024-12-04 04:58:29 +03:00