OSDN Git Service

* Fixed issue where scene graphs with non-uniform scales would give incorrect result
authorshadowislord <shadowislord@75d07b2b-3a1a-0410-a2c5-0572b91ccdca>
Sat, 23 Apr 2011 03:05:06 +0000 (03:05 +0000)
committershadowislord <shadowislord@75d07b2b-3a1a-0410-a2c5-0572b91ccdca>
Sat, 23 Apr 2011 03:05:06 +0000 (03:05 +0000)
git-svn-id: http://jmonkeyengine.googlecode.com/svn/trunk@7291 75d07b2b-3a1a-0410-a2c5-0572b91ccdca

engine/src/core/com/jme3/animation/Bone.java
engine/src/core/com/jme3/math/Transform.java

index 3c41879..b46e127 100644 (file)
@@ -237,7 +237,6 @@ public final class Bone implements Savable {
      */
     public final void updateWorldVectors() {
         if (parent != null) {
-
             //rotation
             parent.worldRot.mult(localRot, worldRot);
 
@@ -251,9 +250,6 @@ public final class Bone implements Savable {
             parent.worldRot.mult(localPos, worldPos);
             worldPos.multLocal(parent.worldScale);
             worldPos.addLocal(parent.worldPos);
-
-
-
         } else {
             worldRot.set(localRot);
             worldPos.set(localPos);
index d01334f..2d50fe6 100644 (file)
@@ -200,11 +200,18 @@ public final class Transform implements Savable, Cloneable {
         scale.multLocal(parent.scale);\r
 //        rot.multLocal(parent.rot);\r
         parent.rot.mult(rot, rot);\r
-        \r
+\r
+        // This here, is evil code\r
+//        parent\r
+//            .rot\r
+//            .multLocal(translation)\r
+//            .multLocal(parent.scale)\r
+//            .addLocal(parent.translation);\r
+\r
+        translation.multLocal(parent.scale);\r
         parent\r
             .rot\r
             .multLocal(translation)\r
-            .multLocal(parent.scale)\r
             .addLocal(parent.translation);\r
         return this;\r
     }\r
@@ -262,8 +269,9 @@ public final class Transform implements Savable, Cloneable {
 \r
     @Override\r
     public String toString(){\r
-        return getClass().getSimpleName() + "[ "+translation.x + ", "+ translation.y + ", "+translation.z+"]\n"+\r
-                                            "[ "+rot.x + ", " + rot.y + ", " + rot.z + ", " + rot.w + "]";\r
+        return getClass().getSimpleName() + "[ " + translation.x + ", " + translation.y + ", " + translation.z + "]\n"\r
+                                          + "[ " + rot.x + ", " + rot.y + ", " + rot.z + ", " + rot.w + "]\n"\r
+                                          + "[ " + scale.x + " , " + scale.y + ", " + scale.z + "]";\r
     }\r
 \r
     /**\r