00001 00002 // X3DGLShapeNode.h // 00004 00005 #ifndef X3DGLSHAPENODE_H 00006 #define X3DGLSHAPENODE_H 00007 00008 #include "X3DGLChildNode.h" 00009 00010 namespace X3DTK { 00011 00012 class X3DGLGeometryNode; 00013 class X3DGLAppearanceNode; 00014 00016 00017 class X3DGLShapeNode : public X3DGLChildNode 00018 { 00019 public: 00021 X3DGLShapeNode(); 00023 virtual SFNode clone() const; 00025 virtual ~X3DGLShapeNode(); 00026 00028 void setGeometry(const X3DGLGeometryNode *geometry); 00030 void setAppearance(const X3DGLAppearanceNode *appearance); 00031 00033 inline SFNode getGeometry() const {return _geometry;}; 00035 inline SFNode getAppearance() const {return _appearance;}; 00036 00039 virtual bool addChild(const SFNode &N); 00042 virtual bool setChild(const SFNode &N); 00044 virtual bool removeChild(const SFNode &N); 00045 00046 protected: 00048 X3DGLShapeNode(const X3DGLShapeNode &N); 00049 00051 virtual void removeScenesToChildren(const MFScene &sceneList); 00053 virtual void addScenesToChildren(const MFScene &sceneList); 00054 00055 SFNode _geometry; 00056 SFNode _appearance; 00057 }; 00058 00059 } 00060 00061 #endif