00001 00002 // Appearance.h // 00004 00005 #ifndef APPEARANCE_H 00006 #define APPEARANCE_H 00007 00008 #include "X3DTypes.h" 00009 #include "X3DAppearanceNode.h" 00010 00011 namespace X3DTK { 00012 namespace X3D { 00013 00014 class X3DMaterialNode; 00015 class X3DTextureNode; 00016 class X3DTextureTransformNode; 00017 class LineProperties; 00018 class FillProperties; 00019 00024 00025 class Appearance : public X3DAppearanceNode 00026 { 00027 public: 00029 Appearance(); 00031 Appearance(const X3DMaterialNode *material, 00032 const X3DTextureNode *texture, 00033 const X3DTextureTransformNode *textureTransform, 00034 const LineProperties *lineProperties, 00035 const FillProperties *fillProperties); 00037 virtual SFNode clone() const; 00039 virtual ~Appearance(); 00040 00042 void setMaterial(const X3DMaterialNode *material); 00044 void setTexture(const X3DTextureNode *texture); 00046 void setTextureTransform(const X3DTextureTransformNode *textureTransform); 00048 void setLineProperties(const LineProperties *lineProperties); 00050 void setFillProperties(const FillProperties *fillProperties); 00051 00053 inline SFNode getMaterial() const {return _material;}; 00055 inline SFNode getTexture() const {return _texture;}; 00057 inline SFNode getTextureTransform() const {return _textureTransform;}; 00059 inline SFNode getLineProperties() const {return _lineProperties;}; 00061 inline SFNode getFillProperties() const {return _fillProperties;}; 00062 00065 bool addChild(const SFAbstractNode &N); 00068 bool setChild(const SFAbstractNode &N); 00070 bool removeChild(const SFAbstractNode &N); 00071 00072 protected: 00074 Appearance(const Appearance &A); 00075 00076 private: 00078 SFNode _material; 00080 SFNode _texture; 00082 SFNode _textureTransform; 00084 SFNode _lineProperties; 00086 SFNode _fillProperties; 00087 }; 00088 00089 } 00090 } 00091 00092 #endif