#ifndef O3D_CAMERA_H #define O3D_CAMERA_H #include "math/mat4.hpp" #include "math/tform.hpp" using engine::math::Matrix4, engine::math::Transform; namespace engine::o3d { struct Camera { float fov; Transform transform; constexpr Matrix4 to_mat4(float aspect_ratio, float min_z, float max_z) const & { return Matrix4::perspective(fov, aspect_ratio, min_z, max_z) * transform.to_inverse_mat4(); } }; } #endif // O3D_CAMERA_H