00001 00002 // GL_Appearance.h // 00004 00005 #ifndef GLAPPEARANCE_H 00006 #define GLAPPEARANCE_H 00007 00008 #include "GL_X3DAppearanceNode.h" 00009 00010 namespace X3DTK { 00011 namespace GL { 00012 00013 class X3DMaterialNode; 00014 class X3DTextureNode; 00015 class X3DTextureTransformNode; 00016 class LineProperties; 00017 class FillProperties; 00018 00021 00022 class Appearance : public X3DAppearanceNode 00023 { 00024 public: 00026 Appearance(); 00028 virtual SFNode clone() const; 00030 virtual ~Appearance(); 00031 00033 void setMaterial(X3DMaterialNode *material); 00035 void setTexture(X3DTextureNode *texture); 00037 void setTextureTransform(X3DTextureTransformNode *textureTransform); 00039 void setLineProperties(LineProperties *lineProperties); 00041 void setFillProperties(FillProperties *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 00055 virtual MFAbstractNode getChildrenList() const; 00056 00059 virtual bool addChild(const SFAbstractNode &N); 00062 virtual bool setChild(const SFAbstractNode &N); 00064 virtual bool removeChild(const SFAbstractNode &N); 00065 00066 protected: 00068 Appearance(const Appearance &A); 00069 00070 private: 00072 SFNode _material; 00074 SFNode _texture; 00076 SFNode _textureTransform; 00078 SFNode _lineProperties; 00080 SFNode _fillProperties; 00081 }; 00082 00083 } 00084 } 00085 00086 #endif