I keep looking at this code wondering if there's a way to make it work using a glm::vec3 and operating on the combined object instead of the individual vector components.