浏览代码

Bone: fix undefined matrix and missing invert computation (#8558)

* Fix undefined matrix

* Fix missing inverse computation
Popov72 5 年之前
父节点
当前提交
33e4b2b5e0
共有 1 个文件被更改,包括 7 次插入1 次删除
  1. 7 1
      src/Bones/bone.ts

+ 7 - 1
src/Bones/bone.ts

@@ -437,6 +437,8 @@ export class Bone extends Node {
                 } else {
                     tmat.copyFrom(this._parent.getAbsoluteTransform());
                 }
+            } else {
+                Matrix.IdentityToRef(tmat);
             }
 
             tmat.setTranslationFromFloats(0, 0, 0);
@@ -482,9 +484,11 @@ export class Bone extends Node {
                 } else {
                     tmat.copyFrom(this._parent.getAbsoluteTransform());
                 }
+                tmat.invert();
+            } else {
+                Matrix.IdentityToRef(tmat);
             }
 
-            tmat.invert();
             Vector3.TransformCoordinatesToRef(position, tmat, vec);
             lm.setTranslationFromFloats(vec.x, vec.y, vec.z);
         }
@@ -859,6 +863,8 @@ export class Bone extends Node {
             }
         }
 
+        this._absoluteTransform.invertToRef(this._invertedAbsoluteTransform);
+
         var children = this.children;
         var len = children.length;