#pragma once
#include <windows.h>
#include "GL/glew.h"
#include <gl/gl.h>
#include <gl/glu.h>
#include <vector>
#include <iostream>
#include "timeh.hpp"
#include "GL/glm/glm.hpp"
#include "loadOBJ.h"
#include "texture.hpp"
#include "shader.hpp"

class lazik {
	private:
		float c_x{0};
		float c_y{0};
		float c_z{0};
		float rot_x{0};
		float rot_y{0};
		float rot_z{0};
		std::vector <glm::vec3> vertices;
		std::vector <glm::vec2> uvs;
		std::vector <glm::vec3> normals; // Won't be used at the moment.
		GLuint vertexbuffer;
		GLuint uvbuffer;
		const char* modelpath;
		//GLuint programID;
		//GLuint Texture;
		//GLuint TextureID;
		//const char* texturepath;
	public:
		// lazik(float x, float y, float z, const char* modelpath, const char* texturepath);
		lazik(float x, float y, float z, const char* modelpath);
		//void passProgramID(GLuint programID);
		void loadModel();
		void draw();
		void unload();
		void moveX(float x);
		void moveY(float y);
		void moveZ(float z);
		void moveXYZ(float x, float y, float z);
};