aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/math/je_vector2.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/math/je_vector2.hpp')
-rw-r--r--src/libjin/math/je_vector2.hpp63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/libjin/math/je_vector2.hpp b/src/libjin/math/je_vector2.hpp
new file mode 100644
index 0000000..b4cab44
--- /dev/null
+++ b/src/libjin/math/je_vector2.hpp
@@ -0,0 +1,63 @@
+#ifndef __JE_VECTOR_H__
+#define __JE_VECTOR_H__
+
+namespace JinEngine
+{
+ namespace Math
+ {
+
+ template<typename T>
+ class Vector2
+ {
+ public:
+ Vector2()
+ {
+ data[0] = data[1] = 0;
+ }
+ Vector2(T _x, T _y)
+ {
+ data[0] = _x;
+ data[1] = _y;
+ }
+ Vector2(const Vector2<T>& v)
+ {
+ data[0] = v.data[0];
+ data[1] = v.data[1];
+ }
+
+ void operator = (const Vector2<T>& v)
+ {
+ data[0] = v.data[0];
+ data[1] = v.data[1];
+ }
+
+ Vector2<T> operator * (float n)
+ {
+ return Vector2<T>(data[0]*n, data[1]*n);
+ }
+
+ void operator +=(const Vector2<T> v)
+ {
+ data[0] += v.data[0];
+ data[1] += v.data[1];
+ }
+
+ void set(T _x, T _y)
+ {
+ data[0] = _x;
+ data[1] = _y;
+ }
+
+ 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
+
+ private:
+ T data[2];
+
+ };
+
+ } // namespace Math
+} // namespace JinEngine
+
+#endif \ No newline at end of file