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 00013 class X3DMaterialNode; 00014 class X3DTextureNode; 00015 class X3DTextureTransformNode; 00016 class LineProperties; 00017 class FillProperties; 00018 00023 00024 class Appearance : public X3DAppearanceNode 00025 { 00026 public: 00028 Appearance(); 00030 Appearance(const X3DMaterialNode *material, 00031 const X3DTextureNode *texture, 00032 const X3DTextureTransformNode *textureTransform, 00033 const LineProperties *lineProperties, 00034 const FillProperties *fillProperties); 00036 virtual SFNode clone() const; 00038 ~Appearance(); 00039 00041 void setMaterial(const X3DMaterialNode *material); 00043 void setTexture(const X3DTextureNode *texture); 00045 void setTextureTransform(const X3DTextureTransformNode *textureTransform); 00047 void setLineProperties(const LineProperties *lineProperties); 00049 void setFillProperties(const FillProperties *fillProperties); 00050 00052 inline SFNode getMaterial() const {return material_;}; 00054 inline SFNode getTexture() const {return texture_;}; 00056 inline SFNode getTextureTransform() const {return textureTransform_;}; 00058 inline SFNode getLineProperties() const {return lineProperties_;}; 00060 inline SFNode getFillProperties() const {return fillProperties_;}; 00061 00064 bool addChild(const SFNode &N); 00067 bool setChild(const SFNode &N); 00069 bool removeChild(const SFNode &N); 00070 00071 protected: 00073 Appearance(const Appearance &A); 00074 00076 virtual void removeScenesToChildren(const MFScene &sceneList); 00078 virtual void addScenesToChildren(const MFScene &sceneList); 00079 00080 private: 00081 SFNode material_; 00082 SFNode texture_; 00083 SFNode textureTransform_; 00084 SFNode lineProperties_; 00085 SFNode fillProperties_; 00086 }; 00087 00088 } 00089 00090 #endif