Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/ElmerGUI/netgen/libsrc/csg/meshsurf.hpp
3206 views
1
#ifndef FILE_MESHSURF
2
#define FILE_MESHSURF
3
4
///
5
class Meshing2Surfaces : public Meshing2
6
{
7
///
8
const Surface & surface;
9
10
public:
11
///
12
// Meshing2Surfaces (const Surface & asurf);
13
///
14
Meshing2Surfaces (const Surface & asurf, const Box<3> & aboundingbox);
15
16
protected:
17
///
18
virtual void DefineTransformation (const Point3d & p1, const Point3d & p2,
19
const PointGeomInfo * geominfo1,
20
const PointGeomInfo * geominfo2);
21
///
22
virtual void TransformToPlain (const Point3d & locpoint,
23
const MultiPointGeomInfo & geominfo,
24
Point2d & plainpoint,
25
double h, int & zone);
26
///
27
virtual int TransformFromPlain (Point2d & plainpoint,
28
Point3d & locpoint,
29
PointGeomInfo & gi,
30
double h);
31
///
32
virtual double CalcLocalH (const Point3d & p, double gh) const;
33
};
34
35
36
37
///
38
class MeshOptimize2dSurfaces : public MeshOptimize2d
39
{
40
///
41
const CSGeometry & geometry;
42
43
public:
44
///
45
MeshOptimize2dSurfaces (const CSGeometry & ageometry);
46
47
///
48
virtual void ProjectPoint (INDEX surfind, Point<3> & p) const;
49
///
50
virtual void ProjectPoint2 (INDEX surfind, INDEX surfind2, Point<3> & p) const;
51
///
52
virtual void GetNormalVector(INDEX surfind, const Point<3> & p, Vec<3> & n) const;
53
};
54
55
56
57
58
59
class RefinementSurfaces : public Refinement
60
{
61
const CSGeometry & geometry;
62
63
public:
64
RefinementSurfaces (const CSGeometry & ageometry);
65
virtual ~RefinementSurfaces ();
66
67
virtual void PointBetween (const Point<3> & p1, const Point<3> & p2, double secpoint,
68
int surfi,
69
const PointGeomInfo & gi1,
70
const PointGeomInfo & gi2,
71
Point<3> & newp, PointGeomInfo & newgi);
72
73
virtual void PointBetween (const Point<3> & p1, const Point<3> & p2, double secpoint,
74
int surfi1, int surfi2,
75
const EdgePointGeomInfo & ap1,
76
const EdgePointGeomInfo & ap2,
77
Point<3> & newp, EdgePointGeomInfo & newgi);
78
79
virtual Vec<3> GetTangent (const Point<3> & p, int surfi1, int surfi2,
80
const EdgePointGeomInfo & ap1) const;
81
82
virtual Vec<3> GetNormal (const Point<3> & p, int surfi1,
83
const PointGeomInfo & gi) const;
84
85
86
virtual void ProjectToSurface (Point<3> & p, int surfi);
87
88
virtual void ProjectToEdge (Point<3> & p, int surfi1, int surfi2, const EdgePointGeomInfo & egi) const;
89
90
};
91
92
93
94
#endif
95
96
97