void searchKdTree(const KdNode *nodes, uint32_t root, int depth, const Query &query, QueryResult &result) const { const KdNode *node = nodes + root; int rangeIndex = depth%2; if (node->child_node==-1) { return; } if (node->child_node==0) { if (dimIntersect(node->leftBounds, query.bounds[rangeIndex])) { //fprintf(stderr, "%d\n", *(*(int**)(node->rightBounds))); result.push_back(*(*(int**)(node->rightBounds))); } //report(*((void**)(node->rightBounds))); return; } if (dimIntersect(node->leftBounds, query.bounds[rangeIndex])) searchKdTree(nodes, node->child_node, depth+1, query, result); if (dimIntersect(node->rightBounds, query.bounds[rangeIndex])) searchKdTree(nodes, node->child_node+1, depth+1, query, result); }