// // Vrml 97 library // Copyright (C) 1998 Chris Morley // // %W% %G% // #ifndef _VRMLNODEAPPEARANCE_ #define _VRMLNODEAPPEARANCE_ #include "VrmlNodeChild.h" #include "VrmlSFNode.h" class VrmlNodeType; class VrmlScene; class VrmlNodeAppearance : public VrmlNodeChild { public: // Define the built in VrmlNodeType:: "Appearance" static VrmlNodeType *defineType(VrmlNodeType *t = 0); virtual VrmlNodeType *nodeType() const; VrmlNodeAppearance(VrmlScene *); virtual ~VrmlNodeAppearance(); // Copy the node. virtual VrmlNode *cloneMe() const; virtual void cloneChildren( VrmlNamespace* ); virtual VrmlNodeAppearance* toAppearance() const; virtual bool isModified() const; virtual void clearFlags(); // Clear childrens flags too. virtual void addToScene( VrmlScene *s, const char *relativeUrl ); virtual void copyRoutes(VrmlNamespace *ns) const; virtual ostream& printFields(ostream& os, int indent); virtual void render(Viewer *); virtual void setField(const char *fieldName, const VrmlField &fieldValue); VrmlNode *material() { return (VrmlNode *) d_material.get(); } VrmlNode *texture() { return (VrmlNode *) d_texture.get(); } VrmlNode *textureTransform() { return (VrmlNode *) d_textureTransform.get(); } protected: VrmlSFNode d_material; VrmlSFNode d_texture; VrmlSFNode d_textureTransform; }; #endif // _VRMLNODEAPPEARANCE_