* @function LevelRenderer.Tool.Matrix.prototype.invert * @description 求逆矩阵。 * @param {(Float32Array|Array. )} out - 单位矩阵。 * @param {(Float32Array|Array. )} a - 矩阵。 * @returns {(Float32Array|Array. )} 结果矩阵。
(out, a)
| 160 | * @returns {(Float32Array|Array.<number>)} 结果矩阵。 |
| 161 | */ |
| 162 | invert(out, a) { |
| 163 | var aa = a[0]; |
| 164 | var ac = a[2]; |
| 165 | var atx = a[4]; |
| 166 | var ab = a[1]; |
| 167 | var ad = a[3]; |
| 168 | var aty = a[5]; |
| 169 | |
| 170 | var det = aa * ad - ab * ac; |
| 171 | if (!det) { |
| 172 | return null; |
| 173 | } |
| 174 | det = 1.0 / det; |
| 175 | |
| 176 | out[0] = ad * det; |
| 177 | out[1] = -ab * det; |
| 178 | out[2] = -ac * det; |
| 179 | out[3] = aa * det; |
| 180 | out[4] = (ac * aty - ad * atx) * det; |
| 181 | out[5] = (ab * atx - aa * aty) * det; |
| 182 | return out; |
| 183 | } |
| 184 | |
| 185 | /** |
| 186 | * @function LevelRenderer.Tool.Matrix.prototype.mulVector |
no outgoing calls
no test coverage detected