00001 #ifndef X3DTK_MESH_SHAPE_H 00002 #define X3DTK_MESH_SHAPE_H 00003 00004 #include "MESH_SceneGraphTypes.h" 00005 #include "MESH_X3DNode.h" 00006 #include "MESH_X3DMeshNode.h" 00007 00008 namespace X3DTK { 00009 namespace X3D { 00010 00011 class X3DAppearanceNode; 00012 00013 } 00014 00015 namespace MESH { 00016 00023 class Shape : public X3DNode 00024 { 00025 public: 00027 Shape(); 00029 Shape(X3D::X3DAppearanceNode *appearance, X3DMeshNode *mesh); 00031 virtual SFNode clone() const; 00033 virtual ~Shape(); 00034 00036 void setMesh(X3DMeshNode *mesh); 00038 void setAppearance(X3D::X3DAppearanceNode *N); 00039 00041 inline SFNode getMesh() const {return _mesh;}; 00043 inline X3D::SFNode getAppearance() const {return _appearance;}; 00044 00046 virtual MFAbstractNode getChildList() const; 00047 00049 bool addChild(const SFAbstractNode &N); 00051 bool setChild(const SFAbstractNode &N); 00053 bool removeChild(const SFAbstractNode &N); 00054 00055 protected: 00057 Shape(const Shape &S); 00058 00059 private: 00060 X3D::SFNode _appearance; 00061 SFNode _mesh; 00062 }; 00063 00064 } 00065 } 00066 00067 #endif