00001 00002 // X3D_X3DShapeNode.h // 00004 00005 #ifndef X3DSHAPENODE_H 00006 #define X3DSHAPENODE_H 00007 00008 #include "X3DTypes.h" 00009 #include "X3D_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(X3DGeometryNode *geometry, 00029 X3DAppearanceNode *appearance); 00031 virtual ~X3DShapeNode(); 00032 00034 void setGeometry(X3DGeometryNode *geometry); 00036 void setAppearance(X3DAppearanceNode *appearance); 00037 00039 inline SFNode getGeometry() const {return _geometry;}; 00041 inline SFNode getAppearance() const {return _appearance;}; 00042 00044 virtual MFAbstractNode getChildrenList() const; 00045 00048 virtual bool addChild(const SFAbstractNode &N); 00051 virtual bool setChild(const SFAbstractNode &N); 00053 virtual bool removeChild(const SFAbstractNode &N); 00054 00055 protected: 00057 X3DShapeNode(const X3DShapeNode &N); 00058 00059 private: 00060 SFNode _geometry; 00061 SFNode _appearance; 00062 }; 00063 00064 } 00065 } 00066 00067 #endif