Advertisement
Guest User

Untitled

a guest
Apr 27th, 2015
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. #ifndef TRANSFORM_H
  2. #define TRANSFORM_H
  3.  
  4. #define GLEW_STATIC
  5.  
  6. #include <iostream>
  7. #include <glm/glm.hpp>
  8. #include <glm/gtx/transform.hpp>
  9. #include <GL/glew.h>
  10.  
  11. using namespace std;
  12.  
  13. class Transform
  14. {
  15. public:
  16. Transform(const glm::vec3& pos = glm::vec3(),const glm::vec3& rot = glm::vec3(),const glm::vec3& scale = glm::vec3(1,1,1))
  17. {
  18. m_pos = pos;
  19. m_rot = rot;
  20. m_scale = scale;
  21. }
  22.  
  23. inline glm::mat4 getModel()
  24. {
  25. glm::mat4 posMatrix = glm::translate(m_pos);
  26. glm::mat4 rotXMatrix = glm::rotate(m_rot.x,glm::vec3(1,0,0));
  27. glm::mat4 rotYMatrix = glm::rotate(m_rot.y,glm::vec3(0,1,0));
  28. glm::mat4 rotZMatrix = glm::rotate(m_rot.z,glm::vec3(0,0,1));
  29. glm::mat4 scaleMatrix = glm::scale(m_scale);
  30.  
  31. glm::mat4 rotMatrix = rotZMatrix * rotYMatrix * rotXMatrix;
  32.  
  33. return posMatrix * rotMatrix * scaleMatrix;
  34. }
  35.  
  36. inline glm::vec3& getPos(){return m_pos;}
  37. inline glm::vec3& getRot(){return m_rot;}
  38. inline glm::vec3& getScale(){return m_scale;}
  39.  
  40. inline void setPos(glm::vec3 pos){m_pos = pos;}
  41. inline void setRot(glm::vec3 rot){m_rot = rot;}
  42. inline void setScale(glm::vec3 scale){m_scale = scale;}
  43.  
  44. inline void setRotX(float x){m_rot.x = x;}
  45. inline void setRotY(float y){m_rot.y = y;}
  46. inline void setRotZ(float z){m_rot.z = z;}
  47.  
  48. protected:
  49. private:
  50. glm::vec3 m_pos;
  51. glm::vec3 m_rot;
  52. glm::vec3 m_scale;
  53. };
  54.  
  55. #endif // TRANSFORM_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement