mirror of
https://github.com/NGSolve/netgen.git
synced 2024-11-12 00:59:16 +05:00
47 lines
1.4 KiB
C++
47 lines
1.4 KiB
C++
|
#ifndef FILE_SPLINESURFACE
|
||
|
#define FILE_SPLINESURFACE
|
||
|
|
||
|
|
||
|
namespace netgen
|
||
|
{
|
||
|
class SplineSurface : public OneSurfacePrimitive
|
||
|
{
|
||
|
protected:
|
||
|
Array<GeomPoint<3>> geompoints;
|
||
|
Array<SplineSeg<3>*> splines;
|
||
|
Array<string*> bcnames;
|
||
|
|
||
|
public:
|
||
|
SplineSurface();
|
||
|
virtual ~SplineSurface();
|
||
|
|
||
|
const Array<SplineSeg<3>*> & 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]; }
|
||
|
|
||
|
DLL_HEADER void AppendPoint(const Point<3> & p, const double reffac = 1., const bool hpref=false);
|
||
|
void AppendSegment(SplineSeg<3>* spline, string* bcname);
|
||
|
Array<Plane*>* 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<Point<3>> & pts) const;
|
||
|
|
||
|
virtual INSOLID_TYPE BoxInSolid(const BoxSphere<3> & box) const;
|
||
|
|
||
|
|
||
|
virtual void Print (ostream & str) const;
|
||
|
|
||
|
|
||
|
};
|
||
|
|
||
|
}
|
||
|
|
||
|
#endif
|