소스 검색

Fixed AnimEvaluator.cpp

mensinda 9 년 전
부모
커밋
dd1ab0778c
1개의 변경된 파일6개의 추가작업 그리고 6개의 파일을 삭제
  1. 6 6
      tools/assimp_view/AnimEvaluator.cpp

+ 6 - 6
tools/assimp_view/AnimEvaluator.cpp

@@ -81,7 +81,7 @@ void AnimEvaluator::Evaluate( double pTime)
         {
             // Look for present frame number. Search from last position if time is after the last time, else from beginning
             // Should be much quicker than always looking from start for the average use case.
-            unsigned int frame = (time >= mLastTime) ? mLastPositions[a].get<0>() : 0;
+            unsigned int frame = (time >= mLastTime) ? std::get<0>(mLastPositions[a]) : 0;
             while( frame < channel->mNumPositionKeys - 1)
             {
                 if( time < channel->mPositionKeys[frame+1].mTime)
@@ -105,14 +105,14 @@ void AnimEvaluator::Evaluate( double pTime)
                 presentPosition = key.mValue;
             }
 
-            mLastPositions[a].get<0>() = frame;
+            std::get<0>(mLastPositions[a]) = frame;
         }
 
         // ******** Rotation *********
         aiQuaternion presentRotation( 1, 0, 0, 0);
         if( channel->mNumRotationKeys > 0)
         {
-            unsigned int frame = (time >= mLastTime) ? mLastPositions[a].get<1>() : 0;
+            unsigned int frame = (time >= mLastTime) ? std::get<1>(mLastPositions[a]) : 0;
             while( frame < channel->mNumRotationKeys - 1)
             {
                 if( time < channel->mRotationKeys[frame+1].mTime)
@@ -136,14 +136,14 @@ void AnimEvaluator::Evaluate( double pTime)
                 presentRotation = key.mValue;
             }
 
-            mLastPositions[a].get<1>() = frame;
+            std::get<1>(mLastPositions[a]) = frame;
         }
 
         // ******** Scaling **********
         aiVector3D presentScaling( 1, 1, 1);
         if( channel->mNumScalingKeys > 0)
         {
-            unsigned int frame = (time >= mLastTime) ? mLastPositions[a].get<2>() : 0;
+            unsigned int frame = (time >= mLastTime) ? std::get<2>(mLastPositions[a]) : 0;
             while( frame < channel->mNumScalingKeys - 1)
             {
                 if( time < channel->mScalingKeys[frame+1].mTime)
@@ -153,7 +153,7 @@ void AnimEvaluator::Evaluate( double pTime)
 
             // TODO: (thom) interpolation maybe? This time maybe even logarithmic, not linear
             presentScaling = channel->mScalingKeys[frame].mValue;
-            mLastPositions[a].get<2>() = frame;
+            std::get<2>(mLastPositions[a]) = frame;
         }
 
         // build a transformation matrix from it