| 834 | } |
| 835 | |
| 836 | void RenderManager::rrOrientEntityToward(MovableGameEntity* gameEntity, const Ogre::Vector3& direction) |
| 837 | { |
| 838 | Ogre::SceneNode* node = mSceneManager->getSceneNode(gameEntity->getOgreNamePrefix() + gameEntity->getName() + "_node"); |
| 839 | Ogre::Vector3 tempVector = node->getOrientation() * Ogre::Vector3::NEGATIVE_UNIT_Y; |
| 840 | |
| 841 | // Work around 180 degree quaternion rotation quirk |
| 842 | if ((1.0f + tempVector.dotProduct(direction)) < 0.0001f) |
| 843 | { |
| 844 | node->roll(Ogre::Degree(180)); |
| 845 | } |
| 846 | else |
| 847 | { |
| 848 | node->rotate(tempVector.getRotationTo(direction)); |
| 849 | } |
| 850 | } |
| 851 | |
| 852 | void RenderManager::rrScaleCreature(Creature& creature) |
| 853 | { |
no test coverage detected