//
// Created by sebastian on 08.02.26.
//

#ifndef TERRAINSHADER_H
#define TERRAINSHADER_H
#include "ShaderProgram.h"


class TerrainShader : public ShaderProgram {
public:
    TerrainShader();
    void loadTransformationMatrix(glm::mat4 matrix);
    void loadProjectionMatrix(glm::mat4 matrix);
    void loadViewMatrix(glm::mat4 matrix);
    void loadLight(glm::vec3 position, glm::vec3 color);
    void loadIsHighlighted(bool isHighlighted);
private:
    inline static const std::string VERTEX_FILE = "assets/shaders/terrainVertexShader.glsl";
    inline static const std::string FRAGMENT_FILE = "assets/shaders/terrainFragmentShader.glsl";

    int location_transformationMatrix;
    int location_projectionMatrix;
    int location_viewMatrix;
    int location_lightPosition;
    int location_lightColor;

    int location_isHighlighted;

protected:
    void bindAttributes() const override;
    void getAllUniformLocations() override;
};



#endif //TERRAINSHADER_H
