00001 00002 // GL_X3DShapeNode.h // 00004 00005 #ifndef X3DGLSHAPENODE_H 00006 #define X3DGLSHAPENODE_H 00007 00008 #include "GL_X3DChildNode.h" 00009 00010 namespace X3DTK { 00011 namespace GL { 00012 00013 class X3DGeometryNode; 00014 class X3DAppearanceNode; 00015 00017 00018 class X3DShapeNode : public X3DChildNode 00019 { 00020 public: 00022 X3DShapeNode(); 00024 virtual ~X3DShapeNode(); 00025 00027 void setGeometry(X3DGeometryNode *geometry); 00029 void setAppearance(X3DAppearanceNode *appearance); 00030 00032 inline SFNode getGeometry() const {return _geometry;}; 00034 inline SFNode getAppearance() const {return _appearance;}; 00035 00037 virtual MFAbstractNode getChildrenList() const; 00038 00041 virtual bool addChild(const SFAbstractNode &N); 00044 virtual bool setChild(const SFAbstractNode &N); 00046 virtual bool removeChild(const SFAbstractNode &N); 00047 00048 protected: 00050 X3DShapeNode(const X3DShapeNode &N); 00051 00052 private: 00054 SFNode _geometry; 00056 SFNode _appearance; 00057 }; 00058 00059 } 00060 } 00061 00062 #endif