#pragma once
#include "ogl.hpp"
#include "common.hpp"


class Mesh {
    private:
        GLfloat off_x, off_y;
        GLfloat len_x, len_y;

    public:
        const unsigned h, w;

        size_t vertices_len;
        unsigned vertices_num;
        GLfloat* vertices;
        size_t elements_len;
        GLuint* elements;

        Mesh(const Window*, unsigned h);
        ~Mesh();

        void draw(unsigned, unsigned, unsigned=1) const;

        unsigned iso2tile_x(GLfloat) const;
        unsigned iso2tile_y(GLfloat) const;
        GLfloat tile2iso_x(unsigned, bool mid=false) const;
        GLfloat tile2iso_y(unsigned, bool mid=false) const;
};