RenderEngine
Loading...
Searching...
No Matches
Object.hpp
Go to the documentation of this file.
1/*
2 * Object.hpp
3 *
4 * Class for representing scenegraph objects, e.g. simple ones like triangles, quads, but also more complex meshes.
5 Each object has a tranformation.
6 * by Stefanie Zollmann
7 *
8 */
9#ifndef OBJECT_HPP
10#define OBJECT_HPP
11
12// Include GLM
13// Include GLM
14#include <glm/glm.hpp>
15#include <glm/gtc/matrix_transform.hpp>
16#include <glm/gtc/quaternion.hpp>
17#include <glm/gtx/quaternion.hpp>
18#include <glm/gtx/euler_angles.hpp>
19#include <glm/gtx/norm.hpp>
20#include "Shader.hpp"
21#include "Camera.hpp"
22
23
25
28class Object{
29 public:
31
32 Object();
34
35 virtual ~Object(){
36
37 delete shader;
38 }
40
41 void setShader(Shader* newshader);
42
44
45 glm::mat4 getTransform();
46
48
49 void addTransform(glm::mat4 mat);
50
52
53 virtual void render(Camera* camera)=0;
54
56
57 void setTranslate(glm::vec3 translateVec);
59
60 void setScale(float scale);
62
63 void bindShaders();
65
66 void unBindShader();
67
68 private:
69 std::string name;
70 glm::mat4 transform;
71 glm::mat4 rotMat;
72 glm::mat4 transMat;
73 glm::mat4 scaleMat;
74
75 protected:
77
78
79};
80
81#endif
82
Camera.
Definition Camera.hpp:22
Object.
Definition Object.hpp:28
void setScale(float scale)
setScale
Definition Object.cpp:43
Shader * shader
each object can have a shader
Definition Object.hpp:76
void unBindShader()
unBindShader
Definition Object.cpp:54
Object()
Default constructor.
Definition Object.cpp:15
void setTranslate(glm::vec3 translateVec)
setTranslate
Definition Object.cpp:37
void bindShaders()
bindShaders
Definition Object.cpp:49
virtual ~Object()
Destructor.
Definition Object.hpp:35
void addTransform(glm::mat4 mat)
addTransform
Definition Object.cpp:34
virtual void render(Camera *camera)=0
render
glm::mat4 getTransform()
getTransform
Definition Object.cpp:33
void setShader(Shader *newshader)
setShader
Definition Object.cpp:26
Shader.
Definition Shader.hpp:27