88 template<typename T, typename... Rest> |
88 template<typename T, typename... Rest> |
89 constexpr auto sum(const T& arg, Rest&&... rest) |
89 constexpr auto sum(const T& arg, Rest&&... rest) |
90 { |
90 { |
91 return arg + sum<T>(rest...); |
91 return arg + sum<T>(rest...); |
92 } |
92 } |
|
93 |
|
94 std::optional<glm::vec3> linePlaneIntersection(); |
93 } |
95 } |
94 |
96 |
95 inline unsigned int qHash(const glm::vec3& key) |
97 inline unsigned int qHash(const glm::vec3& key) |
96 { |
98 { |
97 return qHash(key.x) ^ utility::rotl10(qHash(key.y)) ^ utility::rotl20(qHash(key.z)); |
99 return qHash(key.x) ^ utility::rotl10(qHash(key.y)) ^ utility::rotl20(qHash(key.z)); |