Я у себя сделал обертку. Там вообще векторов нет. Там есть точки, которые можно складывать и умножать с семантикой, аналогичной glsl, и это по-моему вполне удобно. А для направлений есть отедельный объект Direction, который представляет собой единичный вектор, изнутри заданный полярными координатами.