Skip to content
Snippets Groups Projects
Select Git revision
  • 56d115fef6051278040814cdda360d23713b835b
  • master default protected
2 results

OpenGLWrapper.h

Blame
  • OpenGLWrapper.h 2.78 KiB
    #pragma once
    #include <vector>
    
    #include <GL/glew.h>
    
    #include <glm/glm.hpp>
    #include <glm/gtc/matrix_transform.hpp>
    #include <glm/gtc/type_ptr.hpp>
    
    #include "Camera.h"
    #include "FileSystem.h"
    #include "Logger.h"
    
    enum ImageType
    {
    	REPEAT,
    	CLAMP
    };
    
    class Mesh
    {
    private:
    	GLuint nVertex;
    	GLuint VAO;
    	GLuint *VBOs;
    
    public:
    	Mesh(GLuint _nVertex, GLuint _VAO, GLuint *_VBOs);
    
    	GLuint get_vertex_count();
    	GLuint get_VAO();
    	GLuint *get_VBOs();
    };
    void draw_mesh(Mesh &mesh);
    
    class Material
    {
    private:
    	GLuint prog;
    
    	GLuint diffuseMap;
    	GLuint specularMap;
    
    public:
    	Material(GLuint _prog, GLuint _diffuseMap, GLuint _specularMap);
    
    	GLuint get_program();
    
    	GLuint get_diffuseMap();
    	GLuint get_specularMap();
    };
    
    class Transform
    {
    private:
    	glm::mat4 model;
    
    	glm::vec3 translate;
    	glm::vec3 rotate;
    	glm::vec3 scale;
    
    	glm::vec3 front;
    	glm::vec3 up;
    	glm::vec3 right;
    
    	void update_model_matrix();
    	void update_directional_vector();
    
    public:
    	Transform();