// // Vrml 97 library // Copyright (C) 1998 Chris Morley // // %W% %G% // VrmlNodeMaterial.h #ifndef _VRMLNODEMATERIAL_ #define _VRMLNODEMATERIAL_ #include "VrmlNode.h" #include "VrmlSFColor.h" #include "VrmlSFFloat.h" class VrmlNodeMaterial : public VrmlNode { public: // Define the fields of Material nodes static VrmlNodeType *defineType(VrmlNodeType *t = 0); virtual VrmlNodeType *nodeType() const; VrmlNodeMaterial(VrmlScene *); virtual ~VrmlNodeMaterial(); virtual VrmlNode *cloneMe() const; virtual VrmlNodeMaterial* toMaterial() const; virtual ostream& printFields(ostream& os, int indent); virtual void render(Viewer *); virtual void setField(const char *fieldName, const VrmlField &fieldValue); float ambientIntensity() { return d_ambientIntensity.get(); } float* diffuseColor() { return d_diffuseColor.get(); } float* emissiveColor() { return d_emissiveColor.get(); } float shininess() { return d_shininess.get(); } float* specularColor() { return d_specularColor.get(); } float transparency() { return d_transparency.get(); } private: VrmlSFFloat d_ambientIntensity; VrmlSFColor d_diffuseColor; VrmlSFColor d_emissiveColor; VrmlSFFloat d_shininess; VrmlSFColor d_specularColor; VrmlSFFloat d_transparency; }; #endif // _VRMLNODEMATERIAL_