00001 00002 00003 00005 00006 00011 00016 00021 // X3DGLShapeNode.h // 00023 00024 #ifndef X3DGLSHAPENODE_H 00025 #define X3DGLSHAPENODE_H 00026 00027 #include "X3DGLChildNode.h" 00028 00029 namespace X3DTK { 00030 namespace GL { 00031 00032 class X3DGeometryNode; 00033 class X3DAppearanceNode; 00034 00036 00037 class X3DShapeNode : public X3DChildNode 00038 { 00039 public: 00041 X3DShapeNode(); 00043 virtual SFNode clone() const; 00045 virtual ~X3DShapeNode(); 00046 00048 void setGeometry(const X3DGeometryNode *geometry); 00050 void setAppearance(const X3DAppearanceNode *appearance); 00051 00053 inline SFNode getGeometry() const {return _geometry;}; 00055 inline SFNode getAppearance() const {return _appearance;}; 00056 00059 virtual bool addChild(const SFAbstractNode &N); 00062 virtual bool setChild(const SFAbstractNode &N); 00064 virtual bool removeChild(const SFAbstractNode &N); 00065 00066 protected: 00068 X3DShapeNode(const X3DShapeNode &N); 00069 00070 private: 00072 SFNode _geometry; 00074 SFNode _appearance; 00075 }; 00076 00077 } 00078 } 00079 00080 #endif