implement proper ray picking against ellipsoids