modeling/src/maths/mat4/scale.js

  1. /**
  2. * Scales the matrix by the given dimensions.
  3. *
  4. * @param {mat4} out - receiving matrix
  5. * @param {mat4} matrix - matrix to scale
  6. * @param {vec3} dimensions - dimensions to scale the matrix by
  7. * @returns {mat4} out
  8. * @alias module:modeling/maths/mat4.scale
  9. */
  10. const scale = (out, matrix, dimensions) => {
  11. const x = dimensions[0]
  12. const y = dimensions[1]
  13. const z = dimensions[2]
  14. out[0] = matrix[0] * x
  15. out[1] = matrix[1] * x
  16. out[2] = matrix[2] * x
  17. out[3] = matrix[3] * x
  18. out[4] = matrix[4] * y
  19. out[5] = matrix[5] * y
  20. out[6] = matrix[6] * y
  21. out[7] = matrix[7] * y
  22. out[8] = matrix[8] * z
  23. out[9] = matrix[9] * z
  24. out[10] = matrix[10] * z
  25. out[11] = matrix[11] * z
  26. out[12] = matrix[12]
  27. out[13] = matrix[13]
  28. out[14] = matrix[14]
  29. out[15] = matrix[15]
  30. return out
  31. }
  32. module.exports = scale