Elevate Engine 1
Loading...
Searching...
No Matches
ITransformable.h
Go to the documentation of this file.
1#pragma once
2
3#include "Transform.h"
4
5namespace Elevate
6{
7 // TODO UPDATE TO MATCH NEW TRANSFORM FEATURES;
13 {
14 public:
15 inline Transform& GetTransform() { return m_Transform; }
16 inline const Transform& GetTransform() const { return m_Transform; }
17
18 // position
19 inline void SetPosition(glm::vec3 pos)
20 {
23 }
24 inline void SetRotation(glm::vec3 rotation)
25 {
26 m_Transform.SetRotation(rotation);
28 }
29 inline void SetScale(glm::vec3 scale)
30 {
31 m_Transform.SetScale(scale);
32 OnSetScale();
33 }
34
35 inline glm::vec3& GetPosition() { return m_Transform.GetPosition(); }
36 inline glm::vec3& GetRotation() { return m_Transform.GetRotation(); }
37 inline glm::vec3& GetScale() { return m_Transform.GetScale(); }
38
39 inline const glm::mat4& GetModelMatrix() const { return m_Transform.GetModelMatrix(); }
40
41 protected:
42 // Callbakcs for any objects the inherits
43 virtual void OnSetPosition() {}
44 virtual void OnSetRotation() {}
45 virtual void OnSetScale() {}
46
47 protected:
49 };
50}
An interface to add all of the methods needed to have a working transform wrapped by getter and sette...
const glm::mat4 & GetModelMatrix() const
virtual void OnSetPosition()
virtual void OnSetRotation()
void SetRotation(glm::vec3 rotation)
void SetPosition(glm::vec3 pos)
const Transform & GetTransform() const
void SetScale(glm::vec3 scale)
virtual void OnSetScale()
glm::vec3 & GetPosition()
Definition Transform.h:23
void SetPosition(glm::vec3 pos)
Definition Transform.h:19
const glm::mat4 & GetModelMatrix() const
Definition Transform.cpp:41
glm::vec3 & GetScale()
Definition Transform.h:27
void SetScale(glm::vec3 scale)
Definition Transform.h:21
glm::vec3 & GetRotation()
Definition Transform.h:25
void SetRotation(glm::vec3 rot)
Definition Transform.h:20