mirror of
https://github.com/orange-cpp/omath.git
synced 2026-02-13 07:03:25 +00:00
unified look at for source iw_engine
This commit is contained in:
@@ -8,11 +8,10 @@ namespace omath::iw_engine
|
|||||||
|
|
||||||
ViewAngles CameraTrait::calc_look_at_angle(const Vector3<float>& cam_origin, const Vector3<float>& look_at) noexcept
|
ViewAngles CameraTrait::calc_look_at_angle(const Vector3<float>& cam_origin, const Vector3<float>& look_at) noexcept
|
||||||
{
|
{
|
||||||
const auto distance = cam_origin.distance_to(look_at);
|
const auto direction = (look_at - cam_origin).normalized();
|
||||||
const auto delta = look_at - cam_origin;
|
|
||||||
|
|
||||||
return {PitchAngle::from_radians(-std::asin(delta.z / distance)),
|
return {PitchAngle::from_radians(-std::asin(direction.z)),
|
||||||
YawAngle::from_radians(std::atan2(delta.y, delta.x)), RollAngle::from_radians(0.f)};
|
YawAngle::from_radians(std::atan2(direction.y, direction.x)), RollAngle::from_radians(0.f)};
|
||||||
}
|
}
|
||||||
Mat4X4 CameraTrait::calc_view_matrix(const ViewAngles& angles, const Vector3<float>& cam_origin) noexcept
|
Mat4X4 CameraTrait::calc_view_matrix(const ViewAngles& angles, const Vector3<float>& cam_origin) noexcept
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ namespace omath::source_engine
|
|||||||
|
|
||||||
ViewAngles CameraTrait::calc_look_at_angle(const Vector3<float>& cam_origin, const Vector3<float>& look_at) noexcept
|
ViewAngles CameraTrait::calc_look_at_angle(const Vector3<float>& cam_origin, const Vector3<float>& look_at) noexcept
|
||||||
{
|
{
|
||||||
const auto distance = cam_origin.distance_to(look_at);
|
const auto direction = (look_at - cam_origin).normalized();
|
||||||
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 {PitchAngle::from_radians(-std::asin(direction.z)),
|
||||||
|
YawAngle::from_radians(std::atan2(direction.y, direction.x)), RollAngle::from_radians(0.f)};
|
||||||
}
|
}
|
||||||
Mat4X4 CameraTrait::calc_view_matrix(const ViewAngles& angles, const Vector3<float>& cam_origin) noexcept
|
Mat4X4 CameraTrait::calc_view_matrix(const ViewAngles& angles, const Vector3<float>& cam_origin) noexcept
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user