#ifndef SMATERIAL_HPP
#define SMATERIAL_HPP

#include "../Shader/CShader.hpp"
#include "../Texture/CAbstractTexture.hpp"
#include "SColor.hpp"

#include <vector>

/**
 * @file SMaterial.hpp
 * @brief File for the material struct.
 */

/**
 * @brief The struct material.
 */
typedef struct SMaterial {
	/**
	 * @brief List of textures for the material.
	 */
	std::vector<CAbstractTexture*> m_textures;

	/**
	 * @brief List of colors for the material.
	 */
	std::vector<SColor> m_colors;

	/**
	 * @brief The shader used to render.
	 */
	CShader* m_shader = nullptr;

	~SMaterial() { for (unsigned int i = 0; i < m_textures.size(); ++i) { 
		delete m_textures[i]; 
	} };
} SMaterial;

#endif