summaryrefslogtreecommitdiff
path: root/engine-ocean/Graphics/modeltransform.h
blob: 46f5b7390aebd8fc571881b7c905231044751fb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#pragma once

#include "glm/glm.hpp"
#include "glm/ext.hpp"

class ModelTransform{
public:
    ModelTransform();
    ~ModelTransform();

    void setPos(glm::vec3 pos);
    void translate(glm::vec3 delta);
    glm::vec3 getPos();
    void setScale(glm::vec3 scale);
    void setScale(float scale);
    void scale(glm::vec3 scale);
    void scale(float scale);
    glm::vec3 getScale();
    void setRotation(float angle, glm::vec3 axis);
    void setRotation(glm::mat4 r);
    void rotate(float angle, glm::vec3 axis);
    void rotate(glm::mat4 r);
    glm::mat4 getRotation();
    glm::mat4 getModelMatrix();
    void clear();

    float getYRotationAngle();


private:
    glm::vec3 m_pos;
    glm::vec3 m_scale;
    glm::mat4 m_rotation = glm::mat4(1);
};