diff options
Diffstat (limited to 'frontend/_shared/math/mat4.js')
| -rw-r--r-- | frontend/_shared/math/mat4.js | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/frontend/_shared/math/mat4.js b/frontend/_shared/math/mat4.js index 6ab29e2..d31a20e 100644 --- a/frontend/_shared/math/mat4.js +++ b/frontend/_shared/math/mat4.js @@ -40,4 +40,24 @@ function scaleMatrix(m, x, y, z) { m[5] = m[5] * y; m[10] = m[10] * z; return m; +} + +function multMat4ByVec2(matrix, vec) { + var lInnerVec = {...vec}; + lInnerVec.z = 0.0; + lInnerVec.w = 1.0; + + return { + x: lInnerVec.x * matrix[0] + lInnerVec.y * matrix[4] + lInnerVec.z * matrix[8] + lInnerVec.w * matrix[12], + y: lInnerVec.x * matrix[1] + lInnerVec.y * matrix[5] + lInnerVec.z * matrix[9] + lInnerVec.w * matrix[13] + }; +} + +function multMat4ByVec4(matrix, vec) { + return { + x: vec.x * matrix[0] + vec.y * matrix[4] + vec.z * matrix[8] + vec.w * matrix[12], + y: vec.x * matrix[1] + vec.y * matrix[5] + vec.z * matrix[9] + vec.w * matrix[13], + z: vec.x * matrix[2] + vec.y * matrix[6] + vec.z * matrix[10] + vec.w * matrix[14], + w: vec.x * matrix[3] + vec.y * matrix[7] + vec.z * matrix[11] + vec.w * matrix[15] + }; }
\ No newline at end of file |
