transform with quaternion