Skip to content
Snippets Groups Projects
Select Git revision
  • 99a6e8f58b9b1e3adfeefdce30fbd660c3a5cfe8
  • master default
2 results

main.c

Blame
  • Forked from HyukSang Kwon / 1801_OS_assignment4
    Source project has a limited visibility.
    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();