int main(int argc, char** argv){ KDTree<simplePoint3> tree; std::vector<simplePoint3> pts{ {0,0,0},{1,1,1}, {-1, 3, 4}, {5, 6, 7}, {2, -6, 8}, {4, 5, -4}, {2, 3, 4}, {2, 5, 6}}; tree.buildTree(pts); tree.dumpTreeInorder(); std::cout << "searching near 0,0,0.1" << std::endl; auto closeNodes = tree.getPointsWithinCube({0, 0, 0.1}, 0.2); std::cout << "found" << std::endl; for(auto n : closeNodes){ tree.dumpNode(n); } std::cout << "searching near 0.5,0.5,0.5" << std::endl; closeNodes = tree.getPointsWithinCube({0.5, 0.5, 0.5}, 0.7); std::cout << "found" << std::endl; for(auto n : closeNodes){ tree.dumpNode(n); } std::cout << "min, x: " << std::endl; tree.dumpNode(tree.findMin(0)); std::cout << "min, y: " << std::endl; tree.dumpNode(tree.findMin(1)); std::cout << "min, z: " << std::endl; tree.dumpNode(tree.findMin(2)); for(auto i = 0; i < pts.size() -1; ++i){ std::cout << "deleting node " << i << std::endl; tree.deletePoint(i); tree.dumpTreeInorder(); } std::cout << "inserting 2 points" << std::endl; tree.insertPoint({1, 4, 5}); tree.dumpTreeInorder(); tree.insertPoint({3, 8, 6}); tree.dumpTreeInorder(); }