From 6b028335612a9bde43653322d867b8e37124e2ce Mon Sep 17 00:00:00 2001 From: ulfjorensen Date: Fri, 31 Oct 2008 23:17:43 +0000 Subject: [PATCH] - fixed stupid little bug in the SceneAnimator - does not crash anymore on animations with empty tracks - reverted matrix operations to what I think is the correct matrix sequence. Skinned meshes still not working, though - fixed a strange runtime exception in the irrlicht mesh loader git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@211 67173fc5-114c-0410-ac8e-9d2fd5bffc1f --- code/irrXML/CXMLReaderImpl.h | 2 +- tools/assimp_view/AnimEvaluator.cpp | 6 +++--- tools/assimp_view/Display.cpp | 2 +- tools/assimp_view/SceneAnimator.cpp | 2 +- workspaces/vc9_ATMNotUpToDate/assimp.suo | Bin 36864 -> 0 bytes 5 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 workspaces/vc9_ATMNotUpToDate/assimp.suo diff --git a/code/irrXML/CXMLReaderImpl.h b/code/irrXML/CXMLReaderImpl.h index de5ba59f0..d9b1eaaed 100644 --- a/code/irrXML/CXMLReaderImpl.h +++ b/code/irrXML/CXMLReaderImpl.h @@ -663,7 +663,7 @@ private: // MSVC debugger complains here about loss of data ... // todo ... I temporarily disabled the check in the build config for (int i=0; imPositionKeys > 0) + if( channel->mNumPositionKeys > 0) { // 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. @@ -96,7 +96,7 @@ void AnimEvaluator::Evaluate( double pTime) // ******** Rotation ********* aiQuaternion presentRotation( 1, 0, 0, 0); - if( channel->mRotationKeys > 0) + if( channel->mNumRotationKeys > 0) { unsigned int frame = (time >= mLastTime) ? mLastPositions[a].get<1>() : 0; while( frame < channel->mNumRotationKeys - 1) @@ -113,7 +113,7 @@ void AnimEvaluator::Evaluate( double pTime) // ******** Scaling ********** aiVector3D presentScaling( 0, 0, 0); - if( channel->mScalingKeys > 0) + if( channel->mNumScalingKeys > 0) { unsigned int frame = (time >= mLastTime) ? mLastPositions[a].get<2>() : 0; while( frame < channel->mNumScalingKeys - 1) diff --git a/tools/assimp_view/Display.cpp b/tools/assimp_view/Display.cpp index c3e56e3b3..e63053def 100644 --- a/tools/assimp_view/Display.cpp +++ b/tools/assimp_view/Display.cpp @@ -1991,7 +1991,7 @@ int CDisplay::RenderNode (aiNode* piNode,const aiMatrix4x4& piMatrix, *tempmat++ = mat.d1; *tempmat++ = mat.d2; *tempmat++ = mat.d3; *tempmat++ = mat.d4; //tempmat += 4; } - helper->piEffect->SetMatrixTransposeArray( "gBoneMatrix", (D3DXMATRIX*)matrices, 60); + helper->piEffect->SetMatrixArray( "gBoneMatrix", (D3DXMATRIX*)matrices, 60); } // now setup the material diff --git a/tools/assimp_view/SceneAnimator.cpp b/tools/assimp_view/SceneAnimator.cpp index a1bed3d88..10de3afef 100644 --- a/tools/assimp_view/SceneAnimator.cpp +++ b/tools/assimp_view/SceneAnimator.cpp @@ -224,7 +224,7 @@ void SceneAnimator::CalculateGlobalTransform( SceneAnimNode* pInternalNode) SceneAnimNode* node = pInternalNode->mParent; while( node) { - pInternalNode->mGlobalTransform = pInternalNode->mGlobalTransform * node->mLocalTransform; + pInternalNode->mGlobalTransform *= node->mLocalTransform; node = node->mParent; } } diff --git a/workspaces/vc9_ATMNotUpToDate/assimp.suo b/workspaces/vc9_ATMNotUpToDate/assimp.suo deleted file mode 100644 index 60d5e4c18edc66d255df4771d226474a8a219818..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36864 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 IFxQv