modeling/src/maths/mat4/fromTranslation.js

  1. /**
  2. * Creates a matrix from a vector translation.
  3. * This is equivalent to (but much faster than):
  4. *
  5. * mat4.identity(dest)
  6. * mat4.translate(dest, dest, vec)
  7. *
  8. * @param {mat4} out - receiving matrix
  9. * @param {vec3} vector - offset (vector) of translation
  10. * @returns {mat4} out
  11. * @alias module:modeling/maths/mat4.fromTranslation
  12. * @example
  13. * let matrix = fromTranslation(create(), [1, 2, 3])
  14. */
  15. const fromTranslation = (out, vector) => {
  16. out[0] = 1
  17. out[1] = 0
  18. out[2] = 0
  19. out[3] = 0
  20. out[4] = 0
  21. out[5] = 1
  22. out[6] = 0
  23. out[7] = 0
  24. out[8] = 0
  25. out[9] = 0
  26. out[10] = 1
  27. out[11] = 0
  28. out[12] = vector[0]
  29. out[13] = vector[1]
  30. out[14] = vector[2]
  31. out[15] = 1
  32. return out
  33. }
  34. module.exports = fromTranslation