GLM is based on GLSL, where there is simply no need to transpose a vector. If you are doing vector / matrix multiplication, it will multiply the vector the way it works for matrix size (unless that changes the order of multiplication). Therefore, if you have mat4 and do mat4*vec4 , your vec4 is considered a column vector. If you do vec4*mat4 , this is considered a row vector. If you execute mat2x4*vec4 , you get an error, and vec4*mat2x4 works (like a line vector).
So, in general, there is no reason to βtransposeβ a vector. The system just does everything that works.
Nicol bolas
source share