Actually, if you really don't like changing it here then I can eliminate unused spheres later when constructing the CollisionRobotDistanceField object.  Would that be better?

The question then is what does a radius==0 sphere mean?  With this code it is clear that such a sphere is ignored (because we eliminate it).  But if it does not get eliminated then it could have 2 possible meanings:

A) a very small object
B) a nonexistant object

I really do not want it to mean A.  But if we allow them to exist then they can be confused to mean B in future code.