Before, distances from each component were handled in the same loop, making it more complicated to add support for more component types in the future (and probably hurting performance by dealing with two BVH trees at the same time, though I didn't test that). Now each component is handled in a separate function, so that adding support for another component type is much simpler.