(out, mat)
| 73605 | return out; |
| 73606 | } |
| 73607 | function getRotation(out, mat) { |
| 73608 | var scaling = new _commonJs.ARRAY_TYPE(3); |
| 73609 | getScaling(scaling, mat); |
| 73610 | var is1 = 1 / scaling[0]; |
| 73611 | var is2 = 1 / scaling[1]; |
| 73612 | var is3 = 1 / scaling[2]; |
| 73613 | var sm11 = mat[0] * is1; |
| 73614 | var sm12 = mat[1] * is2; |
| 73615 | var sm13 = mat[2] * is3; |
| 73616 | var sm21 = mat[4] * is1; |
| 73617 | var sm22 = mat[5] * is2; |
| 73618 | var sm23 = mat[6] * is3; |
| 73619 | var sm31 = mat[8] * is1; |
| 73620 | var sm32 = mat[9] * is2; |
| 73621 | var sm33 = mat[10] * is3; |
| 73622 | var trace = sm11 + sm22 + sm33; |
| 73623 | var S = 0; |
| 73624 | if (trace > 0) { |
| 73625 | S = Math.sqrt(trace + 1.0) * 2; |
| 73626 | out[3] = 0.25 * S; |
| 73627 | out[0] = (sm23 - sm32) / S; |
| 73628 | out[1] = (sm31 - sm13) / S; |
| 73629 | out[2] = (sm12 - sm21) / S; |
| 73630 | } else if (sm11 > sm22 && sm11 > sm33) { |
| 73631 | S = Math.sqrt(1.0 + sm11 - sm22 - sm33) * 2; |
| 73632 | out[3] = (sm23 - sm32) / S; |
| 73633 | out[0] = 0.25 * S; |
| 73634 | out[1] = (sm12 + sm21) / S; |
| 73635 | out[2] = (sm31 + sm13) / S; |
| 73636 | } else if (sm22 > sm33) { |
| 73637 | S = Math.sqrt(1.0 + sm22 - sm11 - sm33) * 2; |
| 73638 | out[3] = (sm31 - sm13) / S; |
| 73639 | out[0] = (sm12 + sm21) / S; |
| 73640 | out[1] = 0.25 * S; |
| 73641 | out[2] = (sm23 + sm32) / S; |
| 73642 | } else { |
| 73643 | S = Math.sqrt(1.0 + sm33 - sm11 - sm22) * 2; |
| 73644 | out[3] = (sm12 - sm21) / S; |
| 73645 | out[0] = (sm31 + sm13) / S; |
| 73646 | out[1] = (sm23 + sm32) / S; |
| 73647 | out[2] = 0.25 * S; |
| 73648 | } |
| 73649 | return out; |
| 73650 | } |
| 73651 | function fromRotationTranslationScale(out, q, v, s) { |
| 73652 | // Quaternion math |
| 73653 | var x = q[0], y = q[1], z = q[2], w = q[3]; |
no test coverage detected