mirror of
https://github.com/orange-cpp/omath.git
synced 2026-02-13 07:03:25 +00:00
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.
This commit is contained in:
@@ -10,9 +10,12 @@
|
|||||||
#include <expected>
|
#include <expected>
|
||||||
#include <omath/angle.hpp>
|
#include <omath/angle.hpp>
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
|
||||||
#ifdef OMATH_BUILD_TESTS
|
#ifdef OMATH_BUILD_TESTS
|
||||||
|
// ReSharper disable once CppInconsistentNaming
|
||||||
class UnitTestProjection_Projection_Test;
|
class UnitTestProjection_Projection_Test;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
namespace omath::projection
|
namespace omath::projection
|
||||||
{
|
{
|
||||||
class ViewPort final
|
class ViewPort final
|
||||||
@@ -47,8 +50,9 @@ namespace omath::projection
|
|||||||
requires CameraEngineConcept<TraitClass, Mat4X4Type, ViewAnglesType>
|
requires CameraEngineConcept<TraitClass, Mat4X4Type, ViewAnglesType>
|
||||||
class Camera final
|
class Camera final
|
||||||
{
|
{
|
||||||
|
#ifdef OMATH_BUILD_TESTS
|
||||||
friend UnitTestProjection_Projection_Test;
|
friend UnitTestProjection_Projection_Test;
|
||||||
|
#endif
|
||||||
public:
|
public:
|
||||||
~Camera() = default;
|
~Camera() = default;
|
||||||
Camera(const Vector3<float>& position, const ViewAnglesType& view_angles, const ViewPort& view_port,
|
Camera(const Vector3<float>& position, const ViewAnglesType& view_angles, const ViewPort& view_port,
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ TEST(UnitTestProjection, Projection)
|
|||||||
const auto cam = omath::source_engine::Camera({0, 0, 0}, omath::source_engine::ViewAngles{}, {1920.f, 1080.f}, fov,
|
const auto cam = omath::source_engine::Camera({0, 0, 0}, omath::source_engine::ViewAngles{}, {1920.f, 1080.f}, fov,
|
||||||
0.01f, 1000.f);
|
0.01f, 1000.f);
|
||||||
|
|
||||||
const auto projected = cam.world_to_screen({1000, 0, 50.f});
|
const auto projected = cam.world_to_screen({1000.f, 0, 50.f});
|
||||||
const auto result = cam.screen_to_world(projected.value());
|
const auto result = cam.screen_to_world(projected.value());
|
||||||
const auto result2 = cam.world_to_screen(result.value());
|
const auto result2 = cam.world_to_screen(result.value());
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user