#ifndef FILE_SPLINESURFACE #define FILE_SPLINESURFACE namespace netgen { class SplineSurface : public OneSurfacePrimitive { protected: Array> geompoints; Array*> splines; Array bcnames; public: SplineSurface(); virtual ~SplineSurface(); const Array*> & GetSplines() const { return splines; } int GetNSplines() const { return splines.Size(); } string GetSplineType(const int i) const { return splines[i]->GetType(); } SplineSeg<3> & GetSpline(const int i) { return *splines[i]; } const SplineSeg<3> & GetSpline(const int i) const { return *splines[i]; } int GetNP() const { return geompoints.Size(); } const GeomPoint<3> & GetPoint(int i) const { return geompoints[i]; } string* GetBCName(int i) const { return bcnames[i]; } DLL_HEADER void AppendPoint(const Point<3> & p, const double reffac = 1., const bool hpref=false); void AppendSegment(SplineSeg<3>* spline, string* bcname); Array* CreatePlanes() const; virtual double CalcFunctionValue (const Point<3> & point) const; virtual void CalcGradient (const Point<3> & point, Vec<3> & grad) const; virtual double HesseNorm () const; virtual Point<3> GetSurfacePoint () const; virtual void CalcSpecialPoints(Array> & pts) const; virtual INSOLID_TYPE BoxInSolid(const BoxSphere<3> & box) const; virtual void Print (ostream & str) const; }; } #endif