00001 #ifndef X3DTK_X3D_APPEARANCE_H 00002 #define X3DTK_X3D_APPEARANCE_H 00003 00004 #include "X3DTypes.h" 00005 #include "X3D_X3DAppearanceNode.h" 00006 00007 namespace X3DTK { 00008 namespace X3D { 00009 00010 class X3DMaterialNode; 00011 class X3DTextureNode; 00012 class X3DTextureTransformNode; 00013 class LineProperties; 00014 class FillProperties; 00015 00023 class Appearance : public X3DAppearanceNode 00024 { 00025 public: 00027 Appearance(); 00029 Appearance(X3DMaterialNode *material, 00030 X3DTextureNode *texture, 00031 X3DTextureTransformNode *textureTransform, 00032 LineProperties *lineProperties, 00033 FillProperties *fillProperties); 00035 virtual SFAbstractNode clone() const; 00037 virtual ~Appearance(); 00038 00040 void setMaterial(X3DMaterialNode *material); 00042 void setTexture(X3DTextureNode *texture); 00044 void setTextureTransform(X3DTextureTransformNode *textureTransform); 00046 void setLineProperties(LineProperties *lineProperties); 00048 void setFillProperties(FillProperties *fillProperties); 00049 00051 inline SFNode getMaterial() const {return _material;}; 00053 inline SFNode getTexture() const {return _texture;}; 00055 inline SFNode getTextureTransform() const {return _textureTransform;}; 00057 inline SFNode getLineProperties() const {return _lineProperties;}; 00059 inline SFNode getFillProperties() const {return _fillProperties;}; 00060 00062 virtual MFAbstractNode getChildList() const; 00063 00066 virtual bool addChild(const SFAbstractNode &N); 00069 virtual bool setChild(const SFAbstractNode &N); 00071 virtual bool removeChild(const SFAbstractNode &N); 00072 00073 protected: 00075 Appearance(const Appearance &A); 00076 00077 private: 00079 SFNode _material; 00081 SFNode _texture; 00083 SFNode _textureTransform; 00085 SFNode _lineProperties; 00087 SFNode _fillProperties; 00088 }; 00089 00090 } 00091 } 00092 00093 #endif