gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
meshGFace.h
Go to the documentation of this file.
1 // Gmsh - Copyright (C) 1997-2022 C. Geuzaine, J.-F. Remacle
2 //
3 // See the LICENSE.txt file in the Gmsh root directory for license information.
4 // Please report all issues on https://gitlab.onelab.info/gmsh/gmsh/issues.
5 
6 #ifndef MESH_GFACE_H
7 #define MESH_GFACE_H
8 
9 #include <vector>
10 #include <set>
11 #include <list>
12 #include "SPoint2.h"
13 #include "SVector3.h"
14 #include "MElementOctree.h"
15 
16 class GEdge;
17 class GFace;
18 class MVertex;
19 
20 // Create the mesh of the face
21 class meshGFace {
23 
24 public:
25  meshGFace(bool r = true) : repairSelfIntersecting1dMesh(r) {}
26  void operator()(GFace *, bool print = true);
27 };
28 
29 // Destroy the mesh of the face
30 class deMeshGFace {
31 public:
33  void operator()(GFace *);
34 };
35 
36 // Orient the mesh of a face to match the orientation of the underlying
37 // geometry. This is necessary for 3 different reasons:
38 // 1) some surface mesh algorithms do not respect the original geometrical
39 // orientation
40 // 2) some volume algorithms need to change the surface mesh orientation
41 // 3) users can choose to reverse the natural orientation
43 public:
44  void operator()(GFace *);
45 };
46 
47 void findTransfiniteCorners(GFace *gf, std::vector<MVertex *> &corners);
50  GFace *gf,
51  std::set<std::pair<MVertex *, MVertex *> > *constrainedEdges = nullptr);
52 bool pointInsideParametricDomain(std::vector<SPoint2> &bnd, SPoint2 &p,
53  SPoint2 &out, int &N);
54 
72 bool MeshSetTransfiniteFacesAutomatic(std::set<GFace *> &candidate_faces,
73  double cornerAngle = 2.35,
74  bool setRecombine = true,
75  double maxDiffRel = 1.,
76  bool ignoreEmbedded = false);
77 
78 #endif
meshGFace::operator()
void operator()(GFace *, bool print=true)
Definition: meshGFace.cpp:3152
GFace
Definition: GFace.h:33
SPoint2
Definition: SPoint2.h:12
MVertex
Definition: MVertex.h:24
MElementOctree.h
meshGFace::meshGFace
meshGFace(bool r=true)
Definition: meshGFace.h:25
findTransfiniteCorners
void findTransfiniteCorners(GFace *gf, std::vector< MVertex * > &corners)
Definition: meshGFaceTransfinite.cpp:46
deMeshGFace::operator()
void operator()(GFace *)
Definition: meshGFace.cpp:3106
SVector3.h
meshGFace
Definition: meshGFace.h:21
deMeshGFace::deMeshGFace
deMeshGFace()
Definition: meshGFace.h:32
orientMeshGFace::operator()
void operator()(GFace *)
Definition: meshGFace.cpp:3358
pointInsideParametricDomain
bool pointInsideParametricDomain(std::vector< SPoint2 > &bnd, SPoint2 &p, SPoint2 &out, int &N)
Definition: meshGFace.cpp:43
deMeshGFace
Definition: meshGFace.h:30
MeshSetTransfiniteFacesAutomatic
bool MeshSetTransfiniteFacesAutomatic(std::set< GFace * > &candidate_faces, double cornerAngle=2.35, bool setRecombine=true, double maxDiffRel=1., bool ignoreEmbedded=false)
Automatically set transfinite constraints on curves and faces in the candidate_faces if possible....
Definition: meshGFaceTransfinite.cpp:817
orientMeshGFace
Definition: meshGFace.h:42
GEdge
Definition: GEdge.h:26
MeshTransfiniteSurface
int MeshTransfiniteSurface(GFace *gf)
Definition: meshGFaceTransfinite.cpp:166
meshGFace::repairSelfIntersecting1dMesh
const bool repairSelfIntersecting1dMesh
Definition: meshGFace.h:22
MeshExtrudedSurface
int MeshExtrudedSurface(GFace *gf, std::set< std::pair< MVertex *, MVertex * > > *constrainedEdges=nullptr)
Definition: meshGFaceExtruded.cpp:291
SPoint2.h