summaryrefslogtreecommitdiff
path: root/engine/matrix.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engine/matrix.cpp')
-rw-r--r--engine/matrix.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/engine/matrix.cpp b/engine/matrix.cpp
new file mode 100644
index 0000000..96c539c
--- /dev/null
+++ b/engine/matrix.cpp
@@ -0,0 +1,29 @@
+#include "matrix.h"
+
+#include <cmath>
+
+Matrix2::Matrix2() {
+ m[0][0] = m[0][1] =
+ m[1][0] = m[1][1] = 0;
+}
+
+Matrix2::Matrix2(float m00, float m01, float m10, float m11) {
+ m[0][0] = m00;
+ m[0][1] = m01;
+ m[1][0] = m10;
+ m[1][1] = m11;
+}
+
+Vector2 Matrix2::operator*(const Vector2& v) {
+ return Vector2(
+ m[0][0] * v.x + m[0][1] * v.y,
+ m[1][0] * v.x + m[1][1] * v.y);
+}
+
+Matrix2 rotation_matrix(float rot) {
+ float s = sinf(rot);
+ float c = cosf(rot);
+ return Matrix2(
+ c, -s,
+ s, c);
+} \ No newline at end of file