add cylinder. generalize Ray. new fns for Vec and Quat