00001 00002 00003 00005 00006 00011 00016 00021 // X3DShapeNode.h // 00023 00024 #ifndef X3DSHAPENODE_H 00025 #define X3DSHAPENODE_H 00026 00027 #include "X3DTypes.h" 00028 #include "X3DChildNode.h" 00029 00030 namespace X3DTK { 00031 namespace X3D { 00032 00033 class X3DGeometryNode; 00034 class X3DAppearanceNode; 00035 00040 00041 class X3DShapeNode : public X3DChildNode 00042 { 00043 public: 00045 X3DShapeNode(); 00047 X3DShapeNode(const X3DGeometryNode *geometry, 00048 const X3DAppearanceNode *appearance); 00050 virtual SFNode clone() const; 00052 virtual ~X3DShapeNode(); 00053 00055 void setGeometry(const X3DGeometryNode *geometry); 00057 void setAppearance(const X3DAppearanceNode *appearance); 00058 00060 inline SFNode getGeometry() const {return _geometry;}; 00062 inline SFNode getAppearance() const {return _appearance;}; 00063 00066 virtual bool addChild(const SFAbstractNode &N); 00069 virtual bool setChild(const SFAbstractNode &N); 00071 virtual bool removeChild(const SFAbstractNode &N); 00072 00073 protected: 00075 X3DShapeNode(const X3DShapeNode &N); 00076 00077 private: 00078 SFNode _geometry; 00079 SFNode _appearance; 00080 }; 00081 00082 } 00083 } 00084 00085 #endif