//* Módulo : material.hpp // // _Desc_ : Declara classe Material. // _Autor_: Rodrigo P. R. de Toledo #ifndef __MATERIAL_HPP #define __MATERIAL_HPP #include "varios.hpp" //* classe Material #Material# // Material também poderia ser chamado de textura. // Nesta implementação do RayTrace não há refração, portanto as variáveis // indice_refracao e indice_opacidade não foram disponibilizadas // nas funções inline. class Material{ private: Cor_rgb cor_ambiente, coeficiente_difuso, coeficiente_especular; int indice_especular; float indice_reflexao, indice_refracao, indice_opacidade; public: //* Construtor e Destrutor Material(Cor_rgb _cor_ambiente,Cor_rgb _coef_difuso, Cor_rgb _coef_especular, int _n_especular, float _indice_reflexao, float _indice_refracao, float _indice_opacidade ); virtual ~Material() {}; //* Funções inline que retornam informações do Material inline Cor_rgb Ambiente() {return cor_ambiente;}; inline Cor_rgb Cor_difusa() {return coeficiente_difuso;}; inline Cor_rgb Coeficiente_especular() {return coeficiente_especular;}; inline int Indice_especular() {return indice_especular;}; inline float Indice_reflexao() {return indice_reflexao;}; }; #endif