00001 #ifndef X3DTK_X3D_TRIMMEDSURFACE_H 00002 #define X3DTK_X3D_TRIMMEDSURFACE_H 00003 00004 #include "X3DTypes.h" 00005 #include "X3D_X3DParametricGeometryNode.h" 00006 00007 namespace X3DTK { 00008 namespace X3D { 00009 00010 class Contour2D; 00011 class NurbsSurface; 00012 00021 class TrimmedSurface : public X3DParametricGeometryNode 00022 { 00023 public: 00025 TrimmedSurface(); 00027 TrimmedSurface(NurbsSurface *surface); 00029 virtual SFAbstractNode clone() const; 00031 virtual ~TrimmedSurface(); 00032 00034 virtual MFAbstractNode getChildrenList() const; 00035 00037 void setSurface(NurbsSurface *surface); 00038 00040 inline MFNode getTrimmingContour() const {return _trimmingContour;}; 00042 inline SFNode getSurface() const {return _surface;}; 00043 00045 virtual bool addChild(const SFAbstractNode &N); 00047 virtual bool setChild(const SFAbstractNode &N); 00049 virtual bool removeChild(const SFAbstractNode &N); 00050 00051 protected: 00053 TrimmedSurface(const TrimmedSurface &N); 00054 00055 private: 00057 MFNode _trimmingContour; 00059 SFNode _surface; 00060 }; 00061 00062 } 00063 } 00064 00065 #endif