lots of work on hit-event calculation

rect/rect/rect and circle/circle are in, but not well tested.