Program Listing for File Transform.hpp
↰ Return to documentation for file (engine/include/Cacao/Transform.hpp
)
#pragma once
#include "glm/vec3.hpp"
#include "glm/mat4x4.hpp"
#include "DllHelper.hpp"
namespace Cacao {
class CACAO_API Transform {
public:
Transform(glm::vec3 position, glm::vec3 rotation, glm::vec3 scale)
: pos(position), rot(rotation), scale(scale), transMat(1.0) {
RecalculateTransformationMatrix();
}
glm::vec3 GetPosition() const {
return pos;
}
glm::vec3 GetRotation() const {
return rot;
}
glm::vec3 GetScale() const {
return scale;
}
void SetPosition(glm::vec3 newPos) {
pos = newPos;
RecalculateTransformationMatrix();
}
void SetRotation(glm::vec3 newRot) {
rot = newRot;
RecalculateTransformationMatrix();
}
void SetScale(glm::vec3 newScale) {
scale = newScale;
RecalculateTransformationMatrix();
}
glm::mat4 GetTransformationMatrix() const {
return transMat;
}
private:
glm::vec3 pos, rot, scale;
glm::mat4 transMat;
void RecalculateTransformationMatrix();
};
}