summaryrefslogtreecommitdiffstats
path: root/libs/rs/rsMatrix.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/rs/rsMatrix.cpp')
-rw-r--r--libs/rs/rsMatrix.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/libs/rs/rsMatrix.cpp b/libs/rs/rsMatrix.cpp
index 5f68197..2f21405 100644
--- a/libs/rs/rsMatrix.cpp
+++ b/libs/rs/rsMatrix.cpp
@@ -85,7 +85,7 @@ void Matrix::loadRotate(float rot, float x, float y, float z)
const float zx = z * x;
const float xs = x * s;
const float ys = y * s;
- const float zs = z * s;
+ const float zs = z * s;
m[ 0] = x*x*nc + c;
m[ 4] = xy*nc - zs;
m[ 8] = zx*nc + ys;
@@ -156,4 +156,9 @@ void Matrix::loadFrustum(float l, float r, float b, float t, float n, float f) {
m[15]= 0;
}
-
+void Matrix::vectorMultiply(float *out, const float *in) const {
+ out[0] = (m[0] * in[0]) + (m[4] * in[1]) + (m[8] * in[2]) + m[12];
+ out[1] = (m[1] * in[0]) + (m[5] * in[1]) + (m[9] * in[2]) + m[13];
+ out[2] = (m[2] * in[0]) + (m[6] * in[1]) + (m[10] * in[2]) + m[14];
+ out[3] = (m[3] * in[0]) + (m[7] * in[1]) + (m[11] * in[2]) + m[15];
+}