Commit Graph

891 Commits

Author SHA1 Message Date
c22644d09f cleaned up code 2025-11-29 22:00:07 +03:00
c1d96509f1 updated read me 2025-11-29 21:45:09 +03:00
dd73157d1f Merge pull request #107 from orange-cpp/feature/example_improvement
fixed somebugs, improved tests
2025-11-29 21:41:43 +03:00
50c4822275 fixed rotation 2025-11-29 21:34:40 +03:00
89d2e5417f added rotation by pitch 2025-11-29 21:31:20 +03:00
8ff358df82 fixed somebugs, improved tests 2025-11-29 21:24:45 +03:00
24e51f1be3 Merge pull request #106 from orange-cpp/feature/mesh_upgrade
Feature/mesh upgrade
2025-11-29 16:55:31 +03:00
2e282d2732 changed ebo type 2025-11-29 16:49:19 +03:00
c5ec098ade fix 2025-11-29 16:37:30 +03:00
6edfb93d09 refactored using stuff 2025-11-29 16:35:43 +03:00
2d874f50a5 added conecpt to method 2025-11-29 16:33:31 +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
5a8b033816 removed newline v4.4.0 2025-11-14 18:20:25 +03:00
485f2e1e39 Update version to 4.4.0 2025-11-14 14:35:58 +03:00
7b6aa474c1 Bump version from 4.2.0 to 4.4.0 2025-11-14 12:12:23 +03:00
87da07319e Revise Code of Conduct with comprehensive updates
Updated the Code of Conduct to include a universal declaration, preamble, and detailed articles outlining community rights, responsibilities, and enforcement strategies.
2025-11-14 00:30:55 +03:00
61eb879e99 Updates theme with custom link styles
Adds custom CSS to style links and the navbar,
improving the visual appearance of the documentation.

Disables unnecessary code inspection warnings to reduce clutter.
2025-11-13 23:47:17 +03:00
dc3a6f6749 Merge pull request #105 from orange-cpp/feature/epa_improvement
Feature/epa improvement
2025-11-13 22:13:26 +03:00
4c62e18042 added std::optional 2025-11-13 21:25:45 +03:00
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
076d5f95d1 Merge pull request #104 from orange-cpp/copilot/update-docs-new-classes
Add documentation for GJK/EPA collision detection and mesh primitives
2025-11-13 19:00:11 +03:00
copilot-swe-agent[bot]
0be9e57309 Update API overview with new collision detection and mesh classes
Co-authored-by: orange-cpp <59374393+orange-cpp@users.noreply.github.com>
2025-11-13 15:21:37 +00:00
copilot-swe-agent[bot]
d9634d1580 Add documentation for collision detection and mesh classes
Co-authored-by: orange-cpp <59374393+orange-cpp@users.noreply.github.com>
2025-11-13 15:19:36 +00:00
copilot-swe-agent[bot]
04a4217bc5 Initial plan 2025-11-13 15:10:10 +00:00
f5889ac20b Merge pull request #103 from orange-cpp/feature/epa_algorithm
Feature/epa algorithm
2025-11-13 18:08:18 +03:00
788fdff7ef made ref 2025-11-13 17:34:39 +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
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
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
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
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
2eb609d83f fixed formating 2025-11-13 16:01:42 +03:00
14f007047a added epa 2025-11-13 15:57:38 +03:00
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
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
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
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
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
ee955a7ac2 Merge pull request #102 from orange-cpp/feature/gjk_algorithm
Feature/gjk algorithm
v4.3.0
2025-11-09 23:27:03 +03:00
9783a63c9b forgot keyname 2025-11-09 23:23:13 +03:00
369f2ee582 added other collision types 2025-11-09 22:39:09 +03:00
7d6309c0dd style fix 2025-11-09 22:27:04 +03:00
8f1998b0c5 removed redundant headers 2025-11-09 22:25:29 +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
4fe001b102 add mesh class 2025-11-09 21:28:00 +03:00