toVector3() now returns a glm::vec3 rather than a glm::vec4