Browse Source

fixed Bone.translate in world space

Adam Bowman 8 năm trước cách đây
mục cha
commit
31fecc1fc3
2 tập tin đã thay đổi với 11 bổ sung8 xóa
  1. 10 7
      src/Bones/babylon.bone.ts
  2. 1 1
      src/Debug/babylon.skeletonViewer.ts

+ 10 - 7
src/Bones/babylon.bone.ts

@@ -184,9 +184,8 @@
             }else{
 
                 this._skeleton.computeAbsoluteTransforms();
-
                 var tmat = Tmp.Matrix[0];
-                var vec = Tmp.Vector3[0];
+                var tvec = Tmp.Vector3[0];
 
                 if (mesh) {
                     tmat.copyFrom(this._parent.getAbsoluteTransform());
@@ -195,12 +194,16 @@
                     tmat.copyFrom(this._parent.getAbsoluteTransform());
                 }
 
-                tmat.invert();
-                Vector3.TransformCoordinatesToRef(vec, tmat, vec);
+                tmat.m[12] = 0;
+                tmat.m[13] = 0;
+                tmat.m[14] = 0;
 
-                lm.m[12] += vec.x;
-                lm.m[13] += vec.y;
-                lm.m[14] += vec.z;
+                tmat.invert();
+                Vector3.TransformCoordinatesToRef(vec, tmat, tvec);
+                
+                lm.m[12] += tvec.x;
+                lm.m[13] += tvec.y;
+                lm.m[14] += tvec.z;
 
             }
 

+ 1 - 1
src/Debug/babylon.skeletonViewer.ts

@@ -91,7 +91,7 @@
                     this._debugLines[boneNum] = points;
                 }
                 childBone.getPositionToRef(points[0], Space.WORLD, this.mesh);
-				parentBone.getPositionToRef(points[1], Space.WORLD, this.mesh);
+                parentBone.getPositionToRef(points[1], Space.WORLD, this.mesh);
                 boneNum++;
             }
         }