From c7ed933c9dfbd07a070cdcf9ec74b58f697a6643 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 4 Apr 2013 19:53:25 +0200 Subject: [PATCH] Add ol.vec.Mat4.multVec2 --- src/ol/vec/mat4.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/ol/vec/mat4.js b/src/ol/vec/mat4.js index 46535be877..c6dae319a1 100644 --- a/src/ol/vec/mat4.js +++ b/src/ol/vec/mat4.js @@ -90,3 +90,23 @@ ol.vec.Mat4.makeSaturation = function(matrix, value) { v03, v13, v23, v33); return matrix; }; + + +/** + * Transforms the given vector with the given matrix storing the resulting, + * transformed vector into resultVec. The input vector is multiplied against the + * upper 2x4 matrix omitting the projective component. + * + * @param {goog.vec.Mat4.AnyType} mat The matrix supplying the transformation. + * @param {Array.} vec The 3 element vector to transform. + * @param {Array.} resultVec The 3 element vector to receive the results + * (may be vec). + * @return {Array.} return resultVec so that operations can be + * chained together. + */ +ol.vec.Mat4.multVec2 = function(mat, vec, resultVec) { + var x = vec[0], y = vec[1]; + resultVec[0] = x * mat[0] + y * mat[4] + mat[12]; + resultVec[1] = x * mat[1] + y * mat[5] + mat[13]; + return resultVec; +};