From 4a219404fc48aac4fafe6c1afa934f452b1751c8 Mon Sep 17 00:00:00 2001 From: Jason Hooks Date: Sat, 18 Aug 2012 15:21:43 -0400 Subject: [PATCH] Super smooth animations; 100 PERCENT COMPLETE --- components/nifogre/ogre_nif_loader.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/components/nifogre/ogre_nif_loader.cpp b/components/nifogre/ogre_nif_loader.cpp index a0c64398af..2557a260ab 100644 --- a/components/nifogre/ogre_nif_loader.cpp +++ b/components/nifogre/ogre_nif_loader.cpp @@ -284,19 +284,13 @@ void loadResource(Ogre::Resource *resource) //Get latest time if(quatiter != quatkeys.mKeys.end()){ curtime = std::min(curtime, quatiter->mTime); - lastquat = curquat; - curquat = startquat.Inverse() * quatiter->mValue ; - } if(traniter != trankeys.mKeys.end()){ curtime = std::min(curtime, traniter->mTime); - lasttrans = curtrans; - curtrans = traniter->mValue - starttrans; + } if(scaleiter != scalekeys.mKeys.end()){ curtime = std::min(curtime, scaleiter->mTime); - lastscale = curscale; - curscale = Ogre::Vector3(scaleiter->mValue) / startscale; } curtime = std::max(curtime, kfc->timeStart); @@ -342,14 +336,23 @@ void loadResource(Ogre::Resource *resource) while(quatiter != quatkeys.mKeys.end() && curtime >= quatiter->mTime) { quatiter++; + lastquat = curquat; + if(quatiter != quatkeys.mKeys.end()) + curquat = startquat.Inverse() * quatiter->mValue ; } while(traniter != trankeys.mKeys.end() && curtime >= traniter->mTime) { traniter++; + lasttrans = curtrans; + if(traniter != trankeys.mKeys.end()) + curtrans = traniter->mValue - starttrans; } while(scaleiter != scalekeys.mKeys.end() && curtime >= scaleiter->mTime) { scaleiter++; + lastscale = curscale; + if(scaleiter != scalekeys.mKeys.end()) + curscale = Ogre::Vector3(scaleiter->mValue) / startscale; } }