00001 00002 // X3DShapeNode.h // 00004 00005 #ifndef X3DSHAPENODE_H 00006 #define X3DSHAPENODE_H 00007 00008 #include "X3DTypes.h" 00009 #include "X3DChildNode.h" 00010 00011 namespace X3DTK { 00012 namespace X3D { 00013 00014 class X3DGeometryNode; 00015 class X3DAppearanceNode; 00016 00021 00022 class X3DShapeNode : public X3DChildNode 00023 { 00024 public: 00026 X3DShapeNode(); 00028 X3DShapeNode(const X3DGeometryNode *geometry, 00029 const X3DAppearanceNode *appearance); 00031 virtual SFNode clone() const; 00033 virtual ~X3DShapeNode(); 00034 00036 void setGeometry(const X3DGeometryNode *geometry); 00038 void setAppearance(const X3DAppearanceNode *appearance); 00039 00041 inline SFNode getGeometry() const {return _geometry;}; 00043 inline SFNode getAppearance() const {return _appearance;}; 00044 00047 bool addChild(const SFAbstractNode &N); 00050 bool setChild(const SFAbstractNode &N); 00052 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