summaryrefslogtreecommitdiff
path: root/task05_3D/Guschin/Transform.h
diff options
context:
space:
mode:
authorAndrew Guschin <saintruler@gmail.com>2020-11-10 01:15:07 +0300
committerAndrew Guschin <saintruler@gmail.com>2020-11-10 01:15:07 +0300
commit73c6ec80c71dd43125b6a9b00dd9e940b827f29f (patch)
treecc3efa28497fe78f925522deedc772e930e11f1d /task05_3D/Guschin/Transform.h
parent70a1711e877ba980e094ef66925568ee94afc3af (diff)
Разделил 5 задачу на два проекта
Diffstat (limited to 'task05_3D/Guschin/Transform.h')
-rw-r--r--task05_3D/Guschin/Transform.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/task05_3D/Guschin/Transform.h b/task05_3D/Guschin/Transform.h
new file mode 100644
index 0000000..d606647
--- /dev/null
+++ b/task05_3D/Guschin/Transform.h
@@ -0,0 +1,45 @@
+#pragma once
+
+mat3 translate(float Tx, float Ty)
+{
+ mat3* res = new mat3(1.f);
+ (*res)[0][2] = Tx;
+ (*res)[1][2] = Ty;
+ return *res;
+}
+
+mat3 scale(float Sx, float Sy)
+{
+ mat3* res = new mat3(1.f);
+ (*res)[0][0] = Sx;
+ (*res)[1][1] = Sy;
+ return *res;
+}
+
+mat3 scale(float S)
+{
+ return scale(S, S);
+}
+
+mat3 rotate(float theta)
+{
+ mat3* res = new mat3(1.f);
+ (*res)[0][0] = (*res)[1][1] = (float)cos(theta);
+ (*res)[0][1] = (float)sin(theta);
+ (*res)[1][0] = -(*res)[0][1];
+ return *res;
+}
+
+mat3 mirrorX()
+{
+ mat3* res = new mat3(1.f);
+ (*res)[1][1] = -1;
+ return *res;
+}
+
+mat3 mirrorY()
+{
+ mat3* res = new mat3(1.f);
+ (*res)[0][0] = -1;
+ return *res;
+} \ No newline at end of file