added scratchpad for managing temp objects in calculations
reverse perp() default direction
partial development of intersection helpers