- Fixed a bug in FindInvalidData causing some animation channels to be lost

- Added Q3D loader. Seems to work quite well with Quick 3D 4.0
- Updated makefile, fixed GCC compilation error cause of packed matrix fields

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@214 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
This commit is contained in:
aramis_acg
2008-11-01 15:14:00 +00:00
parent c7e6fe3d73
commit daae32d62f
13 changed files with 760 additions and 26 deletions

View File

@@ -273,14 +273,14 @@ int FindInvalidDataProcess::ProcessAnimation (aiAnimation* anim)
int FindInvalidDataProcess::ProcessAnimationChannel (aiNodeAnim* anim)
{
// TODO: (thom) For some reason, even proper channels are deleted as well. Therefore deactivated it for the moment.
return 0;
//return 0;
int i = 0;
// Check whether all values are identical or whether there is just one keyframe
if ((1 >= anim->mNumPositionKeys || AllIdentical(anim->mPositionKeys,anim->mNumPositionKeys)) &&
(1 >= anim->mNumScalingKeys || AllIdentical(anim->mRotationKeys,anim->mNumRotationKeys)) &&
(1 >= anim->mNumRotationKeys || AllIdentical(anim->mScalingKeys,anim->mNumScalingKeys)))
if ((anim->mNumPositionKeys < 1 || AllIdentical(anim->mPositionKeys,anim->mNumPositionKeys)) &&
(anim->mNumScalingKeys < 1 || AllIdentical(anim->mRotationKeys,anim->mNumRotationKeys)) &&
(anim->mNumRotationKeys < 1 || AllIdentical(anim->mScalingKeys,anim->mNumScalingKeys)))
{
DefaultLogger::get()->error("Deleting dummy position animation channel");
return 1;