From bd74ab027a16801da7db778f62c9f4a898517cda Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Wed, 18 Jul 2012 21:21:49 -0700 Subject: [PATCH] Mirror left-sided parts --- components/nifogre/ogre_nif_loader.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/components/nifogre/ogre_nif_loader.cpp b/components/nifogre/ogre_nif_loader.cpp index e8bc6133a..c470363b0 100644 --- a/components/nifogre/ogre_nif_loader.cpp +++ b/components/nifogre/ogre_nif_loader.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -956,6 +957,10 @@ EntityList NIFLoader::createEntities(Ogre::Entity *parent, const std::string &bo entitylist.mEntities.push_back(ent); } + Ogre::Vector3 scale(1.0f); + if(bonename.find("Left") != std::string::npos) + scale.x *= -1.0f; + if(entitylist.mSkelBase) { entitylist.mSkelBase->shareSkeletonInstanceWith(parent); @@ -969,13 +974,19 @@ EntityList NIFLoader::createEntities(Ogre::Entity *parent, const std::string &bo parentNode->attachObject(entity); } else if(entity != entitylist.mSkelBase) - parent->attachObjectToBone(bonename, entity); + { + Ogre::TagPoint *tag = parent->attachObjectToBone(bonename, entity); + tag->setScale(scale); + } } } else { for(size_t i = 0;i < entitylist.mEntities.size();i++) - parent->attachObjectToBone(bonename, entitylist.mEntities[i]); + { + Ogre::TagPoint *tag = parent->attachObjectToBone(bonename, entitylist.mEntities[i]); + tag->setScale(scale); + } } return entitylist;