#ifndef MODELE3D_H
#define MODELE3D_H

// Macro utile au VBO
#ifndef BUFFER_OFFSET

    #define BUFFER_OFFSET(offset) ((char*)NULL + (offset))

#endif

#include <iostream>
#include <vector>
#include <fstream>

#include "../Shader.h"
#include "../Texture.h"


// Includes GLM
#include <glm/glm.hpp>
#include <glm/gtx/transform.hpp>
#include <glm/gtc/type_ptr.hpp>

class Modele3D
{
    public:
        Modele3D();
        virtual ~Modele3D();

        void afficher(glm::mat4 pmv, glm::mat4 m, Shader* const shad);

    protected:

        GLuint m_textID;
        GLuint m_nbVec;
        float *m_vertices; // Tableau
        float *m_coordTexture; // Tableau
        float *m_normales; // Tableau

        GLuint m_vboID;
        int m_tailleVerticesBytes;
        int m_tailleCoordTextureBytes;
        int m_tailleNormalesBytes;
        GLuint m_vaoID;
};

#endif // MODELE3D_H
