00001 00002 // X3D_TrimmedSurface.h // 00004 00005 #ifndef TRIMMEDSURFACE_H 00006 #define TRIMMEDSURFACE_H 00007 00008 #include "X3DTypes.h" 00009 #include "X3D_X3DParametricGeometryNode.h" 00010 00011 namespace X3DTK { 00012 namespace X3D { 00013 00014 class Contour2D; 00015 class NurbsSurface; 00016 00021 00022 class TrimmedSurface : public X3DParametricGeometryNode 00023 { 00024 public: 00026 TrimmedSurface(); 00028 TrimmedSurface(NurbsSurface *surface); 00030 virtual SFAbstractNode clone() const; 00032 virtual ~TrimmedSurface(); 00033 00035 virtual MFAbstractNode getChildrenList() const; 00036 00038 void setSurface(NurbsSurface *surface); 00039 00041 inline MFNode getTrimmingContour() const {return _trimmingContour;}; 00043 inline SFNode getSurface() const {return _surface;}; 00044 00046 virtual bool addChild(const SFAbstractNode &N); 00048 virtual bool setChild(const SFAbstractNode &N); 00050 virtual bool removeChild(const SFAbstractNode &N); 00051 00052 protected: 00054 TrimmedSurface(const TrimmedSurface &N); 00055 00056 private: 00058 MFNode _trimmingContour; 00060 SFNode _surface; 00061 }; 00062 00063 } 00064 } 00065 00066 #endif