Dividir quaternion em rotações de eixo

Eu tenho um quaternion representando a orientação de um objeto (caixa amarela e esfera). Gostaria de saber se é possível dividir esse quaternion em outros quaternions que nos dão a rotação de cada eixo local (X, Y e Z).

O que tenho feito até agora é obter a representação de Euler e trabalhar com ela, mas não é a solução correta para o meu caso particular:

Dados dois pontos (caixas azuis), quero limitar a orientação do meu objeto para que ele não possa apontar para fora do plano cinza, mesmo que meu quaternion pareça fora desse plano.
Eu quero dividir (decompor) o quaternion, porque quando meu objeto atingir o limite do plano (por exemplo, o direito), quero fazê-lo permanecer lá (naquele componente) e girar meu objeto no componente vertical , usando um dos novos quaterniões divididos.

Eu estou trabalhando com Unity.

Espero que seja compreensível o meu problema :)

questionAnswers(2)

yourAnswerToTheQuestion