- Creator 版本:2.4.3,3.0.0
/**
* !#zh 提取矩阵的缩放信息, 默认矩阵中的变换以 S->R->T 的顺序应用
* !#en Scaling information extraction matrix, the matrix transform to the default sequential application S-> R-> T is
* @method getScaling
* @typescript
* getScaling<Out extends IMat4Like, VecLike extends IVec3Like> (out: VecLike, mat: Out): VecLike
* @static
*/
static getScaling<Out extends IMat4Like, VecLike extends IVec3Like> (out: VecLike, mat: Out) {
let m = mat.m;
let m3 = m3_1.m;
const m00 = m3[0] = m[0];
const m01 = m3[1] = m[1];
const m02 = m3[2] = m[2];
const m04 = m3[3] = m[4];
const m05 = m3[4] = m[5];
const m06 = m3[5] = m[6];
const m08 = m3[6] = m[8];
const m09 = m3[7] = m[9];
const m10 = m3[8] = m[10];
out.x = Math.sqrt(m00 * m00 + m01 * m01 + m02 * m02);
out.y = Math.sqrt(m04 * m04 + m05 * m05 + m06 * m06);
out.z = Math.sqrt(m08 * m08 + m09 * m09 + m10 * m10);
// account for refections 这句是什么意思
if (Mat3.determinant(m3_1) < 0) { out.x *= -1; }
return out;
}
UE引擎也没有处理determinant小于0的情况
