Add vec2 projection function and tests.