rewrote getUnitParallelVector to avoid trigonometry, and removed getUnitParallelVectorX/Y since they are no longer more optimized, see #251