added new mat function

more tests
This commit is contained in:
2025-09-20 02:09:59 +03:00
parent bfd399e631
commit 792db7a673
15 changed files with 362 additions and 40 deletions

View File

@@ -6,13 +6,9 @@
namespace omath::iw_engine
{
ViewAngles CameraTrait::calc_look_at_angle(const Vector3<float>& cam_origin, const Vector3<float>& look_at) noexcept
Mat4X4 CameraTrait::calc_look_at_mat(const Vector3<float>& cam_origin, const Vector3<float>& look_at) noexcept
{
const auto distance = cam_origin.distance_to(look_at);
const auto delta = look_at - cam_origin;
return {PitchAngle::from_radians(-std::asin(delta.z / distance)),
YawAngle::from_radians(std::atan2(delta.y, delta.x)), RollAngle::from_radians(0.f)};
return mat_look_at_left_handed<float, Mat4X4::get_store_ordering()>(cam_origin, look_at, k_abs_up);
}
Mat4X4 CameraTrait::calc_view_matrix(const ViewAngles& angles, const Vector3<float>& cam_origin) noexcept
{

View File

@@ -7,13 +7,9 @@
namespace omath::opengl_engine
{
ViewAngles CameraTrait::calc_look_at_angle(const Vector3<float>& cam_origin, const Vector3<float>& look_at) noexcept
Mat4X4 CameraTrait::calc_look_at_mat(const Vector3<float>& cam_origin, const Vector3<float>& look_at) noexcept
{
const auto distance = cam_origin.distance_to(look_at);
const auto delta = look_at - cam_origin;
return {PitchAngle::from_radians(std::asin(delta.y / distance)),
YawAngle::from_radians(std::atan2(delta.x, -delta.z)), RollAngle::from_radians(0.f)};
return mat_look_at_right_handed<float, Mat4X4::get_store_ordering()>(cam_origin, look_at, k_abs_up);
}
Mat4X4 CameraTrait::calc_view_matrix(const ViewAngles& angles, const Vector3<float>& cam_origin) noexcept
{

View File

@@ -6,13 +6,9 @@
namespace omath::source_engine
{
ViewAngles CameraTrait::calc_look_at_angle(const Vector3<float>& cam_origin, const Vector3<float>& look_at) noexcept
Mat4X4 CameraTrait::calc_look_at_mat(const Vector3<float>& cam_origin, const Vector3<float>& look_at) noexcept
{
const auto distance = cam_origin.distance_to(look_at);
const auto delta = look_at - cam_origin;
return {PitchAngle::from_radians(-std::asin(delta.z / distance)),
YawAngle::from_radians(std::atan2(delta.y, delta.x)), RollAngle::from_radians(0.f)};
return mat_look_at_left_handed<float, Mat4X4::get_store_ordering()>(cam_origin, look_at, k_abs_up);
}
Mat4X4 CameraTrait::calc_view_matrix(const ViewAngles& angles, const Vector3<float>& cam_origin) noexcept
{

View File

@@ -6,13 +6,9 @@
namespace omath::unity_engine
{
ViewAngles CameraTrait::calc_look_at_angle(const Vector3<float>& cam_origin, const Vector3<float>& look_at) noexcept
Mat4X4 CameraTrait::calc_look_at_mat(const Vector3<float>& cam_origin, const Vector3<float>& look_at) noexcept
{
const auto distance = cam_origin.distance_to(look_at);
const auto delta = cam_origin - look_at;
return {PitchAngle::from_radians(-std::asin(delta.y / distance)),
YawAngle::from_radians(std::atan2(delta.z, delta.x)), RollAngle::from_radians(0.f)};
return mat_look_at_left_handed<float, Mat4X4::get_store_ordering()>(cam_origin, look_at, k_abs_up);
}
Mat4X4 CameraTrait::calc_view_matrix(const ViewAngles& angles, const Vector3<float>& cam_origin) noexcept
{

View File

@@ -6,13 +6,9 @@
namespace omath::unreal_engine
{
ViewAngles CameraTrait::calc_look_at_angle(const Vector3<float>& cam_origin, const Vector3<float>& look_at) noexcept
Mat4X4 CameraTrait::calc_look_at_mat(const Vector3<float>& cam_origin, const Vector3<float>& look_at) noexcept
{
const auto distance = cam_origin.distance_to(look_at);
const auto delta = cam_origin - look_at;
return {PitchAngle::from_radians(-std::asin(delta.z / distance)),
YawAngle::from_radians(std::atan2(delta.x, delta.y)), RollAngle::from_radians(0.f)};
return mat_look_at_left_handed<float, Mat4X4::get_store_ordering()>(cam_origin, look_at, k_abs_up);
}
Mat4X4 CameraTrait::calc_view_matrix(const ViewAngles& angles, const Vector3<float>& cam_origin) noexcept
{