00001 00002 00003 00005 00006 00011 00016 00021 // Appearance.h // 00023 00024 #ifndef APPEARANCE_H 00025 #define APPEARANCE_H 00026 00027 #include "X3DTypes.h" 00028 #include "X3DAppearanceNode.h" 00029 00030 namespace X3DTK { 00031 namespace X3D { 00032 00033 class X3DMaterialNode; 00034 class X3DTextureNode; 00035 class X3DTextureTransformNode; 00036 class LineProperties; 00037 class FillProperties; 00038 00043 00044 class Appearance : public X3DAppearanceNode 00045 { 00046 public: 00048 Appearance(); 00050 Appearance(const X3DMaterialNode *material, 00051 const X3DTextureNode *texture, 00052 const X3DTextureTransformNode *textureTransform, 00053 const LineProperties *lineProperties, 00054 const FillProperties *fillProperties); 00056 virtual SFNode clone() const; 00058 virtual ~Appearance(); 00059 00061 void setMaterial(const X3DMaterialNode *material); 00063 void setTexture(const X3DTextureNode *texture); 00065 void setTextureTransform(const X3DTextureTransformNode *textureTransform); 00067 void setLineProperties(const LineProperties *lineProperties); 00069 void setFillProperties(const FillProperties *fillProperties); 00070 00072 inline SFNode getMaterial() const {return _material;}; 00074 inline SFNode getTexture() const {return _texture;}; 00076 inline SFNode getTextureTransform() const {return _textureTransform;}; 00078 inline SFNode getLineProperties() const {return _lineProperties;}; 00080 inline SFNode getFillProperties() const {return _fillProperties;}; 00081 00084 virtual bool addChild(const SFAbstractNode &N); 00087 virtual bool setChild(const SFAbstractNode &N); 00089 virtual bool removeChild(const SFAbstractNode &N); 00090 00091 protected: 00093 Appearance(const Appearance &A); 00094 00095 private: 00097 SFNode _material; 00099 SFNode _texture; 00101 SFNode _textureTransform; 00103 SFNode _lineProperties; 00105 SFNode _fillProperties; 00106 }; 00107 00108 } 00109 } 00110 00111 #endif