#pragma once #include #include #include glm::vec4 round(glm::vec4 f, int prec); float dot(int n, glm::vec4 a, glm::vec4 b); glm::vec4 project(glm::vec4 vec, glm::vec4 target); glm::vec4 reflect(glm::vec4 vec, glm::vec4 axis); glm::vec4 gram_schmidt_last(std::vector vecs); glm::vec4 barycentric(std::vector basis, std::vector coords); std::vector plane_intersections(std::vector normals); std::vector> combinations(int N, int K); std::vector> combinations(std::vector N, int K);