#ifndef MODEL_H
#define MODEL_H

// WIN32 SETTINGS
#ifdef _WIN32
#pragma comment (linker, "/ENTRY:mainCRTStartup")
#pragma comment (linker, "/SUBSYSTEM:WINDOWS")
#ifdef _DEBUG
#pragma comment (linker, "/NODEFAULTLIB:msvcrt.lib")
#endif // DEBUG
#pragma comment(lib, "SDL.lib")
#pragma comment(lib, "SDLmain.lib")
#pragma comment(lib, "SDL_Image.lib")
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")
#include <windows.h>
#endif // WIN32

// STL, SDL, & GL INCLUDES
#include <SDL.h>
#include <SDL_Image.h>
#include <GL/gl.h>
#include <GL/glu.h>
// LIBRARY INCLUDES
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
// PROGRAM INCLUDES
#include "mesh.h"
#include "material.h"
// HEADER DEFINES
#define MODEL_NOT_FOUND		2265
#define MODEL_PARSE_ERROR	2266

class model 
{
	public: 
		model();
		~model();
		int load(std::string);	// Load in file from path
		void render(int);	// Only render a mesh number
		void render(int, int, int);		// Render entire model

		int meshCount;
		int materialCount;

	private:
		GLuint loadJPEG(std::string);

		mesh *meshes;
		material *materials;
};

#endif // MODEL_H
