aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/math
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/math')
-rw-r--r--src/libjin/math/je_matrix.cpp7
-rw-r--r--src/libjin/math/je_vector2.hpp14
2 files changed, 14 insertions, 7 deletions
diff --git a/src/libjin/math/je_matrix.cpp b/src/libjin/math/je_matrix.cpp
index f422002..96eae86 100644
--- a/src/libjin/math/je_matrix.cpp
+++ b/src/libjin/math/je_matrix.cpp
@@ -184,11 +184,10 @@ namespace JinEngine
for (int i = 0; i<size; ++i)
{
// Store in temp variables in case src = dst
- float x = (e[0] * src[i].x) + (e[4] * src[i].y) + (0) + (e[12]);
- float y = (e[1] * src[i].x) + (e[5] * src[i].y) + (0) + (e[13]);
+ float x = (e[0] * src[i].xy.x) + (e[4] * src[i].xy.y) + (0) + (e[12]);
+ float y = (e[1] * src[i].xy.x) + (e[5] * src[i].xy.y) + (0) + (e[13]);
- dst[i].x = x;
- dst[i].y = y;
+ dst[i].xy.set(x, y);
}
}
diff --git a/src/libjin/math/je_vector2.hpp b/src/libjin/math/je_vector2.hpp
index 4d76987..4be30fb 100644
--- a/src/libjin/math/je_vector2.hpp
+++ b/src/libjin/math/je_vector2.hpp
@@ -58,9 +58,17 @@ namespace JinEngine
return data[0] == 0 && data[1] == 0;
}
- T &x = data[0], &y = data[1]; // xy
- T &w = data[0], &h = data[1]; // wh
- T &colum = data[0], &row = data[1]; // colum row
+ #define _aliases(A, B) \
+ T& A() { return data[0]; }\
+ T& B() { return data[1]; }\
+ T A() const { return data[0]; }\
+ T B() const { return data[1]; }
+
+ _aliases(x, y)
+ _aliases(w, h)
+ _aliases(colum, row)
+
+ #undef _aliases
private:
T data[2];