The BVH is now generic over any kind of data. The building function takes in a closure that can bound the given data type in 3d space, and the rest just works.