
#ifndef TBASSIN_H_INCLUDED
#define TBASSIN_H_INCLUDED

/*
OBJET       bassin avec effet de pluie sur l'eau

DATE        04/2025

AUTEUR      philippe Thebaud

COMMENTAIRE
*/

#include <GL/glew.h>
#include <string>
#include <vector>

#include "../ECO/OUtils.h"
#include "../ECO/OTexturelist.h"
#include "../ECO/defered/ODshGeo.h"
#include "../ECO/OMesh_obj.h"

#include "common.h"

#include "Tsh_rain.h"


class Tbassin
{
public:
	Tbassin();
	~Tbassin();

	void        addEau(std::string flux);

    void        create(std::string flux);

    void        draw(ODshGeo& dshGeo);
    void        draw_water(const OMat4& vp, float ambient);

private:

    void        _composition();

    void        _setModel();

private:

    std::string m_code, m_path, m_file;
    bool        m_cull_face;

    OMesh_obj  mesh_bassin;
    OMesh_obj  mesh_eau;
    Tsh_rain    sh_rain;
    float       m_time;
    bool        m_eau_exist;

    OMat4       m_model;
	OVec3_f     m_pos;
    OVec3_f     m_rot;
    //Ovec3_f     m_scale;
};



#endif
