Commit Graph

207 Commits

Author SHA1 Message Date
08d2ccc03a Refactors Vector operations for type safety
Ensures type safety in Vector2, Vector3, and Vector4 operations by using static_cast(0) instead of relying on implicit conversions.
This prevents potential issues with different numeric types.

Adds from_im_vec2 and from_im_vec4 methods for creating vectors from ImVec2/ImVec4 types.
2025-08-06 06:06:42 +03:00
21ec23d77b patch 2025-08-06 05:56:09 +03:00
695a8035b5 Adds engine traits for projectile prediction
Implements engine-specific traits for projectile and target position prediction.
Each trait encapsulates logic tailored to a specific game engine (IW, OpenGL, Unity),
accounting for engine-specific coordinate systems and calculations.
This allows for accurate projectile prediction across different game environments.
2025-08-06 05:45:37 +03:00
d12b236e56 Refactors target position prediction
Moves target prediction logic into engine traits, improving modularity.

This change consolidates target position prediction within the engine traits,
allowing for a more flexible and maintainable design.

This eliminates redundant code and simplifies the core prediction engine by
delegating target movement calculations to the appropriate trait.
2025-08-04 03:16:04 +03:00
7a5090d9f6 Marks legacy engine class as final
Prevents further inheritance from the legacy projectile prediction engine class.
2025-08-04 01:12:22 +03:00
ec76a7239c Adds direct pitch angle calculation
Implements a direct pitch angle calculation for scenarios with zero gravity, ensuring accurate projectile trajectory predictions in such conditions.

Also marks several methods as noexcept for better performance and exception safety.
2025-08-04 01:11:11 +03:00
9e1990942b Refactors projectile prediction engine
Migrates projectile prediction logic to leverage engine traits for improved flexibility and testability.

This change decouples core prediction algorithms from specific engine implementations, allowing for easier adaptation to different game engines or simulation environments.
2025-08-03 18:28:47 +03:00
f1fbea21a7 Refactors projectile prediction engine
Refactors the projectile prediction engine by introducing an interface
and making the legacy implementation more flexible.

The legacy engine is updated to allow for coordinate system customization
through virtual methods, enabling usage in different game environments.

Also introduces vcpkg support for easier dependency management and adds boost-asio as a dependency.
2025-08-03 17:33:22 +03:00
4b44ce0667 Documents projectile launch angle formula
Adds a comment documenting the formula used for calculating the projectile launch pitch angle.

The comment includes a link to the Stack Overflow discussion where the formula was found and the LaTeX representation of the formula for clarity.
2025-07-31 21:52:16 +03:00
8e411771c2 Adds option to enable legacy classes
Introduces a CMake option to enable legacy classes,
allowing for backward compatibility with older code.
This ensures that older codebases can still function
while new development can utilize updated classes.
2025-07-15 11:48:33 +03:00
66258f0f6d Updates CMake export target and namespace.
Updates the CMake export target and namespace to use the project name,
improving consistency and avoiding naming conflicts.

Adds a simple diagram to the triangle header file.
2025-07-06 11:14:46 +03:00
7e4a6134bf added new method 2025-06-23 06:14:17 +03:00
17eb0cd0dc improved naming 2025-05-13 09:47:08 +03:00
52024285d2 added noexcept 2025-05-13 09:34:39 +03:00
f179aea4d7 removed even float type from vector classes 2025-05-13 09:22:23 +03:00
5489c296e9 added more noexcept 2025-05-05 02:24:23 +03:00
50ddf2d31e added more noexcept 2025-05-05 01:46:50 +03:00
a6e4c0461d added noexcept 2025-05-05 01:16:12 +03:00
6749f9f759 added noexcept for color and angles 2025-05-04 19:16:49 +03:00
9a38d47b0d added noexcept for vector types 2025-05-04 19:13:26 +03:00
49ea113348 fixed style 2025-05-04 18:54:33 +03:00
af21f9a946 removed pow 2025-05-04 18:07:35 +03:00
f096f7179f fixed clang format 2025-05-04 17:42:32 +03:00
449c60133c bugfix 2025-05-03 21:36:16 +03:00
dd738f365d fix 2025-05-03 20:51:50 +03:00
b5e788385d fixed style 2025-05-03 20:38:58 +03:00
df6d75e554 changed code style 2025-05-03 20:31:59 +03:00
a0d1dc4313 added test case 2025-04-29 20:49:59 +03:00
1c5c9360c8 added inverse method 2025-04-29 20:33:39 +03:00
4615769682 added additional methods 2025-04-29 20:10:17 +03:00
4ef674f7b4 fixed infinite recursion in compile time 2025-04-29 20:08:27 +03:00
69b9049fb0 fixed gimba lock for unity 2025-04-26 00:52:46 +03:00
d7f1f49165 resetting state 2025-04-25 23:52:10 +03:00
8bf0bb8e0d improved line trace and box primitive 2025-04-18 13:56:08 +03:00
a340766348 switched to polygons 2025-04-18 12:34:24 +03:00
254674a62e fixed code style 2025-04-18 12:11:43 +03:00
97c2da893b added ratio param 2025-04-18 01:33:47 +03:00
0ce30a7038 added new build option 2025-04-18 00:51:07 +03:00
492ddfd566 added box 2025-04-18 00:43:46 +03:00
bed204a663 added unit tests 2025-04-16 18:35:50 +03:00
3f6ea010dc fixed formating 2025-04-16 17:52:57 +03:00
592a98f38c removed method from Mat added method for unity 2025-04-16 17:52:19 +03:00
1601f3cbc8 added func
added rotation matrix for opengl
2025-04-16 17:40:00 +03:00
2180f8ab97 removed whitespaces 2025-04-16 12:21:10 +03:00
145eadfffa Merge pull request #36 from orange-cpp/u/orange-cpp/small-refactoring
U/orange cpp/small refactoring
2025-04-12 13:34:28 +03:00
4a7a631932 added const method to mat 2025-04-11 23:57:56 +03:00
e08c22f604 added new build option 2025-04-11 23:54:56 +03:00
1b47f45af9 improved naming 2025-04-11 23:30:07 +03:00
466d8f7bec improvement 2025-04-11 23:20:16 +03:00
3631c5d698 replaced with STL relization 2025-04-11 23:10:02 +03:00