/usr/share/netgen/libsrc/meshing/improve2.hpp is in netgen-headers 4.9.13.dfsg-8build2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | #ifndef FILE_IMPROVE2
#define FILE_IMPROVE2
///
class MeshOptimize2d
{
int faceindex;
int improveedges;
double metricweight;
int writestatus;
public:
///
MeshOptimize2d ();
///
void ImproveMesh (Mesh & mesh2d);
void ImproveMeshJacobian (Mesh & mesh2d);
void ImproveVolumeMesh (Mesh & mesh);
void ProjectBoundaryPoints(Array<int> & surfaceindex,
const Array<Point<3>* > & from, Array<Point<3>* > & dest);
void EdgeSwapping (Mesh & mesh, int usemetric);
void CombineImprove (Mesh & mesh);
void GenericImprove (Mesh & mesh);
void SetFaceIndex (int fi) { faceindex = fi; }
void SetImproveEdges (int ie) { improveedges = ie; }
void SetMetricWeight (double mw) { metricweight = mw; }
void SetWriteStatus (int ws) { writestatus = ws; }
///
virtual void SelectSurfaceOfPoint (const Point<3> & p,
const PointGeomInfo & gi);
///
virtual void ProjectPoint (INDEX /* surfind */, Point<3> & /* p */) const { };
/// project point, use gi as initial value, and compute new gi
virtual int ProjectPointGI (INDEX surfind, Point<3> & p, PointGeomInfo & gi) const
{ ProjectPoint (surfind, p); return CalcPointGeomInfo (surfind, gi, p); }
///
virtual void ProjectPoint2 (INDEX /* surfind */, INDEX /* surfind2 */, Point<3> & /* p */) const { };
/// liefert zu einem 3d-Punkt die geominfo (Dreieck) und liefert 1, wenn erfolgreich,
/// 0, wenn nicht (Punkt ausserhalb von chart)
virtual int CalcPointGeomInfo(PointGeomInfo& gi, const Point<3> & /*p3*/) const
{ gi.trignum = 1; return 1;};
virtual int CalcPointGeomInfo(int /* surfind */, PointGeomInfo& gi, const Point<3> & p3) const
{ return CalcPointGeomInfo (gi, p3); }
///
virtual void GetNormalVector(INDEX surfind, const Point<3> & p, PointGeomInfo & gi, Vec<3> & n) const;
virtual void GetNormalVector(INDEX surfind, const Point<3> & p, Vec<3> & n) const;
void CheckMeshApproximation (Mesh & mesh);
///
friend class Opti2SurfaceMinFunction;
///
friend class Opti2EdgeMinFunction;
///
friend double Opti2FunctionValueGrad (const Vector & x, Vector & grad);
///
friend double Opti2EdgeFunctionValueGrad (const Vector & x, Vector & grad);
};
extern void CalcTriangleBadness (double x2, double x3, double y3,
double metricweight,
double h, double & badness,
double & g1x, double & g1y);
extern double CalcTriangleBadness (const Point3d & p1,
const Point3d & p2,
const Point3d & p3,
double metricweight,
double h);
extern double CalcTriangleBadness (const Point3d & p1,
const Point3d & p2,
const Point3d & p3,
const Vec3d & n,
double metricweight,
double h);
#endif
|