Commit Graph

473 Commits

Author SHA1 Message Date
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 56ae33bc5f fixed naming 2025-12-06 14:49:30 +03:00
orange ccfa9461c9 removed file 2025-12-06 14:34:20 +03:00
orange c70eeab9c6 update 2025-12-06 14:30:44 +03:00
orange 39ed4e50d2 fix 2025-12-06 13:56:25 +03:00
orange 70c64f765b added collider interface 2025-12-06 13:56:25 +03:00
orange 59bbf31820 fix 2025-12-04 05:08:01 +03:00
orange 6b54c790fc patch 2025-12-04 05:02:54 +03:00
orange 5dff27ac8d fix 2025-12-04 05:01:52 +03:00
orange 098d8af7b6 replaced with bool 2025-12-04 04:52:22 +03:00
orange e4e40c13d8 oops 2025-12-04 04:47:34 +03:00
orange 40f57c5ff8 added nodiscard + static 2025-12-04 04:46:00 +03:00
orange eab040ab77 fixed typo 2025-12-04 04:45:15 +03:00
orange 343f98490f tweak 2025-12-04 04:38:44 +03:00
orange 46c65157fe replaced with emplace 2025-12-03 14:11:29 +03:00
orange e3f4de9197 back to static 2025-12-03 13:34:35 +03:00
orange d786eda33a switched to shared_ptr 2025-12-03 13:30:05 +03:00
orange 57398efb31 added poly allocators 2025-12-03 09:52:53 +03:00
orange 3471b44f9b fixed uv type 2025-12-01 05:03:43 +03:00
orange 8ff358df82 fixed somebugs, improved tests 2025-11-29 21:24:45 +03:00
orange 2e282d2732 changed ebo type 2025-11-29 16:49:19 +03:00
orange c5ec098ade fix 2025-11-29 16:37:30 +03:00
orange 6edfb93d09 refactored using stuff 2025-11-29 16:35:43 +03:00
orange 2d874f50a5 added conecpt to method 2025-11-29 16:33:31 +03:00
orange 5a3f4cc330 added template arg to Vertex struct 2025-11-29 16:31:24 +03:00
orange 09263b390f improved mesh class 2025-11-29 16:28:06 +03:00
orange 4c62e18042 added std::optional 2025-11-13 21:25:45 +03:00
orange f41a4596fd Calculates penetration vector for EPA algorithm
Adds `penetration_vector` to the `epa_result` struct to represent the direction and magnitude of penetration.

This allows for more accurate collision response calculations and simplifies access to penetration information.

Updates both the early-exit and iterative EPA calculations within `epa_algorithm.hpp` to compute and store the penetration vector, factoring in the relative origin of the colliding meshes.
2025-11-13 21:19:09 +03:00
orange 788fdff7ef made ref 2025-11-13 17:34:39 +03:00
orange 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
orange 8d4f76e84d Refactors vertex parameter name
Updates the `make_face` function to use `vertexes` instead of `verts` for clarity and consistency in naming conventions.
2025-11-13 16:16:23 +03:00
orange c274bd28c9 Refactor EPA algorithm for clarity
Improves code organization and readability within the EPA algorithm implementation.

Changes include renaming variables for better semantic meaning (e.g., `verts` to `vertexes`), adding `final` specifiers to structs for clarity, and enhancing function signatures with `[[nodiscard]]` where appropriate.

These refactorings aim to enhance maintainability and understanding of the code without altering its core functionality.
2025-11-13 16:15:45 +03:00
orange 7efe1e54d4 Refactors face initialization
Replaces `push_back` with `emplace_back` when initializing faces in the EPA algorithm. This avoids unnecessary copying and improves performance during face creation.
2025-11-13 16:07:57 +03:00
orange 3b80805a7e Refactors EPA algorithm loop
Replaces the `for(;;)` loop in the EPA algorithm with a `while(true)` loop for improved readability and clarity.

This change enhances the maintainability of the code without altering its functionality.
2025-11-13 16:06:18 +03:00
orange 2eb609d83f fixed formating 2025-11-13 16:01:42 +03:00
orange 14f007047a added epa 2025-11-13 15:57:38 +03:00
orange d8d585e3eb Refactors triangle calculations for generic vectors
Updates the `Triangle` class to use a generic `Vector` type instead of `Vector3`, enhancing flexibility and reusability.

Changes include updating relevant function return types to use `Vector::ContainedType` and adapting length and distance calculations accordingly.

This refactoring supports the ongoing work on the EPA algorithm (feature/epa_algorithm) by providing a more adaptable foundation for geometric calculations.
2025-11-13 15:29:10 +03:00
orange ce1142dac9 Adds GjkHitInfo and refactors collision detection
Introduces `GjkHitInfo` to encapsulate collision results, including the simplex.

Refactors `is_collide` to return the `GjkHitInfo` struct, providing more detailed collision data. This prepares the codebase for integrating the EPA algorithm (as per the feature branch) which requires simplex information.
2025-11-13 13:33:18 +03:00
orange 12d11f3e8c Refactors GJK algorithm vertex type
Simplifies the GJK algorithm by using a type alias for the vertex type, improving code readability and reducing redundancy. Removes unnecessary includes.
2025-11-11 23:37:56 +03:00
orange f5b083a0da Adds nodiscard attribute to simplex functions
Applies the `[[nodiscard]]` attribute to several functions within the `omath::collision` namespace to improve code safety and signal potential misuse when return values are ignored. This encourages developers to handle the results of these functions appropriately.
2025-11-11 23:36:19 +03:00
orange 58c80d7ec4 Refactors perpendicular vector selection
Simplifies logic for finding a non-zero perpendicular vector by iterating through candidate directions. This improves readability and maintainability.
2025-11-11 23:34:30 +03:00
orange 9783a63c9b forgot keyname 2025-11-09 23:23:13 +03:00
orange 369f2ee582 added other collision types 2025-11-09 22:39:09 +03:00
orange 7d6309c0dd style fix 2025-11-09 22:27:04 +03:00
orange 8f1998b0c5 removed redundant headers 2025-11-09 22:25:29 +03:00
orange 353fb290b7 added mesh class, added mesh trair 2025-11-09 22:10:56 +03:00
orange 4fe001b102 add mesh class 2025-11-09 21:28:00 +03:00
orange 71f59406a9 Refactors Simplex class for GJK algorithm
Simplifies Simplex initialization and accessors.

Ensures correct handling of collinearity within the simplex calculation, preventing issues when colliders share the same origin. This improves stability and reliability of the GJK algorithm.
2025-11-09 17:29:50 +03:00
orange a9d60675f3 Corrects transform order for collider
Reorders the transform application to translation, scale, then rotation.

This ensures the collider’s world matrix is constructed correctly, preventing potential scaling or rotation issues in the GJK algorithm being developed on this branch.
2025-11-09 17:15:01 +03:00