diff options
Diffstat (limited to 'src/libjin/math')
-rw-r--r-- | src/libjin/math/je_matrix.cpp | 7 | ||||
-rw-r--r-- | src/libjin/math/je_vector2.hpp | 14 |
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]; |