diff options
| author | Andrew Guschin <saintruler@gmail.com> | 2020-11-10 01:15:07 +0300 |
|---|---|---|
| committer | Andrew Guschin <saintruler@gmail.com> | 2020-11-10 01:15:07 +0300 |
| commit | 73c6ec80c71dd43125b6a9b00dd9e940b827f29f (patch) | |
| tree | cc3efa28497fe78f925522deedc772e930e11f1d /task05_2D/Guschin/Transform.h | |
| parent | 70a1711e877ba980e094ef66925568ee94afc3af (diff) | |
Разделил 5 задачу на два проекта
Diffstat (limited to 'task05_2D/Guschin/Transform.h')
| -rw-r--r-- | task05_2D/Guschin/Transform.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/task05_2D/Guschin/Transform.h b/task05_2D/Guschin/Transform.h new file mode 100644 index 0000000..d606647 --- /dev/null +++ b/task05_2D/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 |