Как получить глобальный вектор направления в локальном пространстве?
У меня есть вектор направления globalDir, объект objcet. Этому объекту я могу задать вращение через кватернион. Так же могу получить его вращение в углах Эйлера и в кватернионе.
Допустим, object повернут на 90 градусов по оси X. Мне нужно вращать object по оси globalDir, для этого я использую метод кватерниона CreateFromAxisAngle(globalDir, angle), но проблема в том, что объект принимает этот globalDir тоже повернутым на 90 градусов, то есть преобразует его в свое локальное пространство и поворот получается не той оси, которая нужна.
Мне необходимо как-то рассчитать и передать такую ось, чтобы она в локальном пространстве object'a была направлена туда же, куда и в глобальном.
На схеме отобразил синим объект и направление вращение, какое получается, если я передаю в него globalDir, но мне нужно чтобы было вращение, показанное красной стрелкой.
Объект может быть повернут как угодно и направление тоже может быть произвольным. Для понимания сильно не усложнял пример.
