00001 #ifndef X3DTK_GL_APPEARANCE_H 00002 #define X3DTK_GL_APPEARANCE_H 00003 00004 #include "GL_X3DAppearanceNode.h" 00005 00006 namespace X3DTK { 00007 namespace GL { 00008 00009 class X3DMaterialNode; 00010 class X3DTextureNode; 00011 class X3DTextureTransformNode; 00012 class LineProperties; 00013 class FillProperties; 00014 00021 class Appearance : public X3DAppearanceNode 00022 { 00023 public: 00025 Appearance(); 00027 virtual SFAbstractNode clone() const; 00029 virtual ~Appearance(); 00030 00032 void setMaterial(X3DMaterialNode *material); 00034 void setTexture(X3DTextureNode *texture); 00036 void setTextureTransform(X3DTextureTransformNode *textureTransform); 00038 void setLineProperties(LineProperties *lineProperties); 00040 void setFillProperties(FillProperties *fillProperties); 00041 00043 inline SFNode getMaterial() {return _material;}; 00045 inline SFNode getTexture() {return _texture;}; 00047 inline SFNode getTextureTransform() {return _textureTransform;}; 00049 inline SFNode getLineProperties() {return _lineProperties;}; 00051 inline SFNode getFillProperties() {return _fillProperties;}; 00052 00054 virtual MFAbstractNode getChildList() const; 00055 00058 virtual bool addChild(const SFAbstractNode &N); 00061 virtual bool setChild(const SFAbstractNode &N); 00063 virtual bool removeChild(const SFAbstractNode &N); 00064 00065 protected: 00067 Appearance(const Appearance &A); 00068 00069 private: 00071 SFNode _material; 00073 SFNode _texture; 00075 SFNode _textureTransform; 00077 SFNode _lineProperties; 00079 SFNode _fillProperties; 00080 }; 00081 00082 } 00083 } 00084 00085 #endif