gKitGL
MeshMaterial.h
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 
 All Classes Namespaces Functions Variables Typedefs Enumerator Friends