From 0bf4ad9e4a9e1c97e92aa23a365405dfef89bd7c Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 17 Jan 2021 19:36:30 +0000 Subject: Big reshuffle Fixes code quality warnings now picked up. --- gfx/gl/transform.h | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 gfx/gl/transform.h (limited to 'gfx/gl/transform.h') diff --git a/gfx/gl/transform.h b/gfx/gl/transform.h new file mode 100644 index 0000000..07040ae --- /dev/null +++ b/gfx/gl/transform.h @@ -0,0 +1,58 @@ +#ifndef TRANSFORM_INCLUDED_H +#define TRANSFORM_INCLUDED_H + +#include + +class Camera; + +class Transform { +public: + explicit Transform(glm::vec3 pos = {}, glm::vec3 rot = {}, glm::vec3 scale = {1.0F, 1.0F, 1.0F}); + + [[nodiscard]] glm::mat4 GetModel() const; + + [[nodiscard]] glm::mat4 GetMVP(const Camera & camera) const; + + [[nodiscard]] inline glm::vec3 & + GetPos() + { + return pos; + } + + [[nodiscard]] inline glm::vec3 & + GetRot() + { + return rot; + } + + [[nodiscard]] inline glm::vec3 & + GetScale() + { + return scale; + } + + inline void + SetPos(glm::vec3 && pos) + { + this->pos = pos; + } + + inline void + SetRot(glm::vec3 && rot) + { + this->rot = rot; + } + + inline void + SetScale(glm::vec3 && scale) + { + this->scale = scale; + } + +private: + glm::vec3 pos; + glm::vec3 rot; + glm::vec3 scale; +}; + +#endif -- cgit v1.2.3