colocando un nodo frente a tu entidad

Ayer estuve trabajando en el sistema de proyectiles, que usa el sistema de partículas de Ogre, así que hoy les traigo un truco muy sencillo: cómo determinar las coordenadas de un punto frente a un nodo. Los SceneNode tienen una función getOrientation(), que devuelve un Quaternion. Teniendo en cuenta que mis modelos están orientados hacia el eje +Z, la fórmula queda así:

Vector3 punto = Node->getOrientation() * Vector3(0, 0, distancia) + Node->getPosition();

O sea, obtenemos la orientación y la multiplicamos por un vector distancia (en este caso uso Z para la distancia) y el resultado lo sumamos a la posición actual del nodo.

Comentarios