a quaternion based camera for modernGL