Commit Graph

161 Commits

Author SHA1 Message Date
orange 55c5bb92da Removes deprecated Matrix class
Removes the deprecated `Matrix` class and its associated source files and unit tests.

This change is to ensure code cleanliness and prevent accidental usage of the slow and outdated `Matrix` class.
The `Mat` class should be used instead.
2025-09-08 19:56:04 +03:00
orange 92689fbf21 Fixes plane triangle generation
Corrects the order of vertices when constructing triangles
for the plane primitive, addressing a potential winding order
issue that could lead to incorrect surface normals and rendering.
2025-08-29 00:11:31 +03:00
orange fe1ff12f74 Simplifies plane creation logic
Refactors the plane creation function to directly compute the triangle vertices, removing unnecessary intermediate variables. This results in more concise and readable code.
2025-08-28 23:57:22 +03:00
orange b19a4de904 Adds plane primitive generation
Implements a function to generate a plane primitive from two vertices, a direction vector, and a size, returning an array of two triangles.
2025-08-28 23:18:36 +03:00
orange ddafd24ea6 Fixes namespace and angle calculations
Corrects namespace naming from unity_engine to unreal_engine.

Adjusts projectile prediction and angle calculations for accuracy
in Unreal Engine environments.
2025-08-25 21:46:50 +03:00
orange bdbf596647 Fixes Unreal Engine view angle matrix order
The view angle rotation matrix order in Unreal Engine was incorrect, leading to incorrect camera orientation.

This commit fixes the order of rotation matrices to roll, pitch, yaw
to correctly implement Unreal Engine camera rotations.

Adds comprehensive unit tests for Unreal Engine formulas, camera and constants.

Marks Unreal Engine as supported in README.md.
2025-08-25 21:42:58 +03:00
orange 28b3aecf9d Adds Unreal Engine math implementations
Adds Unreal Engine-specific implementations for camera and projectile prediction calculations.

This includes:
- Defining constants and data types tailored for Unreal Engine's coordinate system and conventions.
- Implementing functions for calculating forward, right, and up vectors, view matrices, and perspective projection matrices.
- Providing camera trait for look-at angle calculations and projection matrix generation.
- Implements projectile prediction traits and utilities.
2025-08-25 21:30:35 +03:00
orange 8e7e1dfc42 Includes missing formula headers
Includes the necessary formula headers in the camera trait files for different rendering engines.
This ensures that the required mathematical functions and definitions are available when using camera traits.
2025-08-12 19:08:30 +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 7556e9134b Removes projectile.cpp
Removes the projectile.cpp file. The removal indicates that the associated projectile prediction functionality is no longer needed or has been moved elsewhere.
2025-08-06 18:37:28 +03:00
orange a6fc92dd3a Updates project version and removes legacy code
Updates the project version to prepare for a new release.

Removes the legacy projectile prediction engine, which is no longer needed.
2025-08-03 18:35:52 +03:00
orange d66ccf2f74 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
orange 6c5c86b850 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
orange b82106a565 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
orange e2322960b7 added noexcept 2025-05-13 09:34:39 +03:00
orange 505fe6f3a8 added more noexcept 2025-05-05 02:24:23 +03:00
orange ba2c60389f added more noexcept 2025-05-05 01:46:50 +03:00
orange 399ded102d removed useless source files 2025-05-04 19:03:18 +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 01b7256e98 improved cmake, removed useless cmake files 2025-04-30 21:26:25 +03:00
orange 9de444bda0 fixed gimba lock for unity 2025-04-26 00:52:46 +03:00
orange 34621ad171 fixed gimba lock for opengl camera 2025-04-26 00:32:53 +03:00
orange 6d65e1f1c3 improved tests 2025-04-18 16:36:22 +03:00
Vladislav Alpatov 6a7d328a7c improved line tracer 2025-04-18 16:00:23 +03:00
orange 13753cab81 improved line trace and box primitive 2025-04-18 13:56:08 +03:00
orange 88f4db6caf switched to polygons 2025-04-18 12:34:24 +03:00
orange 80e3cadb67 added ratio param 2025-04-18 01:33:47 +03:00
orange 5ff57f9ffa added box 2025-04-18 00:43:46 +03:00
orange c46dc436fc fixed include 2025-04-16 20:35:17 +03:00
orange 06b891c827 improved openg gl rotation matrix, added tests 2025-04-16 19:11:02 +03:00
orange 97f38af2b5 added unit tests 2025-04-16 18:35:50 +03:00
orange 7642936716 removed method from Mat added method for unity 2025-04-16 17:52:19 +03:00
orange f1f2aeb1b9 added func
added rotation matrix for opengl
2025-04-16 17:40:00 +03:00
orange 790e6919f7 added missing header 2025-04-13 23:15:27 +03:00
Orange ad5dad7295 added include 2025-04-05 13:20:18 +03:00
Orange eb1df5af8d fixed for clang 2025-04-05 13:00:00 +03:00
orange d30c5be50f fixed for clang 2025-03-24 06:48:51 +03:00
orange 47e8bc1a04 fixed unity view matrix building 2025-03-24 06:30:09 +03:00
orange d2e67b7f86 fix 2025-03-23 00:57:58 +03:00
orange 620ea44b06 improved camera 2025-03-22 17:39:40 +03:00
orange de968ee03b updated formulas 2025-03-22 08:36:06 +03:00
orange cbc0a13a79 added unity engine tests 2025-03-22 08:12:16 +03:00
orange d9fe60b505 added camera files 2025-03-22 04:26:54 +03:00
orange 756bcef6e1 fixed include names 2025-03-21 04:40:59 +03:00
orange d5d1260784 changed source files naming 2025-03-21 04:30:17 +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 1b2822275f removed inline functions 2025-03-19 20:07:44 +03:00
orange f788a60e14 added iw engine files 2025-03-17 07:20:13 +03:00