D-trees are a generalization of binary search trees. Every node represents a partition of a point set to the two successor nodes. The root represents the whole point cloud and the leafs are a disjunct partition of the set. These leafs are called buckets (cf. Fig. ). Furthermore, every node contains the limits of the represented point set. An efficient implementation of a d-tree is given in .
Searching in d-trees is done recursively. A given 3D point needs to be compared with the separating plane in order to decide on which side the search must continue. This procedure is executed until the leafs are reached. There, the algorithm has to evaluate all bucket points. However, the closest point may be in a different bucket, iff the distance to the limits is smaller than the one to the closest point in the bucket. In this case backtracking has to be performed. Fig. shows a backtracking case, where the algorithms has to go back to the root. The test is known as Ball-Within-Bounds test [6,11,14].