00001 00002 00003 00005 00006 00011 00016 00022 00024 00025 00030 00035 00040 // X3DShapeNode.h // 00042 00043 #ifndef X3DSHAPENODE_H 00044 #define X3DSHAPENODE_H 00045 00046 #include "X3DTypes.h" 00047 #include "X3DChildNode.h" 00048 00049 namespace X3DTK { 00050 namespace X3D { 00051 00052 class X3DGeometryNode; 00053 class X3DAppearanceNode; 00054 00059 00060 class X3DShapeNode : public X3DChildNode 00061 { 00062 public: 00064 X3DShapeNode(); 00066 X3DShapeNode(const X3DGeometryNode *geometry, 00067 const X3DAppearanceNode *appearance); 00069 virtual SFNode clone() const; 00071 virtual ~X3DShapeNode(); 00072 00074 void setGeometry(const X3DGeometryNode *geometry); 00076 void setAppearance(const X3DAppearanceNode *appearance); 00077 00079 inline SFNode getGeometry() const {return _geometry;}; 00081 inline SFNode getAppearance() const {return _appearance;}; 00082 00085 virtual bool addChild(const SFAbstractNode &N); 00088 virtual bool setChild(const SFAbstractNode &N); 00090 virtual bool removeChild(const SFAbstractNode &N); 00091 00092 protected: 00094 X3DShapeNode(const X3DShapeNode &N); 00095 00096 private: 00097 SFNode _geometry; 00098 SFNode _appearance; 00099 }; 00100 00101 } 00102 } 00103 00104 #endif