00001 #ifndef X3DTK_GL_X3DSHAPENODE_H 00002 #define X3DTK_GL_X3DSHAPENODE_H 00003 00004 #include "GL_X3DChildNode.h" 00005 00006 namespace X3DTK { 00007 namespace GL { 00008 00009 class X3DGeometryNode; 00010 class X3DAppearanceNode; 00011 00017 class X3DShapeNode : public X3DChildNode 00018 { 00019 public: 00021 X3DShapeNode(); 00023 virtual ~X3DShapeNode(); 00024 00026 void setGeometry(X3DGeometryNode *geometry); 00028 void setAppearance(X3DAppearanceNode *appearance); 00029 00031 inline SFNode getGeometry() const {return _geometry;}; 00033 inline SFNode getAppearance() const {return _appearance;}; 00034 00036 virtual MFAbstractNode getChildList() const; 00037 00040 virtual bool addChild(const SFAbstractNode &N); 00043 virtual bool setChild(const SFAbstractNode &N); 00045 virtual bool removeChild(const SFAbstractNode &N); 00046 00047 protected: 00049 X3DShapeNode(const X3DShapeNode &N); 00050 00051 private: 00053 SFNode _geometry; 00055 SFNode _appearance; 00056 }; 00057 00058 } 00059 } 00060 00061 #endif