3#include "pixelbullet/math/validation.h"
9namespace pixelbullet::math
11template <glm::length_t Length, std::
floating_po
int T, glm::qualifier Qualifier>
12[[nodiscard]]
inline glm::vec<Length, T, Qualifier>
13normalized_or(
const glm::vec<Length, T, Qualifier>& value,
const glm::vec<Length, T, Qualifier>& fallback,
const T minimum_length)
noexcept
15 const T length = glm::length(value);
16 const T effective_minimum_length = minimum_length > T{ 0 } ? minimum_length : T{ 0 };
17 return is_finite(length) && length > effective_minimum_length ? value / length : fallback;