]> git.lizzy.rs Git - irrlicht.git/commitdiff
Revert "Avoid some broken calculations for IBoneSceneNode positions."
authorsfan5 <sfan5@live.de>
Sun, 26 Mar 2023 12:07:42 +0000 (14:07 +0200)
committersfan5 <sfan5@live.de>
Sun, 26 Mar 2023 12:09:40 +0000 (14:09 +0200)
This was reported to cause broken models in some cases.
reverts commit edb381bd5050712d1eb8875fe3a405000dd09a3d

source/Irrlicht/CSkinnedMesh.cpp

index 07e86d6b009c57e8a5e25bee4a559a2cef747e46..75e2ca645a9f2b7d5e15c3540d7a36424cdf1675 100644 (file)
@@ -1347,24 +1347,9 @@ void CSkinnedMesh::recoverJointsFromMesh(core::array<IBoneSceneNode*> &jointChil
        {\r
                IBoneSceneNode* node=jointChildSceneNodes[i];\r
                SJoint *joint=AllJoints[i];\r
-\r
-               if ( joint->UseAnimationFrom )  // Seems to work better (else solution seems to mess up sometimes) and would be faster. Any disadvantage?\r
-               {\r
-                       node->setPosition(joint->Animatedposition);\r
-                       core::quaternion qrot = joint->Animatedrotation;\r
-                       qrot.W *= -1.f; // Animation system uses right-handed rotations? Argh... \r
-                       irr::core::vector3df euler;\r
-                       qrot.toEuler(euler);\r
-                       euler *= core::RADTODEG;\r
-                       node->setRotation(euler);\r
-                       node->setScale(joint->Animatedscale);\r
-               }\r
-               else\r
-               {\r
-                       node->setPosition(joint->LocalAnimatedMatrix.getTranslation());\r
-                       node->setRotation(joint->LocalAnimatedMatrix.getRotationDegrees());\r
-                       node->setScale(joint->LocalAnimatedMatrix.getScale());\r
-               }\r
+               node->setPosition(joint->LocalAnimatedMatrix.getTranslation());\r
+               node->setRotation(joint->LocalAnimatedMatrix.getRotationDegrees());\r
+               node->setScale(joint->LocalAnimatedMatrix.getScale());\r
 \r
                node->positionHint=joint->positionHint;\r
                node->scaleHint=joint->scaleHint;\r