00001 00002 00003 00005 00006 00011 00016 00022 00024 00025 00030 00035 00040 // Appearance.h // 00042 00043 #ifndef APPEARANCE_H 00044 #define APPEARANCE_H 00045 00046 #include "X3DTypes.h" 00047 #include "X3DAppearanceNode.h" 00048 00049 namespace X3DTK { 00050 namespace X3D { 00051 00052 class X3DMaterialNode; 00053 class X3DTextureNode; 00054 class X3DTextureTransformNode; 00055 class LineProperties; 00056 class FillProperties; 00057 00062 00063 class Appearance : public X3DAppearanceNode 00064 { 00065 public: 00067 Appearance(); 00069 Appearance(const X3DMaterialNode *material, 00070 const X3DTextureNode *texture, 00071 const X3DTextureTransformNode *textureTransform, 00072 const LineProperties *lineProperties, 00073 const FillProperties *fillProperties); 00075 virtual SFNode clone() const; 00077 virtual ~Appearance(); 00078 00080 void setMaterial(const X3DMaterialNode *material); 00082 void setTexture(const X3DTextureNode *texture); 00084 void setTextureTransform(const X3DTextureTransformNode *textureTransform); 00086 void setLineProperties(const LineProperties *lineProperties); 00088 void setFillProperties(const FillProperties *fillProperties); 00089 00091 inline SFNode getMaterial() const {return _material;}; 00093 inline SFNode getTexture() const {return _texture;}; 00095 inline SFNode getTextureTransform() const {return _textureTransform;}; 00097 inline SFNode getLineProperties() const {return _lineProperties;}; 00099 inline SFNode getFillProperties() const {return _fillProperties;}; 00100 00103 virtual bool addChild(const SFAbstractNode &N); 00106 virtual bool setChild(const SFAbstractNode &N); 00108 virtual bool removeChild(const SFAbstractNode &N); 00109 00110 protected: 00112 Appearance(const Appearance &A); 00113 00114 private: 00116 SFNode _material; 00118 SFNode _texture; 00120 SFNode _textureTransform; 00122 SFNode _lineProperties; 00124 SFNode _fillProperties; 00125 }; 00126 00127 } 00128 } 00129 00130 #endif