00001 00002 00003 00005 00006 00011 00016 00021 // GLAppearance.h // 00023 00024 #ifndef GLAPPEARANCE_H 00025 #define GLAPPEARANCE_H 00026 00027 #include "X3DGLAppearanceNode.h" 00028 00029 namespace X3DTK { 00030 namespace GL { 00031 00032 class X3DMaterialNode; 00033 class X3DTextureNode; 00034 class X3DTextureTransformNode; 00035 class LineProperties; 00036 class FillProperties; 00037 00040 00041 class Appearance : public X3DAppearanceNode 00042 { 00043 public: 00045 Appearance(); 00047 virtual SFNode clone() const; 00049 virtual ~Appearance(); 00050 00052 void setMaterial(const X3DMaterialNode *material); 00054 void setTexture(const X3DTextureNode *texture); 00056 void setTextureTransform(const X3DTextureTransformNode *textureTransform); 00058 void setLineProperties(const LineProperties *lineProperties); 00060 void setFillProperties(const FillProperties *fillProperties); 00061 00063 inline SFNode getMaterial() {return _material;}; 00065 inline SFNode getTexture() {return _texture;}; 00067 inline SFNode getTextureTransform() {return _textureTransform;}; 00069 inline SFNode getLineProperties() {return _lineProperties;}; 00071 inline SFNode getFillProperties() {return _fillProperties;}; 00072 00075 virtual bool addChild(const SFAbstractNode &N); 00078 virtual bool setChild(const SFAbstractNode &N); 00080 virtual bool removeChild(const SFAbstractNode &N); 00081 00082 protected: 00084 Appearance(const Appearance &A); 00085 00086 private: 00088 SFNode _material; 00090 SFNode _texture; 00092 SFNode _textureTransform; 00094 SFNode _lineProperties; 00096 SFNode _fillProperties; 00097 }; 00098 00099 } 00100 } 00101 00102 #endif