Currently there seems to be a significant overlap between Surface and SurfaceBounds. They share the same local coordinate system and only specific SurfaceBounds can be supplied to certain Surfaces.
This also results in various round trips during intersections and boundary checks. We have to go through various virtual functions which are hidden behind a single Surface function call.
One idea I had was to combine SurfaceBounds into Surface as they are tightly coupled anyways.
Currently there seems to be a significant overlap between
SurfaceandSurfaceBounds. They share the same local coordinate system and only specificSurfaceBoundscan be supplied to certainSurfaces.This also results in various round trips during intersections and boundary checks. We have to go through various virtual functions which are hidden behind a single
Surfacefunction call.One idea I had was to combine
SurfaceBoundsintoSurfaceas they are tightly coupled anyways.