I would like to set the absolute global rotation of a vector using a quaternion.

Let's say I have a function `f(v, q)`

which rotates vector `v`

*to* quaternion `q`

.

`THREE.Vector3`

has a `.applyQuaternion`

function which applies a rotation to a vector, but this is a relative rotation. For example, the function call `f(f(v, q), q)`

will apply `q`

twice. Instead, I would expect `f(f(v, q), q) = f(v, q)`

since `q`

is the absolute rotation of the vector.

I know that I can compute some `deltaQ = currentQ.premultiply(q.inverse())`

and then call `.applyQuaternion`

, but I don't know how to query the `currentQ`

, or the current rotation of the vector, so that I can "undo" it and apply the new quaternion.

Thanks for any help!

Please login or Register to submit your answer