|
template<std::ranges::input_range R, class Proj = std::identity>
requires std::convertible_to<typename std::projected<std::ranges::iterator_t<R>, Proj>::value_type, const Vector3&> |
| constexpr AABB | bounding_aabb_of_nonempty_range (R &&r, Proj proj={}) |
| |
| template<typename T > |
| Vector< T, 3 > | combine (const Vector< T, 3 > &a, const Vector< T, 3 > &b, T ascl, T bscl) |
| | Make a linear combination of two vectors and return the result.
|
| |
| template<typename T > |
| Vector< T, 3 > | scale (const Vector< T, 3 > &v, T desiredLength) |
| |
template<typename T , size_t N>
requires (N != std::dynamic_extent) |
| constexpr size_t | compile_time_size (std::span< T, N >) |
| |
| void | on_assertion_failure (std::string_view failing_code, std::string_view function_name, std::string_view file_name, unsigned int file_line) |
| |
| size_t | allocate_perf_mesurement_id (std::string_view label, std::string_view filename, unsigned int line) |
| |
| void | submit_perf_measurement (size_t id, PerfClock::time_point start, PerfClock::time_point end) |
| |
| template<typename Variant , typename T , size_t I = 0> |
| constexpr size_t | variant_index_impl () |
| |
| template<typename... Types> |
| auto | to_variant (Typelist< Types... >) -> std::variant< Types... > |
| |