#include #include "gauss_map.h" int main() { tinynurbs::RationalSurface srf; srf.degree_u = 3; srf.degree_v = 3; srf.knots_u = { 0, 0, 0, 0, 1, 1, 1, 1 }; srf.knots_v = { 0, 0, 0, 0, 1, 1, 1, 1 }; srf.control_points = { 4, 4, { glm::vec3(2, -2, -2), glm::vec3(-2.5, -2.2, -1.5), glm::vec3(-2, -2, -0.5), glm::vec3(-2, -2, 1.5), glm::vec3(2, -1, -2), glm::vec3(-2.5, -1.2, -1.5), glm::vec3(-2, -1, -0.5), glm::vec3(-2, -1, 1.5), glm::vec3(3, 1.2, -2), glm::vec3(-2.5, 1.2, -1.5), glm::vec3(-2, 1.5, -0.5), glm::vec3(-2, 1.5, 1.5), glm::vec3(2, 2, -2), glm::vec3(-2.5, 2, -1.5), glm::vec3(-2, 2.5, -0.5), glm::vec3(-2, 2, 1.5) } }; srf.weights = { 4, 4, { 1, 3, 4, 2, 2, 1, 1, 1, 9, 1, 7, 4, 1, 1, 7, 1, } }; GaussMap gaussMap(6, srf); gaussMap.build(); auto res = getOverlapLeafNodes(gaussMap, gaussMap); printf("overlap leaf nodes size: %llu\n", res.size()); return 0; }