Eliminate surface_primitive::surf().
Implement virtual function surface::intersect().
Implement surface_primitive::intersect().