netgen/libsrc/csg/meshsurf.hpp

101 lines
2.8 KiB
C++
Raw Normal View History

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:
///
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
///
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
///
int TransformFromPlain(const Point<2>& plainpoint,
Point<3>& locpoint,
PointGeomInfo & gi,
double h) override;
2009-09-07 17:50:13 +06: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);
///
virtual void ProjectPoint (INDEX surfind, Point<3> & p) const override;
2009-01-13 04:40:13 +05:00
///
virtual void ProjectPoint2 (INDEX surfind, INDEX surfind2, Point<3> & p) const override;
2009-01-13 04:40:13 +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,
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,
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,
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,
const PointGeomInfo & gi) const override;
2009-01-13 04:40:13 +05:00
virtual void ProjectToSurface (Point<3> & p, int surfi) const override;
2009-01-13 04:40:13 +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