00001 00002 #ifndef _MESH_MATERIAL_H 00003 #define _MESH_MATERIAL_H 00004 00005 #include <string> 00006 00007 #include "IOResource.h" 00008 #include "Geometry.h" 00009 00010 namespace gk { 00011 00012 //! representation d'une matiere. 00013 struct MeshMaterial : public IOResource 00014 { 00015 float m_kd; //!< diffus 00016 float m_kg; //!< reflechissant 00017 float m_kg_m; //!< puissance du reflet 00018 float m_ks; //!< speculaire / miroir 00019 float m_ni; //!< indice de refraction 00020 00021 Energy m_diffuse; //!< couleur diffuse 00022 Energy m_specular; //!< couleur du reflet 00023 Energy m_transmission; //!< couleur du 'relfet' refracte 00024 00025 std::string m_diffuse_texture; //!< nom de la texture. 00026 std::string m_glossy_texture; //!< nom de la texture. 00027 std::string m_name; //!< nom de la matiere. 00028 00029 //! construction d'une matiere nommee. 00030 MeshMaterial( const std::string& name ) 00031 : 00032 m_kd(.5f), 00033 m_kg(0.f), m_kg_m(1.f), m_ks(0.f), m_ni(1.f), 00034 m_diffuse(1.f, 1.f, 1.f), 00035 m_name(name) 00036 {} 00037 00038 //! destructeur. 00039 ~MeshMaterial( ) {} 00040 }; 00041 00042 } // namespace 00043 00044 #endif 00045