00001 00002 00003 00005 00006 00011 00016 00021 // TrimmedSurface.h // 00023 00024 #ifndef TRIMMEDSURFACE_H 00025 #define TRIMMEDSURFACE_H 00026 00027 #include "X3DTypes.h" 00028 #include "X3DParametricGeometryNode.h" 00029 00030 namespace X3DTK { 00031 namespace X3D { 00032 00033 class Contour2D; 00034 class NurbsSurface; 00035 00040 00041 class TrimmedSurface : public X3DParametricGeometryNode 00042 { 00043 public: 00045 TrimmedSurface(); 00047 TrimmedSurface(const NurbsSurface *surface); 00049 virtual SFNode clone() const; 00051 virtual ~TrimmedSurface(); 00052 00054 void setSurface(const NurbsSurface *surface); 00055 00057 inline MFNode getTrimmingContour() const {return _trimmingContour;}; 00059 inline SFNode getSurface() const {return _surface;}; 00060 00062 virtual bool addChild(const SFAbstractNode &N); 00064 virtual bool setChild(const SFAbstractNode &N); 00066 virtual bool removeChild(const SFAbstractNode &N); 00067 00068 protected: 00070 TrimmedSurface(const TrimmedSurface &N); 00071 00072 private: 00074 MFNode _trimmingContour; 00076 SFNode _surface; 00077 }; 00078 00079 } 00080 } 00081 00082 #endif