mirror of
https://github.com/orange-cpp/omath.git
synced 2026-06-08 16:24:35 +00:00
b7210dec4c
fix patch
28 lines
1.2 KiB
C++
28 lines
1.2 KiB
C++
//
|
|
// Created by Codex on 6/3/2026.
|
|
//
|
|
#include "omath/engines/rage_engine/traits/camera_trait.hpp"
|
|
|
|
namespace omath::rage_engine
|
|
{
|
|
|
|
ViewAngles CameraTrait::calc_look_at_angle(const Vector3<float>& cam_origin, const Vector3<float>& look_at) noexcept
|
|
{
|
|
const auto direction = (look_at - cam_origin).normalized();
|
|
|
|
return {PitchAngle::from_radians(std::asin(direction.z)),
|
|
YawAngle::from_radians(-std::atan2(direction.x, direction.y)), RollAngle::from_radians(0.f)};
|
|
}
|
|
Mat4X4 CameraTrait::calc_view_matrix(const ViewAngles& angles, const Vector3<float>& cam_origin) noexcept
|
|
{
|
|
return rage_engine::calc_view_matrix(angles, cam_origin);
|
|
}
|
|
Mat4X4 CameraTrait::calc_projection_matrix(const projection::FieldOfView& fov,
|
|
const projection::ViewPort& view_port, const float near, const float far,
|
|
const NDCDepthRange ndc_depth_range) noexcept
|
|
{
|
|
return calc_perspective_projection_matrix(fov.as_degrees(), view_port.aspect_ratio(), near, far,
|
|
ndc_depth_range);
|
|
}
|
|
} // namespace omath::rage_engine
|