gKitGL
|
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 kd; //!< diffus. 00016 float ks; //!< reflechissant. 00017 float n; //!< puissance du reflet. 00018 float ni; //!< indice de refraction. 00019 00020 Energy diffuse; //!< couleur diffuse. 00021 Energy specular; //!< couleur du reflet. 00022 Energy transmission; //!< couleur du 'reflet' refracte. 00023 Energy emission; //!< flux emis par la surface, en watt. 00024 00025 std::string diffuse_texture; //!< nom de la texture. 00026 std::string specular_texture; //!< nom de la texture. 00027 std::string name; //!< nom de la matiere. 00028 00029 //! construction d'une matiere nommee. 00030 MeshMaterial( const std::string& _name ) 00031 : 00032 kd(.5f), 00033 ks(0.f), n(0.f), 00034 ni(0.f), 00035 diffuse(1.f, 1.f, 1.f), 00036 specular(0.f, 0.f, 0.f), 00037 transmission(), 00038 emission(), 00039 diffuse_texture(), 00040 specular_texture(), 00041 name(_name) 00042 {} 00043 00044 //! destructeur. 00045 ~MeshMaterial( ) {} 00046 }; 00047 00048 } // namespace 00049 00050 #endif 00051