20 #ifndef ANTKEEPER_GAME_SPRING_ARM_COMPONENT_HPP
21 #define ANTKEEPER_GAME_SPRING_ARM_COMPONENT_HPP
50 math::dvec3 min_angles{-math::half_pi<double>, -std::numeric_limits<double>::infinity(), -std::numeric_limits<double>::infinity()};
53 math::dvec3 max_angles{math::half_pi<double>, std::numeric_limits<double>::infinity(), std::numeric_limits<double>::infinity()};
entt::entity id
Entity ID type.
constexpr T radians(T degrees) noexcept
Converts an angle given in degrees to radians.
Quaternion composed of a real scalar part and imaginary vector part.
static constexpr quaternion identity() noexcept
Returns a rotation identity quaternion.
Attaches a camera to an entity using springs.
double near_hfov
Horizontal FoV at maximum zoom.
double far_hfov
Horizontal FoV at minimum zoom.
double focal_plane_height
Height of the view frustum at the focal distance.
math::dquat camera_rotation
Attached camera rotation.
double hfov
Horizontal FoV of the camera, in radians.
physics::numeric_spring< math::dvec3, double > focal_point_spring
double focal_distance
Distance to the focal plane.
double zoom
Zoom factor, on [0, 1].
math::dvec3 min_angles
Minimum pitch, yaw, and roll angles, in radians.
double far_focal_plane_height
Arm length spring.
double focal_plane_width
Width of the view frustum at the focal distance.
math::dvec3 max_angles
Maximum pitch, yaw, and roll angles, in radians.
math::dquat up_rotation
Local up rotation quaternion.
double vfov
Vertical FoV of the camera, in radians.
physics::numeric_spring< math::dvec3, double > angles_spring
Pitch, yaw, and roll angles spring.
math::dvec3 angular_velocities
Pitch, yaw, and roll velocities, in radians per second.
entity::id parent_eid
ID of the entity to which the spring arm is attached.
math::dvec3 focal_point_offset
Position of the focal point, relative to the subject.
double near_focal_plane_height
Height of the view frustum at the near clipping distance.