GLM основан на GLSL, где просто нет необходимости транспонировать вектор. Если вы сделаете умножение вектора на матрицу, он умножит вектор так, как это работает для размера матрицы (если только ему не придется менять порядок умножения). Так что если у вас есть mat4
и вы делаете mat4*vec4
, ваш vec4
считается вектором столбца. Если вы делаете vec4*mat4
, это считается вектор строки. Если вы сделаете mat2x4*vec4
, вы получите ошибку, а vec4*mat2x4
работает (как вектор строки).
Так что, в общем, нет необходимости «переносить» вектор. Система просто делает все, что работает.