diff --git a/package.json b/package.json index 27ef767f0..ae3904740 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,6 @@ }, "devDependencies": { "@types/command-exists": "^1.2.0", - "@types/gl-matrix": "^3.2.0", "@types/markdown-table": "^2.0.0", "@types/ndarray": "^1.0.8", "@types/node": "^14.14.37", diff --git a/packages/core/src/utils/math-utils.ts b/packages/core/src/utils/math-utils.ts index 2a302fba8..c94697ded 100644 --- a/packages/core/src/utils/math-utils.ts +++ b/packages/core/src/utils/math-utils.ts @@ -1,4 +1,5 @@ -import { ReadonlyMat4, mat4 as glMat4, vec3 as glVec3 } from 'gl-matrix'; +import { determinant, getRotation } from 'gl-matrix/mat4'; +import { length } from 'gl-matrix/vec3'; import { mat4, vec3, vec4 } from '../constants'; import { GLTF } from '../types/gltf'; @@ -72,12 +73,12 @@ export class MathUtils { dstTranslation: vec3, dstRotation: vec4, dstScale: vec3): void { - let sx = glVec3.length([srcMat[0], srcMat[1], srcMat[2]]); - const sy = glVec3.length([srcMat[4], srcMat[5], srcMat[6]]); - const sz = glVec3.length([srcMat[8], srcMat[9], srcMat[10]]); + let sx = length([srcMat[0], srcMat[1], srcMat[2]]); + const sy = length([srcMat[4], srcMat[5], srcMat[6]]); + const sz = length([srcMat[8], srcMat[9], srcMat[10]]); // if determine is negative, we need to invert one scale - const det = glMat4.determinant(srcMat); + const det = determinant(srcMat); if (det < 0) sx = - sx; dstTranslation[0] = srcMat[12]; @@ -103,7 +104,7 @@ export class MathUtils { _m1[9] *= invSZ; _m1[10] *= invSZ; - glMat4.getRotation(dstRotation, _m1 as unknown as ReadonlyMat4); + getRotation(dstRotation, _m1); dstScale[0] = sx; dstScale[1] = sy; diff --git a/yarn.lock b/yarn.lock index eda04646c..d20a511db 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1938,13 +1938,6 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== -"@types/gl-matrix@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@types/gl-matrix/-/gl-matrix-3.2.0.tgz#a62e0f26be4ab6fa55284a29eec631c8641438a1" - integrity sha512-CY4JAtSOGQX7rVgqVuOk7ZfaLv8VeadDMPj3smMOy8Hp/YiHONa3Mr0mEUgbo0eEwV7+Owpf6BwspcA7hv4NXg== - dependencies: - gl-matrix "*" - "@types/glob@^7.1.1": version "7.1.3" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" @@ -4713,16 +4706,16 @@ gl-mat4@^1.1.4: resolved "https://registry.yarnpkg.com/gl-mat4/-/gl-mat4-1.2.0.tgz#49d8a7636b70aa00819216635f4a3fd3f4669b26" integrity sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA== -gl-matrix@*, gl-matrix@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-3.3.0.tgz#232eef60b1c8b30a28cbbe75b2caf6c48fd6358b" - integrity sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA== - gl-matrix@^2.4.0: version "2.8.1" resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-2.8.1.tgz#1c7873448eac61d2cd25803a074e837bd42581a3" integrity sha512-0YCjVpE3pS5XWlN3J4X7AiAx65+nqAI54LndtVFnQZB6G/FVLkZH8y8V6R3cIoOQR4pUdfwQGd1iwyoXHJ4Qfw== +gl-matrix@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/gl-matrix/-/gl-matrix-3.3.0.tgz#232eef60b1c8b30a28cbbe75b2caf6c48fd6358b" + integrity sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA== + gl-vec3@^1.0.3: version "1.1.3" resolved "https://registry.yarnpkg.com/gl-vec3/-/gl-vec3-1.1.3.tgz#a47c62f918774a06cbed1b65bcd0288ecbb03826"