00001 00002 // GLAppearance.h // 00004 00005 #ifndef GLAPPEARANCE_H 00006 #define GLAPPEARANCE_H 00007 00008 #include "X3DGLAppearanceNode.h" 00009 00010 namespace X3DTK { 00011 00012 class GLMaterial; 00013 class X3DGLTextureNode; 00014 class X3DGLTextureTransformNode; 00015 class GLLineProperties; 00016 class GLFillProperties; 00017 00018 00021 00022 class GLAppearance : public X3DGLAppearanceNode 00023 { 00024 public: 00026 GLAppearance(); 00028 virtual SFNode clone() const; 00030 ~GLAppearance(); 00031 00033 void setMaterial(const GLMaterial *material); 00035 void setTexture(const X3DGLTextureNode *texture); 00037 void setTextureTransform(const X3DGLTextureTransformNode *textureTransform); 00039 void setLineProperties(const GLLineProperties *lineProperties); 00041 void setFillProperties(const GLFillProperties *fillProperties); 00042 00044 inline SFNode getMaterial() {return _material;}; 00046 inline SFNode getTexture() {return _texture;}; 00048 inline SFNode getTextureTransform() {return _textureTransform;}; 00050 inline SFNode getLineProperties() {return _lineProperties;}; 00052 inline SFNode getFillProperties() {return _fillProperties;}; 00053 00056 virtual bool addChild(const SFNode &N); 00059 virtual bool setChild(const SFNode &N); 00061 virtual bool removeChild(const SFNode &N); 00062 00063 protected: 00065 GLAppearance(const GLAppearance &A); 00066 00067 private: 00068 SFNode _material; 00069 SFNode _texture; 00070 SFNode _textureTransform; 00071 SFNode _lineProperties; 00072 SFNode _fillProperties; 00073 }; 00074 00075 } 00076 00077 #endif