2009-01-13 04:40:13 +05:00
|
|
|
#ifndef FILE_MESHSURF
|
|
|
|
#define FILE_MESHSURF
|
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
namespace netgen
|
2009-01-13 04:40:13 +05:00
|
|
|
{
|
2009-09-07 17:50:13 +06:00
|
|
|
|
2009-01-13 04:40:13 +05:00
|
|
|
///
|
2009-09-07 17:50:13 +06:00
|
|
|
class Meshing2Surfaces : public Meshing2
|
|
|
|
{
|
|
|
|
///
|
|
|
|
const Surface & surface;
|
2014-08-30 06:15:59 +06:00
|
|
|
|
|
|
|
/// should be movec to base ...
|
|
|
|
const MeshingParameters & mparam;
|
2009-09-07 17:50:13 +06:00
|
|
|
public:
|
|
|
|
///
|
|
|
|
// Meshing2Surfaces (const Surface & asurf);
|
|
|
|
///
|
2011-07-25 14:40:23 +06:00
|
|
|
Meshing2Surfaces (const Surface & asurf, const MeshingParameters & mp,
|
|
|
|
const Box<3> & aboundingbox);
|
2009-01-13 04:40:13 +05:00
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
protected:
|
|
|
|
///
|
2019-09-29 17:54:24 +05:00
|
|
|
void DefineTransformation(const Point<3> & p1,
|
|
|
|
const Point<3> & p2,
|
|
|
|
const PointGeomInfo * geominfo1,
|
|
|
|
const PointGeomInfo * geominfo2) override;
|
2009-09-07 17:50:13 +06:00
|
|
|
///
|
2019-09-29 17:54:24 +05:00
|
|
|
void TransformToPlain(const Point<3> & locpoint,
|
|
|
|
const MultiPointGeomInfo & geominfo,
|
|
|
|
Point<2> & plainpoint,
|
|
|
|
double h, int & zone) override;
|
2009-09-07 17:50:13 +06:00
|
|
|
///
|
2019-09-29 17:54:24 +05:00
|
|
|
int TransformFromPlain(const Point<2>& plainpoint,
|
|
|
|
Point<3>& locpoint,
|
|
|
|
PointGeomInfo & gi,
|
|
|
|
double h) override;
|
2009-09-07 17:50:13 +06:00
|
|
|
///
|
2019-09-29 17:54:24 +05:00
|
|
|
double CalcLocalH(const Point3d & p, double gh) const override;
|
2009-09-07 17:50:13 +06:00
|
|
|
};
|
2009-01-13 04:40:13 +05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///
|
2009-09-07 17:50:13 +06:00
|
|
|
class MeshOptimize2dSurfaces : public MeshOptimize2d
|
|
|
|
{
|
|
|
|
///
|
|
|
|
const CSGeometry & geometry;
|
2009-01-13 04:40:13 +05:00
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
public:
|
2009-01-13 04:40:13 +05:00
|
|
|
///
|
|
|
|
MeshOptimize2dSurfaces (const CSGeometry & ageometry);
|
|
|
|
|
|
|
|
///
|
2019-06-03 12:04:33 +05:00
|
|
|
virtual void ProjectPoint (INDEX surfind, Point<3> & p) const override;
|
2009-01-13 04:40:13 +05:00
|
|
|
///
|
2019-06-03 12:04:33 +05:00
|
|
|
virtual void ProjectPoint2 (INDEX surfind, INDEX surfind2, Point<3> & p) const override;
|
2009-01-13 04:40:13 +05:00
|
|
|
///
|
2019-06-03 12:04:33 +05:00
|
|
|
virtual void GetNormalVector(INDEX surfind, const Point<3> & p, Vec<3> & n) const override;
|
2009-09-07 17:50:13 +06:00
|
|
|
};
|
2009-01-13 04:40:13 +05:00
|
|
|
|
|
|
|
|
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
class RefinementSurfaces : public Refinement
|
|
|
|
{
|
|
|
|
const CSGeometry & geometry;
|
2009-01-13 04:40:13 +05:00
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
public:
|
|
|
|
RefinementSurfaces (const CSGeometry & ageometry);
|
|
|
|
virtual ~RefinementSurfaces ();
|
2009-01-13 04:40:13 +05:00
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
virtual void PointBetween (const Point<3> & p1, const Point<3> & p2, double secpoint,
|
|
|
|
int surfi,
|
|
|
|
const PointGeomInfo & gi1,
|
|
|
|
const PointGeomInfo & gi2,
|
2019-06-03 12:04:33 +05:00
|
|
|
Point<3> & newp, PointGeomInfo & newgi) const override;
|
2009-01-13 04:40:13 +05:00
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
virtual void PointBetween (const Point<3> & p1, const Point<3> & p2, double secpoint,
|
|
|
|
int surfi1, int surfi2,
|
|
|
|
const EdgePointGeomInfo & ap1,
|
|
|
|
const EdgePointGeomInfo & ap2,
|
2019-06-03 12:04:33 +05:00
|
|
|
Point<3> & newp, EdgePointGeomInfo & newgi) const override;
|
2009-01-13 04:40:13 +05:00
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
virtual Vec<3> GetTangent (const Point<3> & p, int surfi1, int surfi2,
|
2019-06-03 12:04:33 +05:00
|
|
|
const EdgePointGeomInfo & ap1) const override;
|
2009-01-13 04:40:13 +05:00
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
virtual Vec<3> GetNormal (const Point<3> & p, int surfi1,
|
2019-06-03 12:04:33 +05:00
|
|
|
const PointGeomInfo & gi) const override;
|
2009-01-13 04:40:13 +05:00
|
|
|
|
|
|
|
|
2019-06-03 12:04:33 +05:00
|
|
|
virtual void ProjectToSurface (Point<3> & p, int surfi) const override;
|
2009-01-13 04:40:13 +05:00
|
|
|
|
2019-06-03 12:04:33 +05:00
|
|
|
virtual void ProjectToEdge (Point<3> & p, int surfi1, int surfi2, const EdgePointGeomInfo & egi) const override;
|
2009-01-13 04:40:13 +05:00
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
};
|
2009-01-13 04:40:13 +05:00
|
|
|
|
2009-09-07 17:50:13 +06:00
|
|
|
}
|
2009-01-13 04:40:13 +05:00
|
|
|
|
|
|
|
#endif
|
|
|
|
|