00001 00020 #ifndef MATERIAL_H_ 00021 #define MATERIAL_H_ 00022 00023 #include "Node.hh" 00024 #include "SFColor.hh" 00025 00026 namespace vrml1 00027 { 00028 00029 class Material : public vrml1::Node 00030 { 00031 public: 00032 Material(); 00033 virtual ~Material(); 00034 00035 void setAmbientColor(vector<SFColor> aColor); 00036 vector<SFColor> ambientColor() const; 00037 bool ambientColorExist() const; 00038 00039 void setDiffuseColor(vector<SFColor> dColor); 00040 vector<SFColor> diffuseColor() const; 00041 bool diffuseColorExist() const; 00042 00043 void setSpecularColor(vector<SFColor> sColor); 00044 vector<SFColor> specularColor() const; 00045 bool specularColorExist() const; 00046 00047 void setEmissiveColor(vector<SFColor> eColor); 00048 vector<SFColor> emissiveColor() const; 00049 bool emissiveColorExist() const; 00050 00051 void setShininess(vector<float> shininess); 00052 vector<float> shininess() const; 00053 bool shininessExist() const; 00054 00055 void setTransparency(vector<float> transparency); 00056 vector<float> transparency() const; 00057 bool transparencyExist() const; 00058 00059 virtual void setAttribute(Attribute *A); 00060 00061 private: 00062 vector<SFColor> m_ambientColor; 00063 vector<SFColor> m_diffuseColor; 00064 vector<SFColor> m_specularColor; 00065 vector<SFColor> m_emissiveColor; 00066 vector<float> m_shininess; 00067 vector<float> m_transparency; 00068 }; 00069 00070 } 00071 00072 #endif /*MATERIAL_H_*/