00001 #ifndef X3DTK_X3D_X3DSHAPENODE_H 00002 #define X3DTK_X3D_X3DSHAPENODE_H 00003 00004 #include "X3DTypes.h" 00005 #include "X3D_X3DChildNode.h" 00006 00007 namespace X3DTK { 00008 namespace X3D { 00009 00010 class X3DGeometryNode; 00011 class X3DAppearanceNode; 00012 00021 class X3DShapeNode : public X3DChildNode 00022 { 00023 public: 00025 X3DShapeNode(); 00027 X3DShapeNode(X3DGeometryNode *geometry, 00028 X3DAppearanceNode *appearance); 00030 virtual ~X3DShapeNode(); 00031 00033 void setGeometry(X3DGeometryNode *geometry); 00035 void setAppearance(X3DAppearanceNode *appearance); 00036 00038 inline SFNode getGeometry() const {return _geometry;}; 00040 inline SFNode getAppearance() const {return _appearance;}; 00041 00043 virtual MFAbstractNode getChildList() const; 00044 00047 virtual bool addChild(const SFAbstractNode &N); 00050 virtual bool setChild(const SFAbstractNode &N); 00052 virtual bool removeChild(const SFAbstractNode &N); 00053 00054 protected: 00056 X3DShapeNode(const X3DShapeNode &N); 00057 00058 private: 00059 SFNode _geometry; 00060 SFNode _appearance; 00061 }; 00062 00063 } 00064 } 00065 00066 #endif