/** * find the posting pointer to which the key should reside, given the * starting page number to look at. * * to search the whole tree, pass in ROOT as the page number. */ POSTINGSPTR treesearch(PAGENO PageNo, char *key) { /* recursive call to find page number */ const PAGENO page = treesearch_page(PageNo, key); /* from page number we traverse the leaf page */ struct PageHdr *PagePtr = FetchPage(page); POSTINGSPTR result = searchLeaf(PagePtr, key, 1); FreePage(PagePtr); return result; }
inline bool RayTracer::searchNode (const KDNode *node, Ray &ray, std::vector <Triangle> &meshTriangles, std::vector <Vertex> &vertices, std::vector<Vec3Df> &triangleNormals, float &intersectionDistance, unsigned &idTriangle, float coefB[]){ if (node->isLeaf()) { return searchLeaf(node, ray, meshTriangles, vertices, triangleNormals, intersectionDistance, idTriangle, coefB); } else { return searchSplit(node, ray, meshTriangles, vertices, triangleNormals, intersectionDistance, idTriangle, coefB); } }