diff options
author | sfan5 <sfan5@live.de> | 2023-03-26 14:07:42 +0200 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2023-03-26 14:09:40 +0200 |
commit | a67f3003de693998ab3ec9864383d7155175c353 (patch) | |
tree | f5f0e272fcbf0b3b6907025758904dd1faf66157 | |
parent | 799c8b936f9a2cc4f3a8bc56237fb9a8dedf853e (diff) | |
download | irrlicht-a67f3003de693998ab3ec9864383d7155175c353.tar.xz |
Revert "Avoid some broken calculations for IBoneSceneNode positions."
This was reported to cause broken models in some cases.
reverts commit edb381bd5050712d1eb8875fe3a405000dd09a3d
-rw-r--r-- | source/Irrlicht/CSkinnedMesh.cpp | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/source/Irrlicht/CSkinnedMesh.cpp b/source/Irrlicht/CSkinnedMesh.cpp index 07e86d6..75e2ca6 100644 --- a/source/Irrlicht/CSkinnedMesh.cpp +++ b/source/Irrlicht/CSkinnedMesh.cpp @@ -1347,24 +1347,9 @@ void CSkinnedMesh::recoverJointsFromMesh(core::array<IBoneSceneNode*> &jointChil {
IBoneSceneNode* node=jointChildSceneNodes[i];
SJoint *joint=AllJoints[i];
-
- if ( joint->UseAnimationFrom ) // Seems to work better (else solution seems to mess up sometimes) and would be faster. Any disadvantage?
- {
- node->setPosition(joint->Animatedposition);
- core::quaternion qrot = joint->Animatedrotation;
- qrot.W *= -1.f; // Animation system uses right-handed rotations? Argh...
- irr::core::vector3df euler;
- qrot.toEuler(euler);
- euler *= core::RADTODEG;
- node->setRotation(euler);
- node->setScale(joint->Animatedscale);
- }
- else
- {
- node->setPosition(joint->LocalAnimatedMatrix.getTranslation());
- node->setRotation(joint->LocalAnimatedMatrix.getRotationDegrees());
- node->setScale(joint->LocalAnimatedMatrix.getScale());
- }
+ node->setPosition(joint->LocalAnimatedMatrix.getTranslation());
+ node->setRotation(joint->LocalAnimatedMatrix.getRotationDegrees());
+ node->setScale(joint->LocalAnimatedMatrix.getScale());
node->positionHint=joint->positionHint;
node->scaleHint=joint->scaleHint;
|