00001 #ifndef X3DTK_GL_MATERIAL_H 00002 #define X3DTK_GL_MATERIAL_H 00003 00004 #include "GL_X3DMaterialNode.h" 00005 00006 #include <vector> 00007 00008 namespace X3DTK { 00009 namespace GL { 00010 00017 class Material : public X3DMaterialNode 00018 { 00019 public: 00021 Material(); 00023 virtual ~Material(); 00024 00026 void setDiffuseColor(const MFFloat &diffuseColor); 00028 void setAmbientColor(const MFFloat &ambientColor); 00030 void setEmissiveColor(const MFFloat &emissiveColor); 00032 void setShininess(const SFFloat &shininess); 00034 void setSpecularColor(const MFFloat &specularColor); 00035 00037 inline const MFFloat &getDiffuseColor() const {return _diffuseColor;}; 00039 inline const MFFloat &getAmbientColor() const {return _ambientColor;}; 00041 inline const MFFloat &getEmissiveColor() const {return _emissiveColor;}; 00043 inline const SFFloat &getShininess() const {return _shininess;}; 00045 inline const MFFloat &getSpecularColor() const {return _specularColor;}; 00046 00048 virtual void update(); 00049 00050 private: 00052 MFFloat _diffuseColor; 00054 MFFloat _ambientColor; 00056 MFFloat _emissiveColor; 00058 SFFloat _shininess; 00060 MFFloat _specularColor; 00061 }; 00062 00063 } 00064 } 00065 00066 #endif